OpenAi Documentación - Arquisoft/wichat_es1b GitHub Wiki

OpenAi

Hits

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." 
}