Esta aplicación es un chatbot que utiliza OpenAI y Pinecone para responder preguntas sobre el temario de la asignatura de Programación de Lenguajes.
- npm (Node Package Manager)
- Claves de API de OpenAI y Pinecone
Para instalar y utilizar la aplicación, sigue estos pasos:
-
Instalación de dependencias: Asegúrate de tener Node.js y npm instalados. Luego, en la raíz del proyecto, ejecuta:
npm install
-
Configuración del entorno:
- Crea una cuenta en OpenAI. Visita https://platform.openai.com/settings/organization/api-keys para saber para crear tu
OPENAI_API_KEY. - Crea una cuenta en Pinecone, lee la guía Get started with Pinecone y obtén los valores para las variables de entorno
PINECONE_API_KEY,PINECONE_ENVIRONMENTyPINECONE_INDEX_NAME. - Crea un archivo
.enven la raíz del proyecto y añade las siguientes variables de entorno:OPENAI_API_KEY="tu_clave_de_api_de_openai" PINECONE_API_KEY="tu_clave_de_api_de_pinecone" PINECONE_ENVIRONMENT='tu_entorno_de_pinecone' PINECONE_INDEX_NAME='tu_nombre_de_indice_de_pinecone' TOPICS_PATH='ruta/a/tu/directorio/de/temas' DOCUMENT_INDEX_PATH='./document_index.json' TOPICS_WITH_SUBTOPICS_INDEX_PATH='./src/lib/topics_with_subtopics_index.ts' INDEX_INIT_TIMEOUT=240000
- Crea una cuenta en OpenAI. Visita https://platform.openai.com/settings/organization/api-keys para saber para crear tu
-
correr script de indexación: Para indexar los documentos en Pinecone, ejecuta el siguiente comando:
npm run prepare:data
Este script leerá los archivos en el directorio especificado por
TOPICS_PATH, extraerá su contenido y lo indexará en Pinecone. -
Correr script de indexación de temas con subtemas: Para obtener un arreglo de los temas que contienen subtemas, ejecuta el siguiente comando, esto es necerasio para un correcto funcionamiento de la aplicación:
npm run index:topics-with-subtopics
Este script generará un archivo
topics_with_subtopics_index.tsque contiene un arreglo de los temas que tienen subtemas. Este archivo se utiliza a la hora de generar las respuestas del chatbot. -
Modificar el archivo
prompt-templates.ts(opcional): Si deseas personalizar el formato de las respuestas del chatbot, puedes modificar el archivosrc/lib/prompt-templates.ts. -
Modificar el archivo
utils.ts(opcional): Si deseas personalizar el mensaje inicial del chatbot, puedes modificar el archivosrc/lib/utils.ts. Para cambiar el mensaje inicial, busca la constanteinitialMessagesy modifica el contenido del mensaje de la siguiente manera:export const initialMessages: Message[] = [ { role: "assistant", content: "Nuevo mensaje inicial del chatbot", }, ];
-
Iniciar el servidor: Una vez que hayas indexado los documentos, puedes iniciar el servidor ejecutando:
npm run dev
-
Hacer consultas: Abre tu navegador y ve a
http://localhost:3000. Desde allí, podrás hacer consultas a la aplicación. Introduce tu pregunta en el campo de entrada y presiona "Ask" o tecla Enter. La aplicación buscará en los la base de datos de Pinecone y generará una respuesta utilizando OpenAI.