結合設計經驗與營銷實踐,提供有價值的互聯網資訊
發布日期:2023-09-06瀏覽次數:750 來源:福州網站建設 標簽: chatgpt
ChatCompletion是OpenAI中最核心的一個接口,顧名思義,你可以利用該接口構建自己的應用,用在與AI有交互的場景,例如聊天機器人、智能客服等,該接口具有連續對話的能力,因為它可以攜帶上下文信息。
https://api.openai.com/v1/chat/completions
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| model | 是 | string | 支持的模型為:gpt-4, gpt-3.5-turbo, gpt-3.5-turbo-0301 |
| messages | 是 | array | 字典組成的列表對象 |
| temperature | 否 | float | 采樣溫度,隨機因子,控制輸出結果的隨機性,介于0到2之間,值越大隨機性越高,默認為1 |
| max_tokens | 否 | integer | 指定返回結果的token最大長度,默認是最大值,不同模型的最大token數不一樣,例如gpt-3.5的最大長度支持4096 |
messages 是一個數組,數組中的元素是一個字典對象,包含兩個必選字段,分別是role和content
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| role | 是 | string | 該條消息由哪個角色生成,可選值:system, user, assistant |
| content | 是 | string | 該條消息對應的內容 |
為什么messages要作為一個數組參數傳遞呢?
因為我們實現多輪對話時,必須把上一輪的對話內容傳遞給模型,模型才知道如何聯系上下文來生成更精確的內容。
message中每個元素必須指定一個角色,用來告訴該消息是誰生成的,目前該接口預設了3個值,分別是:
通常每次對話以一條系統消息作為開始(系統消息也可以不指定),然后用戶消息和助理消息交替
Python代碼:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "你是一個上知天文下知地理的百曉生"}, {"role": "user", "content": "中國首都在哪里"}, {"role": "assistant", "content": " 中國的首都是北京。"}, {"role": "user", "content": "人口是多少?"} ], temperature=0.6 )
助理消息是上一輪對話AI生成的內容,提取出來后作為下一輪的消息內容發送給AI,這樣就可以實現多輪對話聯系上下文語境生成內容。
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "根據2020年的統計數據,北京市的常住人口為2171.6萬人。",
"role": "assistant"
}
}
],
"created": 1683639817,
"id": "chatcmpl-7EHuru5wKKpZ2CsEfjVa2z11DzqhJ",
"model": "gpt-3.5-turbo-0301",
"object": "chat.completion",
"usage": {
"completion_tokens": 27,
"prompt_tokens": 486,
"total_tokens": 513
}
}
助理回復的內容可以從response['choices'][0]['message']['content']提取。
以上是由福州網站建設的小編為你分享了"OpenAI接口介紹- ChatCompletion"文章,如果你在這方面有什么問題,隨時聯系我們