Generování odpovědí pomocí rozhraní API pro dokončování chatu
Rozhraní API OpenAI ChatCompletions se běžně používá napříč modely a platformami generování AI. I když se rozhraní API pro odpovědi doporučuje pro vývoj nových projektů, je pravděpodobné, že narazíte na scénáře, ve kterých je rozhraní API Pro dokončování chatu užitečné pro údržbu kódu kompatibility napříč platformami.
Odeslání promptu
Rozhraní API ChatCompletions používá kolekce objektů zpráv ve formátu JSON k zapouzdření výzev:
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)
Zachování konverzačního kontextu
Na rozdíl od rozhraní API pro odpovědi neposkytuje rozhraní API ChatCompletins funkci sledování stavových odpovědí. Pokud chcete zachovat konverzační kontext, musíte napsat kód pro ruční sledování předchozích výzev a odpovědí.
# 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...
V reálné aplikaci bude konverzace pravděpodobně implementována ve smyčce; Nějak tak:
# 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}
)
Výstup z tohoto příkladu vypadá nějak takto:
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!
Každá nová výzva a odpověď uživatele se přidává do konverzace a celá historie konverzace se odesílá při každém kroku.
I když není tak plně funkční jako rozhraní API pro odpovědi , rozhraní API Pro dokončování chatů je dobře zavedené v ekosystému modelů generující umělé inteligence, takže je užitečné se s ním seznámit.