Servicio API de chat
La API tiene tres rutas principales.
- /
- Ruta de inicio predeterminada utilizada para iniciar una sesión de chat y recuperar la identificación de la sesión
- /chat/{id_sesión}
- Ruta de chat principal utilizada para consultar el modelo GPT-3.5-turbo y recibir una respuesta SSE
- /chat_history/{session_id}
- Esta ruta se utiliza para recuperar el diálogo completo de una sesión determinada. Se devuelven tanto las indicaciones del cliente como las respuestas de la IA.
Servicio de lanzamiento
Para lanzar el servicio
- Cree un archivo
.env
en el directorio predeterminado del proyecto y agregue su OPENAI_API_KEY vim .env
, OPENAI_API_KEY=<key>
- Cree la imagen de la ventana acoplable usando el siguiente comando en el directorio predeterminado.
docker build -t chat_api_service .
- Inicie el contenedor acoplable usando el siguiente comando
docker run -d -p 8000:8000 chat_api_service
Uso de API
Siga este flujo para utilizar la API
- Iniciar sesión de chat y recuperar el ID de sesión
curl http://127.0.0.1:8000?username=TR
- Enviar mensajes a API
curl -X PUT http://127.0.0.1:8000/chat/<session_id> -H "Content-Type: application/json" -d '{"payload": "Hello! What is your name?"}'
- Obtener el historial de chat
curl http://127.0.0.1:8000/chat_history/<session_id>
Alternativamente, una mejor herramienta para hacer ping a la API sería Postman; Esta es la herramienta que utilicé durante el desarrollo.
Ejecución de pruebas
Inicie el contenedor acoplable en modo interactivo para ejecutar el conjunto de pruebas. El servidor Redis y los servidores Uvicorn deben estar ejecutándose para que se ejecuten las pruebas.
- Inicie el contenedor en modo interactivo
docker run -it --rm -p 8000:8000 --entrypoint bash chat_api_service
- Ejecute
launch.sh
como proceso en segundo plano ./launch.sh &
- Ejecute el conjunto de pruebas
python -m pytest tests
Trabajo futuro
Las mejoras futuras a la API incluyen
- Para crear una interfaz con Streamlit, consulte este repositorio como referencia https://github.com/sftwre/Chatbot.
- Cree una ruta para recuperar todas las sesiones existentes para un nombre de usuario determinado.
- Cree indicaciones para iniciar un juego de trivia de comedias de situación de los 90 con el cliente. La información sobre programas puede extraerse de Fandom y ser utilizada por el LLM para crear preguntas de trivia a través de RAG.