結合設計經驗與營銷實踐,提供有價值的互聯(lián)網(wǎng)資訊
發(fā)布日期:2023-09-06瀏覽次數(shù):607 來源:福州網(wǎng)站建設 標簽: chatgpt
ChatCompletion是OpenAI中最核心的一個接口,顧名思義,你可以利用該接口構建自己的應用,用在與AI有交互的場景,例如聊天機器人、智能客服等,該接口具有連續(xù)對話的能力,因為它可以攜帶上下文信息。
https://api.openai.com/v1/chat/completions
參數(shù)名 | 必選 | 類型 | 說明 |
---|---|---|---|
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數(shù)不一樣,例如gpt-3.5的最大長度支持4096 |
messages 是一個數(shù)組,數(shù)組中的元素是一個字典對象,包含兩個必選字段,分別是role和content
參數(shù)名 | 必選 | 類型 | 說明 |
---|---|---|---|
role | 是 | string | 該條消息由哪個角色生成,可選值:system, user, assistant |
content | 是 | string | 該條消息對應的內容 |
為什么messages要作為一個數(shù)組參數(shù)傳遞呢?
因為我們實現(xiàn)多輪對話時,必須把上一輪的對話內容傳遞給模型,模型才知道如何聯(lián)系上下文來生成更精確的內容。
message中每個元素必須指定一個角色,用來告訴該消息是誰生成的,目前該接口預設了3個值,分別是:
通常每次對話以一條系統(tǒng)消息作為開始(系統(tǒng)消息也可以不指定),然后用戶消息和助理消息交替
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生成的內容,提取出來后作為下一輪的消息內容發(fā)送給AI,這樣就可以實現(xiàn)多輪對話聯(lián)系上下文語境生成內容。
{ "choices": [ { "finish_reason": "stop", "index": 0, "message": { "content": "根據(jù)2020年的統(tǒng)計數(shù)據(jù),北京市的常住人口為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']提取。
以上是由福州網(wǎng)站建設的小編為你分享了"OpenAI接口介紹- ChatCompletion"文章,如果你在這方面有什么問題,隨時聯(lián)系我們