OpenAi Documentación - Arquisoft/wichat_es1b GitHub Wiki
OpenAi
Introducción :zap:
Diferentes modelos de IAs usan una API muy similar a la de OpenAi, entre ellas esta la IA proporcionada por la empresa Empathy AI.
Uso simple :herb:
Como bien se comenta en el artículo de esta misma wiki API de Empathy AI, y en base a la documentación de OpenAi, veremos ahora cómo realizar una consulta, básandonos en este ejemplo de consulta en Node.js.
import OpenAI from "openai";
const openai = new OpenAI();
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "developer", content: "You are a helpful assistant." },
{
role: "user",
content: "Write a haiku about recursion in programming.", // Este sería el mensaje a enviar
},
],
store: true,
});
console.log(completion.choices[0].message);
"Capar" el modelo :lock:
Una de las cosas más interesantes que se explica en la documentación oficial es la posibilidad de decirle al sistema cómo debe actuar.
const apiKey = "clave_api";
async function obtenerRespuesta(prompt) {
const endpoint = "url_del_LLM";
const opciones = {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${apiKey}`,
},
body: JSON.stringify({
model: "gpt-3.5-turbo", // Seria necesario cambiar esto
messages: [
{ role: "system", content: "Responde solo en frases cortas sobre tecnología." },
{ role: "user", content: prompt }
],
temperature: 0.5, // Control de creatividad
max_tokens: 50 // Limita la longitud de la respuesta
}),
};
try {
const respuesta = await fetch(endpoint, opciones);
const datos = await respuesta.json();
return datos.choices[0].message.content; // Devuelve la respuesta generada
} catch (error) {
console.error("Error al obtener respuesta: ", error);
return "Hubo un problema con el chatbot.";
}
}
// Ejemplo de uso
obtenerRespuesta("¿Qué opinas sobre la inteligencia artificial?").then(respuesta => {
console.log("Chatbot dice:", respuesta);
});
Pero lo que más nos gustaría destacar del código anterior es cómo limitar la respuesta, y esto se basa en el siguiente fragmento
{ role: "system", content: "Responde solo en frases cortas sobre tecnología." },
Donde se podría poner algo parecido a esto (y en nuestro caso):
{
"role": "system",
"content": "Eres un chatbot para un juego de preguntas y respuestas. Responde con un 'Sí', 'No' o 'No sé' únicamente cuando el usuario te pregunte si algo es correcto. Si no es una pregunta del juego, responde 'No puedo responder eso.'"
}
o bien:
{
"role": "system",
"content": "Responde exclusivamente con 'Sí', 'No' o 'No sé' cuando te pregunten si algo es correcto. Mantén las respuestas cortas y relacionadas al juego."
}