前言
OpenAI 大模型提供了一些強大的 API,方便用戶與 OpenAI 的大語言模型進行交互。除了上篇中講到的Embeddings中需要用到的embeddings接口,其核心接口主要是Completions 和Chat Completions接口。
一、OpenAI 大模型接口列表
二、Completions(文本自動補全類模型API)
自動文本補全、用于生成各類文本任務的模型,可以根據(jù)給定的提示(prompt)自動生成和補全文本,如撰寫文章
Completions API:
1、 接口:/v1/completions (已淘汰)
2、 模型:gpt-3.5-turbo-instruct, babbage-002, davinci-002
3、 參數(shù):model(模型名稱)、prompt(提示詞)、max_tokens(響應的tokens閥值)、temperature(溫度值0-2,嚴謹度從高到低)
4、功能:這個 API 接口能夠通過預測接下來的文本來生成新的文本。你只需提供一個提示(prompt),模型就會生成一個與提示相關的文本序列。這對于創(chuàng)作文章、歌詞、故事或者生成電子郵件回復等任務來說非常有用。
三、Chat Completions(對話聊天類模型API)
ChatCompletions屬于Completions的升級版本,專用為對話和聊天場景設計的模型;它通過大量高質量對話文本進行微調,從而更好地理解和生成對話內(nèi)容
Chat Completions API:(推薦)
1、接口:/v1/chat/completions
2、模型:gpt-4 and dated model releases, gpt-4-turbo-preview and dated model releases, gpt-4-vision-preview, gpt-4-32k and dated model releases, gpt-3.5-turbo and dated model releases, gpt-3.5-turbo-16k and dated model releases, fine-tuned versions of gpt-3.5-turbo
3、參數(shù):model、message(user/system/assistant )、max_tokens、function、function_call 等
message中的參數(shù)說明
① user:設置用戶提示問題
② system:設置系統(tǒng)模型背景(設置角色/設置知識庫/設置樣例)
③ assistant :設置模型助手返回樣例;可以針對第一個user提示詞,設置返回的結果樣例
4、功能:這個 API 接口允許你構造一個多輪的聊天會話。你可以提供一系列的消息,每一條消息都有一個角色(role)和內(nèi)容(content)。角色可以是 system、user 或 assistant,這使得模型可以在多個角色之間進行上下文理解和切換,生成相應的回復。
四、接口開發(fā)實踐
1.簡單使用樣例
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ['OPENAI_API_KEY'], # this is also the default, it can be omitted
)
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "請問,什么是AI大模型?"}
]
)
# 輸出response
ChatCompletion(id='chatcmpl-9AXF9T4lURXaU2S4ElFycQpeDHiDQ', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='AI大模型是指具有龐大參數(shù)數(shù)量和復雜結構的人工智能模型。這些模型通常通過深度學習技術訓練,并在各種任務中取得了良好的性能表現(xiàn)。AI大模型的例子包括大規(guī)模神經(jīng)網(wǎng)絡如BERT、GPT等。這些模型通常需要大量的計算資源和數(shù)據(jù)來訓練,并在自然語言處理、計算機視覺、語音識別等領域中得到廣泛應用。', role='assistant', function_call=None, tool_calls=None))], created=1712298095, model='gpt-3.5-turbo-0125', object='chat.completion', system_fingerprint='fp_b28b39ffa8', usage=CompletionUsage(completion_tokens=145, prompt_tokens=19, total_tokens=164))
# 輸出結果中content
response.choices[0].message.content
'OpenAI是一家非營利人工智能研究實驗室,旨在推動人工智能技術的發(fā)展,并確保人工智能對人類的利益產(chǎn)生積極影響。OpenAI致力于開發(fā)開源的人工智能技術,以促進人工智能領域的創(chuàng)新和發(fā)展。該實驗室的研究重點包括深度學習、強化學習、自然語言處理、計算機視覺等領域。對于AI行業(yè)來說,OpenAI是一個具有推動作用的領先機構,旨在通過共享研究成果和開源技術,促進全球范圍內(nèi)的合作與創(chuàng)新。'
2.身份角色設定
通過Message中的system提前設置大模型的角色身份,讓他回答更加專業(yè)嚴謹。
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一名AI大模型資深專家"},
{"role": "user", "content": "請問什么是AI大模型?"}
]
)
# 輸出結果
response.choices[0].message.content
'AI大模型通常指的是參數(shù)數(shù)量龐大、參數(shù)規(guī)模龐大的人工智能模型,常常包括數(shù)百萬到數(shù)十億個參數(shù)。這些模型通常經(jīng)過深度學習訓練,能夠在多個領域展現(xiàn)出強大的性能,比如自然語言處理、計算機視覺、語音識別等。由于參數(shù)規(guī)模巨大,這些模型需要龐大的計算資源和數(shù)據(jù)來進行訓練,且通常需要運行在多個GPU或者TPU等高性能計算設備上才能發(fā)揮其潛力。近年來,隨著計算能力的提升和算法的改進,AI大模型的應用范圍也在不斷擴大。'
3.添加聊天背景
借助system role設置聊天背景信息,實現(xiàn)類似根據(jù)本地知識庫回答問題的方法
text = '冬瓜老師,男,1988年9月16日出生于廣東省深圳市 \
2011年畢業(yè)于深圳大學計算機專業(yè)。\
畢業(yè)后進入ABC科技公司工作了6年,專注于AI方面的研究,'
#%%
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": text},
{"role": "user", "content": '請問冬瓜老師出生于哪兒?'}
]
)
# 輸出結果
response.choices[0].message.content
'冬瓜老師出生于廣東省深圳市。'
4.實現(xiàn)文本補全
圍繞system的prompt進行進一步的文本補全;當messages中只包含一條system消息時,系統(tǒng)會圍繞system進行回答
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一名的脫口秀演員"},
]
)
# 輸出結果
response.choices[0].message.content
'嗨!大家好,我是今天的主持人。感謝大家的到場,讓我來為大家?guī)硪恍g樂和笑聲。今天有沒有什么話題是你們特別想要聊的呢?放心,我會為大家?guī)碜钚伦钣腥さ亩巫雍托υ?。廢話不多說,讓我們開始今天的表演吧!希望大家盡情享受!'
5.少量樣本提示
利用message參數(shù)中的assistant,為大模型添加回答的模板樣例
Q1 = '小米有6個氣球,她又買了3袋,每袋有10個氣球,請問她現(xiàn)在總共有多少個氣球?'
A1 = '現(xiàn)在小米總共有36個氣球。'
Q2 = '小明總共有10個蘋果,吃了3個蘋果,然后又買了5個蘋果,請問現(xiàn)在小明總共有多少個蘋果?'
A2 = '現(xiàn)在小明總共有12個蘋果。'
#%%
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": Q1},
{"role": "assistant", "content": A1},
{"role": "user", "content": Q2}
]
)
# 輸出結果
response.choices[0].message.content
'現(xiàn)在小明總共有12個蘋果。'
## 可以把提示示例寫進一條system信息中,作為當前問答的背景信息
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": '問題: ' + Q1 + '答案: ' + A1},
{"role": "user", "content": '問題: ' + Q2 }
]
)
# 輸出結果
response.choices[0].message.content
'現(xiàn)在小明總共有12個蘋果。'
5.提高分析能力
借助system消息能夠作為背景知識的設定,能夠對后續(xù)的問答消息造成影響;通過它提高大模型思維分析能力
prompt_temp_cot = '請一步步思考并解決問題'
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": prompt_temp_cot},
{"role": "user", "content": Q1}
]
)
# 輸出結果
response.choices[0].message.content
'首先,小米原本有6個氣球,然后買了3袋氣球,每袋有10個。所以現(xiàn)在她有:\n6 + 3 * 10 = 6 + 30 = 36 個氣球\n\n所以,小米現(xiàn)在總共有36個氣球。'
總結
本章主要介紹ChatCompletions API的特點,以及各種使用樣例;下一章節(jié)將記錄說明怎么基于Chat Completions API和本地知識庫實現(xiàn)一個簡單的多輪對話機器人。文章來源:http://www.zghlxwxcb.cn/news/detail-848465.html
探索未知,分享所知;點擊關注,碼路同行,尋道人生!文章來源地址http://www.zghlxwxcb.cn/news/detail-848465.html
到了這里,關于AI大模型探索之路-基礎篇2:掌握Chat Completions API的基礎與應用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!