Guías
Conversaciones
Mantener el contexto entre mensajes y controlar el coste.
La API no guarda conversaciones: cada petición es independiente. Para que Sabiuco recuerde lo que se ha dicho, envía el historial en messages, añadiendo cada respuesta como mensaje assistant.
Python
historial = [{"role": "system", "content": "Eres un tutor de inglés. Corrige mis frases con amabilidad."}]
def preguntar(texto):
historial.append({"role": "user", "content": texto})
r = cliente.chat.completions.create(model="sabiuco-rapido", messages=historial)
respuesta = r.choices[0].message.content
historial.append({"role": "assistant", "content": respuesta})
return respuesta
print(preguntar("Yesterday I go to the cinema."))
print(preguntar("¿Y cómo lo diría en futuro?"))Controlar el coste
Todo el historial cuenta como tokens de entrada en cada petición, así que una conversación larga cuesta cada vez más. Estrategias habituales:
- Ventana deslizante: envía solo los últimos N mensajes (por ejemplo, 20) más el mensaje
system. - Resumen: cuando el historial crezca, pide a
sabiuco-rapidoun resumen de lo anterior y sustitúyelo por un único mensajesystemcon ese resumen. - Instrucciones en un asistente: si repites un
systemlargo en cada petición, guárdalo como asistente. Cuesta lo mismo en tokens, pero aligera tu código y puedes cambiarlo sin desplegar.
Límites
Hasta 2.000 mensajes y unos 3.000.000 de caracteres (unos 850.000 tokens) de texto por petición. Si te pasas, recibirás un 400.