Empathy AI - Arquisoft/wichat_es1b GitHub Wiki
🥇 API de Empathy AI
Es un servicio que permitirá a los desarrolladores de los diferentes grupos participantes integrar modelos de lenguaje grande (LLMs) en sus aplicaciones. Utiliza el formato oficial del cliente de OpenAI. Si queremos mas información precisaremos de ir a OpenAI client documentation.
Dos modelos de LLM 💭
Mistral-7B-Instruct-v0.3: Modelo de propósito general para diversas tareas.
Qwen2.5-Coder-7B-Instruct: Especializado en programación e instrucciones técnicas.
En nuestro caso como es una aplicación para un juego de tipo QUIZ deberíamos usar el modelo de Mistral. Ya que se basara en un propósito general y no en programación ni instrucciones técnicas.
Como comenzar 😕
Tendremos que obtener una clave key 🔑 de la api para poder usarla (En principio se otorgara durante el curso) y se enviara bajo un formulario POST.
Para establecer la conexión 🕐
Tendremos que enviar una solicitud POST con un JSON payload containing de la siguiente forma
curl https://empathyai.prod.empathy.co/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \ //Token Bearer para autenticación.
-H "Content-Type: application/json" \ //Debe ser application/json.
-d '{
📍Aqui podremos seleccionar de entre los dos modelos cual usar.
"model": "qwen/Qwen2.5-Coder-7B-Instruct",
📍El valor predeterminado es falso. Cuando se establece en verdadero, permite que la API devuelva
resultados parciales a medida que se generan, en lugar de esperar a que finalice la
completitud completa. ⚠️ Este parámetro no es obligatorio por defecto es false.
"stream": true,
📍Array de objetos JSON que definen roles y contenido.
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain how to implement a binary search in Java."}
]
}'
Respuesta 👨🏻💻
Tras realizar la petición POST se devolverá algo parecido a esto. En caso de que la respuesta del LLM tarde demasiado Empathy nos recomienda establecer el parámetro stream a true.
{
"id":"f3135ec1", 📍 Un identificador único para esta respuesta específica de la API.
"created":1735890548, 📍 Un timestamp de Unix que indica cuándo se generó la respuesta.
"model":"qwen/Qwen2.5-Coder-7B-Instruct", 📍 El nombre del modelo de IA utilizado para generar la respuesta.
"choices":[
{
"finish_reason":"stop",
"message":{
"content":"Binary search is an efficient algorithm for finding an item…",
"role":"assistant"
}
}
]
}
📨 El array de "choices" contiene las respuestas generadas. En este caso, hay un elemento:
-
finish_reason
Indica por qué se detuvo la generación (⚠️ "stop" significa que se completó normalmente). -
message
Un objeto que contiene la respuesta generada:- content El texto real de la respuesta.
- role El rol de la entidad que proporciona la respuesta ("assistant").