Générer des réponses avec l’API ChatCompletions
L’API OpenAI ChatCompletions est couramment utilisée sur les modèles et plateformes d’IA génératives. Bien que l’API Réponses soit recommandée pour le nouveau développement de projets, il est probable que vous rencontriez des scénarios où l’API ChatCompletions est utile pour la maintenance du code de la compatibilité entre plateformes.
Soumission d’une requête
L’API ChatCompletions utilise des collections d’objets de message au format JSON pour encapsuler les invites :
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)
Conservation du contexte conversationnel
Contrairement à l’API Réponses , l’API ChatCompletins ne fournit pas de fonctionnalité de suivi des réponses avec état. Pour conserver le contexte conversationnel, vous devez écrire du code pour suivre manuellement les invites et réponses précédentes.
# 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...
Dans une application réelle, la conversation est susceptible d’être implémentée dans une boucle ; Comme ça:
# 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 sortie de cet exemple ressemble à ceci :
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!
Chaque nouveau requête utilisateur et chaque réponse générée sont ajoutés à la conversation, et l’historique complet de la conversation est soumis à chaque tour.
Bien qu’elle ne soit pas aussi complète que l’API Réponses , l’API ChatCompletions est bien établie dans l’écosystème du modèle d’INTELLIGENCE artificielle générative. Il est donc utile de le connaître.