Lambdas semblait parfait pour les charges de travail d'IA. Fonctions à usage unique, mise à l'échelle automatique, payez uniquement pour ce que vous utilisez. Nous en avons construit 7 avant de nous rendre compte de notre erreur.
Voici notre premier Lambda – un résumé de documents pour notre plateforme de gestion d'actifs :
importer { APIGatewayProxyHandler } depuis 'aws-lambda' ; importer OpenAI depuis « openai » ; const openai = new OpenAI({ apiKey : process.env.OPENAI_API_KEY, }); gestionnaire d'exportation const : APIGatewayProxyHandler = async (event) => { try { const { document } = JSON.parse(event.body || '{}'); const réponse = attendre openai.chat.completions.create({ modèle : 'gpt-4', messages : [ { rôle : 'système', contenu : 'Résumez le document suivant en 2-3 phrases.' }, { rôle : 'utilisateur', contenu : document } ], max_tokens : 150 }); return { statusCode : 200, corps : JSON.stringify({ résumé : réponse.choices[0].message.content }) } ; } catch (erreur) { return { statusCode : 500, body : JSON.stringify({ erreur : error.message }) } ; } } ;Faire le ménage. Simple. Cela a très bien fonctionné... jusqu'à ce que ce ne soit plus le cas.
Notre premier problème majeur est survenu lorsque nous avons créé un agent capable d'analyser des documents complexes. L'agent devait :
Chaque étape prenait 3 à 7 secondes. Durée totale : ~25 secondes. Dans la limite de 15 minutes de Lambda, n'est-ce pas ?
Faux.
2024-02-15 14:32:18 DÉBUT RequestId : abc-123-def 2024-02-15 14:32:18 Appel d'OpenAI pour l'analyse de documents... 2024-02-15 14:32:25 Analyse terminée, génération de balises... 2024-02-15 14:32:32 L'inférence OpenAI est toujours en cours d'exécution... 2024-02-15 14:32:47 ERREUR La tâche a expiré après 29,00 secondesAPI Gateway a un délai d'attente de 29 secondes. Pas Lambda - API Gateway. Votre Lambda peut fonctionner pendant 15 minutes, mais...
[Courte citation de 8% de l'article original]