Coder Social home page Coder Social logo

alexa-chatgpt-aws's Introduction

Integración de Alexa Skill con ChatGPT usando servicios de AWS (Lambda, Secrets Manager y DynamoDB)

Requisitos

Video con la explicación

Youtube - https://www.youtube.com/watch?v=fwTLeF1DOVk

aws

Creando Skill en Alexa

Ir a https://developer.amazon.com/alexa/console/ask/create-new-skill/name, definimos un nombre para nuestro skill

Elegimos:

  • Choose a type of experience : Other
  • Choose a model : Custome
  • Hosting services : Provision your own.

Clic en NEXT

Captura de Pantalla 2023-02-24 a la(s) 16 59 13

Clic en Start from Scratch y Next.

Captura de Pantalla 2023-02-24 a la(s) 17 00 40

Clic en Create Skill.

Captura de Pantalla 2023-02-24 a la(s) 17 05 17

Nos aparecerá la siguiente pantalla.

Captura de Pantalla 2023-02-24 a la(s) 17 13 43

Definimos una palabra para invocar a nuestro skill.

Agregaremos las intenciones con los utterances al Skill, clic en JSON editor. Copiamos el contenido del json que se encuentra en la ruta skill/alexa-skill.json y lo pegamos, clic en Save model.

Veremos las 2 intenciones que se han agregado : PreguntaIntent y DespedidaIntent.

Clic en Save model y Build Model.

Captura de Pantalla 2023-02-24 a la(s) 17 36 12

Accedemos a nuestra cuenta de AWS y creamos un entorno de Cloud9, donde clonaremos el repositorio.

Ejecutar en Cloud9.

git clone https://github.com/luisgradossalinas/alexa-chatgpt-aws

Abrir el contenido del archivo chatgpt.yaml e ingresamos en la línea 40 nuestro API Key de OpenAI.

Ejecutar en Cloud9

cd alexa-chatgpt-aws/
sh sh/01_Start_Deploy.sh

Esperamos que se cree el stack en CloudFormation.

Volvemos a Alexa y nos ubicamos en la opción Endpoint, copiamos el valor de nuestro Skill ID para asociarlo a la función Lambda creada en AWS.

Regresamos a AWS, y entramos a la función Lambda llamada : fnc-alexa-skill-chatgpt-dynamodb, para agregar un desencadenador. Clic en Add trigger.

Seleccionamos Alexa e ingresamos nuestro Skill ID, clic en Add.

Ahora copiamos el ARN de la función Lambda, para asociarlo al Skill de Alexa.

Volvemos a Alexa Console y pegamos el valor del ARN de la función Lambda, clic en Save Endpoints.

Clic en Test para probar desde la consola nuestra Skill.

image

Ahora puedes preguntar lo que desees a ChatGPT usando una Skill de Alexa.

image

Si queremos ver esta interacción (pregunta y respuesta de ChatGPT), podemos ir a AWS, al servicio de DynamoDB y en la tabla chatgpt_interaction veremos un registro con la pregunta y respuesta de ChatGPT.

image

Si tenemos un dispositivo Echo Dot, también podemos utilizar esta skill.

Agradecimientos

Espero te haya servido esta solución, si pudiste replicarlo, puedes publicarlo en LinkedIn con tus aportes, cambios y etiquétame (https://www.linkedin.com/in/luisgrados).

Eliminar recursos en AWS

Ejecutar en Cloud9.

aws s3 ls | grep alexachatgpt-code | awk {'print "aws s3 rb s3://" $3 " --f"'} | sh
aws cloudformation delete-stack --stack-name StackAlexaChatGPT	
echo "Stack StackAlexaChatGPT eliminándose"

Eliminamos el entorno de Cloud9.

alexa-chatgpt-aws's People

Contributors

luisgradossalinas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.