Je lis beaucoup à mon enfant. Pour être clair, je lis beaucoup un ou deux livres à mon enfant. Au point que j'ai mémorisé les mots des deux livres. Et si nous pouvions créer ensemble notre propre histoire, pour raconter chaque soir une nouvelle histoire avec de nouveaux personnages ? Dans cet article, je vais montrer comment nous pouvons utiliser une intégration de chat IA et la personnaliser pour agir comme un conteur interactif au coucher. Avec cette approche, vous pouvez créer un planificateur de repas personnalisé, un guide de voyage ou un assistant pour vous aider à imaginer et affiner votre copie sur les réseaux sociaux.
Voyons d'abord la solution de haut niveau.
Je travaille dans une application React créée et déployée avec AWS Amplify. Si vous souhaitez commencer ici, vous pouvez lancer l'exemple d'application à l'aide de ce guide de démarrage rapide, puis incorporer le code que je partage.
Nous utiliserons Amazon Bedrock comme source de données et créerons une requête personnalisée pour générer une histoire à l'aide de la nouvelle API Converse. L'API Converse nous permettra de gérer des conversations à plusieurs tours et de conserver un historique des conversations. Nous irons plus loin en utilisantinvite systèmefonctionnalité pour fournir un contexte, des instructions et des lignes directrices sur la façon dont il doit réagir.
L'exemple de code ci-dessous est Typescript, mais vous pouvez également trouver des exemples de code pour d'autres langues ici.
Commençons à construire !
Notre première tâche consiste à ajouter Amazon Bedrock comme source de données à notre application. Cette approche donne à une fonction AWS Lambda (nous définirons cela à l'étape suivante) l'autorisation d'appeler un modèle de fondation spécifique dans Amazon Bedrock. Nous limitons les actions qu'il peut entreprendresubstrat rocheux : InvokeModelet la ressource de modèle spécifique que nous spécifions.
Pour ce faire, ajoutons ce qui suit auamplifier/backend.tsdéposer:
// amplify/backend.ts import { definitionBackend } depuis '@aws-amplify/backend'; importer { auth } depuis './auth/resource' ; importer { data, CHAT_MODEL_ID, generateChatResponseFunction } depuis './data/resource' ; importer { Effect, PolicyStatement } depuis 'aws-cdk-lib/aws-iam' ; export const backend = finishBackend({ auth, data, generateChatResponseFunction, }); backend.generateChatResponseFunction.resources.lambda.addToRolePolicy( new PolicyStatement({ effet : Effect.ALLOW, actions : ["bedrock:InvokeModel"], ressources : [ `arn:aws:bedrock:*::foundation-model/${CHAT_MODEL_ID }`, ], }) );Ensuite, nous devons définir la requête personnalisée et la...
[Courte citation de 8% de l'article original]