昨天ChatGpt發佈了聊天API,新增了兩個模型,目前還是測試階段
- gpt-3.5-turbo 功能強大的GPT-3.5模型,專門針對聊天做了優化
- gpt-3.5-turbo-0301 此模型只支持到今年6月份
所以我們直接是用gpt-3.5-turbo模型就行了,相對於之前的text-davinci-003模型,gpt-3.5-turbo模型使用成本降低了90%。我昨天第一時間調用API使用了,返回結果速度變快的,簡單的問題3秒內就返回結果了,寫文章的問答10多秒也能回覆了,並且回覆質量也比之前的text-davinci-003模型要好。
使用gpt-3.5-turbo聊天模型集成到應用程序中能做什麼?有哪些使用場景
- 寫文章
- 寫代碼
- 回答問題
- 聊天
- 翻譯
- 模擬遊戲中的角色,例如NPC
ChatGpt API早期用戶
Snapchat
Snapchat的創始人推出了 My AI for Snapchat+,My AI 爲 Snapchatter 提供了一個友好的、可自定義的聊天機器人,讓他們觸手可及,可以提供建議,甚至可以在幾秒鐘內爲朋友寫一句俳句。Snapchat 是日常交流和消息傳遞的場所,每月有 7.5 億 Snapchatter。
Quizlet
Quizlet是一個全球學習平臺,有超過 6000 萬學生使用它來學習、練習和掌握他們正在學習的任何內容。Quizlet 在過去三年中一直與 OpenAI 合作,在多個用例中利用 GPT-3,包括詞彙學習和練習測試。隨着 ChatGPT API 的推出,Quizlet 推出了 Q-Chat,這是一種完全自適應的 AI 導師,可讓學生根據通過有趣的聊天體驗提供的相關學習材料提出自適應問題。
Instacart
Instacart正在增強 Instacart 應用程序,使客戶能夠詢問食物並獲得鼓舞人心的、可購買的答案。這使用 ChatGPT 以及 Instacart 自己的 AI 和來自其 75,000 多家零售合作伙伴商店位置的產品數據來幫助客戶發現開放式購物目標的想法,例如“我如何製作美味的魚炸玉米餅?” 或“對我的孩子來說,什麼是健康的午餐?” Instacart 計劃在今年晚些時候推出“Ask Instacart”。
Shop
Shop是 Shopify 的消費者應用程序,有 1 億購物者使用它來尋找和購買他們喜愛的產品和品牌。ChatGPT API 用於爲 Shop 的新購物助手提供動力。當購物者搜索商品時,導購會根據他們的需求進行個性化推薦。Shop 的新人工智能購物助手將通過掃描數百萬種產品來簡化應用程序內購物,以快速找到買家正在尋找的東西,或者幫助他們發現新東西。
Speak
Speak是一款人工智能語言學習應用程序,專注於打造流利口語的最佳途徑。他們是韓國發展最快的英語應用程序,並且已經在使用 Whisper API 爲新的 AI 語音配套產品提供支持,並迅速將其推向全球其他地區。Whisper 爲各個級別的語言學習者提供了人類水平的準確性,解鎖了真正的開放式會話練習和高度準確的反饋。
API使用
api使用跟之前差不多,調用起來很方便。申請api key什麼的我就不說了,網上教程一大堆。
例如使用Java如何調用,用Idea新建一個maven項目,依賴hutool工具包。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
然後新建一個測試類,其實就是調用一下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");//用戶標識
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實體類:
@Data
public class GptTurbo {
private String model;
private List<ChoiceMessage> messages;
private String user;//用戶id
}
ChoiceMessage實體類:
@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結果:
{"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}]}
當然你也可以直接使用curl方式,打開終端輸入,下面代碼把YOUR_API_KEY替換成openai申請的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的參數說明
- model 模型,模型列表
- messages 消息,這是一個數組,可以傳多個消息,每個消息必須有一個角色,參考鏈接
- temperature 溫度,控制結果的隨機性,如果希望結果更有創意可以嘗試 0.9,或者希望有固定結果可以嘗試 0.0
- top_p 一種替代溫度採樣的方法,稱爲核採樣,其中模型考慮具有 top_p 概率質量的標記的結果。所以 0.1意味着只考慮構成前 10% 概率質量的標記。我們通常建議改變這個或temperature但不是兩者。
- n 默認爲1,爲每個輸入消息生成多少個聊天完成選項。
- stream 如果設置,將發送部分消息增量,就像在 ChatGPT 中一樣。當令牌可用時,令牌將作爲純數據服務器發送事件data: [DONE]發送,流由消息終止。
- stop API 將停止生成更多令牌的最多 4 個序列。
- max_tokens 生成的答案允許的最大標記數。默認情況下,模型可以返回的標記數爲(4096 - 提示標記)。
- presence_penalty 懲罰 -2.0 和 2.0之間的數字。正值會根據到目前爲止是否出現在文本中來懲罰新標記,從而增加模型談論新主題的可能性。
- frequency_penalty 頻率懲罰 -2.0 和 2.0之間的數字。正值會根據新標記在文本中的現有頻率對其進行懲罰,從而降低模型逐字重複同一行的可能性。
- logit_bias 地圖 接受一個 json 對象,該對象將標記(由標記器中的標記 ID 指定)映射到從 -100 到 100 的關聯偏差值。從數學上講,偏差會在採樣之前添加到模型生成的 logits 中。確切的效果因模型而異,但 -1 和 1 之間的值應該會減少或增加選擇的可能性;像 -100 或 100 這樣的值應該導致相關令牌的禁止或獨佔選擇。
- user 用戶的唯一標識符,可以幫助 OpenAI 監控和檢測濫用行爲
大部分參數都用不上,正常情況使用module、messages、user這三個參數就行了,我之前以爲user是用來區分上下文的,後面發現爲理解錯了,user就是用來檢測濫用行爲,例如你被起訴了,可以通過user找到用戶的記錄,如果要區分上下文,那就messages傳多個對象,但是這樣的話產生的token就變多了,對上下文支持還不是很友好,期待chatgpt的繼續更新。
參考官方鏈接:
ChatGPT和Whisper介紹: https://openai.com/blog/introducing-chatgpt-and-whisper-apis
聊天介紹:https://platform.openai.com/docs/guides/chat
聊天API調用:https://platform.openai.com/docs/guides/chat/introduction
Whisper
Whisper是我們於 2022 年 9 月開源的語音轉文本模型,已獲得開發者社區的極大讚譽,但也很難運行。我們現在已經通過我們的 API 提供了 large-v2 模型,它提供了方便的按需訪問,價格爲 0.006 美元/分鐘。此外,與其他服務相比,我們高度優化的服務堆棧可確保更快的性能。
Whisper API 可通過我們的transcriptions(以源語言轉錄)或translations(轉錄成英文)端點使用,並接受多種格式(m4a、mp3、mp4、mpeg、mpga、wav、webm):
簡單體驗
如果您只是想體驗一下,微信搜索小程序:「Ai聊天寫作機器人」