Generera svar med API:et ChatCompletions
Api:et OpenAI ChatCompletions används ofta i generativa AI-modeller och plattformar. Även om svars-API :et rekommenderas för ny projektutveckling är det troligt att du kommer att stöta på scenarier där ChatCompletions-API :et är användbart för kodunderhåll av plattformsoberoende kompatibilitet.
Skicka en uppmaning
API:et ChatCompletions använder samlingar av meddelandeobjekt i JSON-format för att kapsla in prompter:
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)
Att behålla konversationskontexten
Till skillnad från Responses API tillhandahåller ChatCompletions API inte någon tillståndsbevarande funktion för svarsspårning. Om du vill behålla konversationskontexten måste du skriva kod för att manuellt spåra tidigare uppmaningar och svar.
# 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...
I en verklig applikation kommer konversationen sannolikt att implementeras i en loop, så här:
# 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}
)
Utdata från det här exemplet ser ut ungefär så här:
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!
Varje ny användarprompt och slutförande läggs till i konversationen och hela konversationshistoriken skickas i varje tur.
Även om Responses-API:et inte har lika många funktioner, är ChatCompletions-API:et väl etablerat i ekosystemet för generativa AI-modeller, så det är bra att vara bekant med det.