Generación de respuestas con la API ChatCompletions
La API ChatCompletions de OpenAI se usa normalmente en los modelos y plataformas de IA generativos. Aunque se recomienda la API de respuestas para el desarrollo de nuevos proyectos, es probable que encuentre escenarios en los que chatCompletions API sea útil para el mantenimiento de código de compatibilidad multiplataforma.
Enviar un comando
La API chatCompletions usa colecciones de objetos de mensaje en formato JSON para encapsular mensajes:
completion = openai_client.chat.completions.create(
model="gpt-4o", # Your model deployment name
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "When was Microsoft founded?"}
]
)
print(completion.choices[0].message.content)
Conservar el contexto conversacional
A diferencia de la API de respuestas, la API ChatCompletions no proporciona una característica de seguimiento de respuesta con estado persistente. Para conservar el contexto conversacional, debe escribir código para realizar un seguimiento manual de las solicitudes y respuestas anteriores.
# Initial messages
conversation_messages=[
{
"role": "system",
"content": "You are a helpful AI assistant that answers questions and provides information."
}
]
# Add the first user message
conversation_messages.append(
{"role": "user",
"content": "When was Microsoft founded?"}
)
# Get a completion
completion = openai_client.chat.completions.create(
model="gpt-4o",
messages=conversation_messages
)
assistant_message = completion.choices[0].message.content
print("Assistant:", assistant_text)
# Append the response to the conversation
conversation_messages.append(
{"role": "assistant", "content": assistant_text}
)
# Add the next user message
conversation_messages.append(
{"role": "user",
"content": "Who founded it?"}
)
# Get a completion
completion = openai_client.chat.completions.create(
model="gpt-4o",
messages=conversation_messages
)
assistant_message = completion.choices[0].message.content
print("Assistant:", assistant_text)
# and so on...
En una aplicación real, es probable que la conversación se implemente en un bucle; Así:
# Initial messages
conversation_messages=[
{
"role": "system",
"content": "You are a helpful AI assistant that answers questions and provides information."
}
]
# Loop until the user wants to quit
print("Assistant: Enter a prompt (or type 'quit' to exit)")
while True:
input_text = input('\nYou: ')
if input_text.lower() == "quit":
print("Assistant: Goodbye!")
break
# Add the user message
conversation_messages.append(
{"role": "user",
"content": input_text}
)
# Get a completion
completion = openai_client.chat.completions.create(
model="gpt-4o",
messages=conversation_messages
)
assistant_message = completion.choices[0].message.content
print("\nAssistant:", assistant_message)
# Append the response to the conversation
conversation_messages.append(
{"role": "assistant", "content": assistant_message}
)
La salida de este ejemplo es similar a la siguiente:
Assistant: Enter a prompt (or type 'quit' to exit)
You: When was Microsoft founded?
Assistant: Microsoft was founded on April 4, 1975 in Albuquerque, New Mexico, USA.
You: Who founded it?
Assistant: Microsoft was founded by Bill Gates and Paul Allen.
You: quit
Assistant: Goodbye!
Cada nueva solicitud de usuario y respuesta se agrega a la conversación, y se envía todo el historial de la conversación en cada turno.
Aunque no es tan destacado como la API de respuestas , la API chatCompletions está bien establecida en el ecosistema de modelos de IA generativa, por lo que resulta útil familiarizarse con ella.