ChatGpt聊天API使用
昨天ChatGpt發(fā)布了聊天API,新增了兩個(gè)模型,目前還是測試階段
- gpt-3.5-turbo 功能強(qiáng)大的GPT-3.5模型,專門針對(duì)聊天做了優(yōu)化
- gpt-3.5-turbo-0301 此模型只支持到今年6月份
所以我們直接是用gpt-3.5-turbo模型就行了,相對(duì)于之前的text-davinci-003模型,gpt-3.5-turbo模型使用成本降低了90%。我昨天第一時(shí)間調(diào)用API使用了,返回結(jié)果速度變快的,簡單的問題3秒內(nèi)就返回結(jié)果了,寫文章的問答10多秒也能回復(fù)了,并且回復(fù)質(zhì)量也比之前的text-davinci-003模型要好。
使用gpt-3.5-turbo聊天模型集成到應(yīng)用程序中能做什么?有哪些使用場景
- 寫文章
- 寫代碼
- 回答問題
- 聊天
- 翻譯
- 模擬游戲中的角色,例如NPC
ChatGpt API早期用戶
Snapchat
Snapchat的創(chuàng)始人推出了 My AI for Snapchat+,My AI 為 Snapchatter 提供了一個(gè)友好的、可自定義的聊天機(jī)器人,讓他們觸手可及,可以提供建議,甚至可以在幾秒鐘內(nèi)為朋友寫一句俳句。Snapchat 是日常交流和消息傳遞的場所,每月有 7.5 億 Snapchatter。
Quizlet
Quizlet是一個(gè)全球?qū)W習(xí)平臺(tái),有超過 6000 萬學(xué)生使用它來學(xué)習(xí)、練習(xí)和掌握他們正在學(xué)習(xí)的任何內(nèi)容。Quizlet 在過去三年中一直與 OpenAI 合作,在多個(gè)用例中利用 GPT-3,包括詞匯學(xué)習(xí)和練習(xí)測試。隨著 ChatGPT API 的推出,Quizlet 推出了 Q-Chat,這是一種完全自適應(yīng)的 AI 導(dǎo)師,可讓學(xué)生根據(jù)通過有趣的聊天體驗(yàn)提供的相關(guān)學(xué)習(xí)材料提出自適應(yīng)問題。
Instacart
Instacart正在增強(qiáng) Instacart 應(yīng)用程序,使客戶能夠詢問食物并獲得鼓舞人心的、可購買的答案。這使用 ChatGPT 以及 Instacart 自己的 AI 和來自其 75,000 多家零售合作伙伴商店位置的產(chǎn)品數(shù)據(jù)來幫助客戶發(fā)現(xiàn)開放式購物目標(biāo)的想法,例如“我如何制作美味的魚炸玉米餅?” 或“對(duì)我的孩子來說,什么是健康的午餐?” Instacart 計(jì)劃在今年晚些時(shí)候推出“Ask Instacart”。
Shop
Shop是 Shopify 的消費(fèi)者應(yīng)用程序,有 1 億購物者使用它來尋找和購買他們喜愛的產(chǎn)品和品牌。ChatGPT API 用于為 Shop 的新購物助手提供動(dòng)力。當(dāng)購物者搜索商品時(shí),導(dǎo)購會(huì)根據(jù)他們的需求進(jìn)行個(gè)性化推薦。Shop 的新人工智能購物助手將通過掃描數(shù)百萬種產(chǎn)品來簡化應(yīng)用程序內(nèi)購物,以快速找到買家正在尋找的東西,或者幫助他們發(fā)現(xiàn)新東西。
Speak
Speak是一款人工智能語言學(xué)習(xí)應(yīng)用程序,專注于打造流利口語的最佳途徑。他們是韓國發(fā)展最快的英語應(yīng)用程序,并且已經(jīng)在使用 Whisper API 為新的 AI 語音配套產(chǎn)品提供支持,并迅速將其推向全球其他地區(qū)。Whisper 為各個(gè)級(jí)別的語言學(xué)習(xí)者提供了人類水平的準(zhǔn)確性,解鎖了真正的開放式會(huì)話練習(xí)和高度準(zhǔn)確的反饋。
API使用
api使用跟之前差不多,調(diào)用起來很方便。申請(qǐng)api key什么的我就不說了,網(wǎng)上教程一大堆。
例如使用Java如何調(diào)用,用Idea新建一個(gè)maven項(xiàng)目,依賴hutool工具包。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
然后新建一個(gè)測試類,其實(shí)就是調(diào)用一下api,代碼很少,就不一一解釋了
public static void main(String[] args) {
String url="https://api.openai.com/v1/chat/completions";//api url
List<ChoiceMessage> list=new ArrayList<>();
list.add(new ChoiceMessage("user","你好"));//問題
GptTurbo gptTurbo=new GptTurbo();
gptTurbo.setModel("gpt-3.5-turbo");//模型
gptTurbo.setMessages(list);
gptTurbo.setUser("1");//用戶標(biāo)識(shí)
HttpResponse response = HttpRequest.post(url)
.headerMap(null, false)
.bearerAuth(Constants.TOKEN)//API Token,openai官方生成token
.body(JSON.toJSONString(gptTurbo))
.timeout(5 * 60 * 1000)
.execute();
String jsonResult=response.body();
System.out.println(jsonResult);
}
GptTurbo實(shí)體類:
@Data
public class GptTurbo {
private String model;
private List<ChoiceMessage> messages;
private String user;//用戶id
}
ChoiceMessage實(shí)體類:
@Data
public class ChoiceMessage {
private String role;
private String content;
public ChoiceMessage() {
}
public ChoiceMessage(String role, String content) {
this.role = role;
this.content = content;
}
}
返回json結(jié)果:
{"id":"chatcmpl-6ps2CsxhVlF1HQkfOml9PQAyaK2qK","object":"chat.completion","created":1677820456,"model":"gpt-3.5-turbo-0301","usage":{"prompt_tokens":9,"completion_tokens":19,"total_tokens":28},"choices":[{"message":{"role":"assistant","content":"\n\n你好,有什么可以幫助您的嗎?"},"finish_reason":"stop","index":0}]}
當(dāng)然你也可以直接使用curl方式,打開終端輸入,下面代碼把YOUR_API_KEY替換成openai申請(qǐng)的key就行了:
curl https://api.openai.com/v1/chat/completions \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello!"}]
}'
api的參數(shù)說明
- model 模型,模型列表
- messages 消息,這是一個(gè)數(shù)組,可以傳多個(gè)消息,每個(gè)消息必須有一個(gè)角色,參考鏈接
- temperature 溫度,控制結(jié)果的隨機(jī)性,如果希望結(jié)果更有創(chuàng)意可以嘗試 0.9,或者希望有固定結(jié)果可以嘗試 0.0
- top_p 一種替代溫度采樣的方法,稱為核采樣,其中模型考慮具有 top_p 概率質(zhì)量的標(biāo)記的結(jié)果。所以 0.1意味著只考慮構(gòu)成前 10% 概率質(zhì)量的標(biāo)記。我們通常建議改變這個(gè)或temperature但不是兩者。
- n 默認(rèn)為1,為每個(gè)輸入消息生成多少個(gè)聊天完成選項(xiàng)。
- stream 如果設(shè)置,將發(fā)送部分消息增量,就像在 ChatGPT 中一樣。當(dāng)令牌可用時(shí),令牌將作為純數(shù)據(jù)服務(wù)器發(fā)送事件data: [DONE]發(fā)送,流由消息終止。
- stop API 將停止生成更多令牌的最多 4 個(gè)序列。
- max_tokens 生成的答案允許的最大標(biāo)記數(shù)。默認(rèn)情況下,模型可以返回的標(biāo)記數(shù)為(4096 - 提示標(biāo)記)。
- presence_penalty 懲罰 -2.0 和 2.0之間的數(shù)字。正值會(huì)根據(jù)到目前為止是否出現(xiàn)在文本中來懲罰新標(biāo)記,從而增加模型談?wù)撔轮黝}的可能性。
- frequency_penalty 頻率懲罰 -2.0 和 2.0之間的數(shù)字。正值會(huì)根據(jù)新標(biāo)記在文本中的現(xiàn)有頻率對(duì)其進(jìn)行懲罰,從而降低模型逐字重復(fù)同一行的可能性。
- logit_bias 地圖 接受一個(gè) json 對(duì)象,該對(duì)象將標(biāo)記(由標(biāo)記器中的標(biāo)記 ID 指定)映射到從 -100 到 100 的關(guān)聯(lián)偏差值。從數(shù)學(xué)上講,偏差會(huì)在采樣之前添加到模型生成的 logits 中。確切的效果因模型而異,但 -1 和 1 之間的值應(yīng)該會(huì)減少或增加選擇的可能性;像 -100 或 100 這樣的值應(yīng)該導(dǎo)致相關(guān)令牌的禁止或獨(dú)占選擇。
- user 用戶的唯一標(biāo)識(shí)符,可以幫助 OpenAI 監(jiān)控和檢測濫用行為
大部分參數(shù)都用不上,正常情況使用module、messages、user這三個(gè)參數(shù)就行了,我之前以為user是用來區(qū)分上下文的,后面發(fā)現(xiàn)為理解錯(cuò)了,user就是用來檢測濫用行為,例如你被起訴了,可以通過user找到用戶的記錄,如果要區(qū)分上下文,那就messages傳多個(gè)對(duì)象,但是這樣的話產(chǎn)生的token就變多了,對(duì)上下文支持還不是很友好,期待chatgpt的繼續(xù)更新。
參考官方鏈接:
ChatGPT和Whisper介紹: https://openai.com/blog/introducing-chatgpt-and-whisper-apis
聊天介紹:https://platform.openai.com/docs/guides/chat
聊天API調(diào)用:https://platform.openai.com/docs/guides/chat/introduction
Whisper
Whisper是我們于 2022 年 9 月開源的語音轉(zhuǎn)文本模型,已獲得開發(fā)者社區(qū)的極大贊譽(yù),但也很難運(yùn)行。我們現(xiàn)在已經(jīng)通過我們的 API 提供了 large-v2 模型,它提供了方便的按需訪問,價(jià)格為 0.006 美元/分鐘。此外,與其他服務(wù)相比,我們高度優(yōu)化的服務(wù)堆棧可確保更快的性能。
Whisper API 可通過我們的transcriptions(以源語言轉(zhuǎn)錄)或translations(轉(zhuǎn)錄成英文)端點(diǎn)使用,并接受多種格式(m4a、mp3、mp4、mpeg、mpga、wav、webm):
簡單體驗(yàn)
如果您只是想體驗(yàn)一下,微信搜索小程序:「聊天寫作翻譯機(jī)器人」


浙公網(wǎng)安備 33010602011771號(hào)