OpenAI 在今年早些時候推出了gpt-3.5-turbo 和 gpt-4,短短幾個月內,開發者們已經建立了許多令人驚嘆的應用程式。
如今,其帶來了一些令人興奮的更新:
- 在 Chat Completions API 中新增了函數調用功能。
- 更新且更具可控性的 gpt-4 和 gpt-3.5-turbo 版本。
- 新增了 gpt-3.5-turbo 的 16k 上下文版本(相較於標準的 4k 版本)。
- 最先進的嵌入模型降價 75%。
- gpt-3.5-turbo 的輸入標記降價 25%。
- 宣布 gpt-3.5-turbo-0301 和 gpt-4-0314 模型的停用時間表。
所有這些模型都具備與 OpenAI 在 3 月 1 日介紹的數據隱私和安全性保證相同——客戶擁有其請求生成的所有輸出,其 API 數據不會用於訓練。
函數調用
開發者現在可以向 gpt-4-0613 和 gpt-3.5-turbo-0613 描述函數,並讓模型智能地選擇輸出一個包含調用該函數的引數的 JSON 對象。這是一種更可靠地將 GPT 的能力與外部工具和 API 相連接的新方法。
這些模型已被微調,既可以檢測函數調用的需求(根據用戶的輸入),又能回應符合函數簽名的 JSON。函數調用允許開發者更可靠地從模型獲取結構化數據。例如,開發者可以:
- 創建透過調用外部工具(例如 ChatGPT 插件)回答問題的聊天機器人。
- 將查詢如“給Anya發電子郵件,看看她是否想下週五喝咖啡”轉換為調用send_email(to: string, body: string)這樣的函數,或者將“波士頓的天氣如何?”轉換為get_current_weather(location: string, unit: 'celsius' | 'fahrenheit')。
- 將自然語言轉換為 API 調用或資料庫查詢。
- 將“本月我的前十位客戶是誰?”轉換為內部API調用,例如get_customers_by_revenue(start_date: string, end_date: string, limit: int),或者將“Acme公司上個月下了多少訂單?”轉換為使用sql_query(query: string)的SQL查詢。
- 從文本中提取結構化數據。
- 定義一個名為extract_people_data(people: [{name: string, birthday: string, location: string}])的函數,以提取在維基百科文章中提到的所有人物。
這些示範是透過 /v1/chat/completions 端點中的新 API 參數(functions和function_call)實現的,開發者可以透過 JSON Schema 描述函數,並選擇性地要求模型調用特定的函數。請參閱 OpenAI 的開發者文檔,如果您發現可以改進函數調用的案例,請添加評估(evals)功能開始使用。
資料來源 / https://openai.com/blog/function-calling-and-other-api-updates