使用Node.js進行新的ChatGPT函數調用 | OpenAI API教程
內容提要:
標題:OpenAI 的 GPT 3.5 Turbo 函數調用功能介紹 😃
標題:Node.js 範例代碼展示 🚀
標題:如何配置 OpenAI API 金鑰 💡
標題:如何使用 GPT 3.5 Turbo 進行函數調用 🎯
標題:查詢特定地點的當前時間 ⌚
標題:傳遞函數的參數和描述 📝
標題:觸發函數並處理回應 ✅
標題:介紹 OpenAI API 的完成數據對象 📄
標題:構建聊天 GPT 應用的最新更新 🌟
標題:除錯和進一步資源 🛠️
OpenAI 的 GPT 3.5 Turbo 函數調用功能介紹 😃
在這篇文章中,我們將深入研究 OpenAI 最新推出的 GPT 3.5 Turbo 函數調用功能。這一更新為開發者們帶來了一個全新的功能,能夠在聊天界面中運行函數,使得開發人員不再侷限於 2021 年的資訊,能夠查詢最新的數據和資訊。我們將通過一個 Node.js 範例代碼來展示該功能的具體用法,並介紹相關配置和使用細節。
Node.js 範例代碼展示 🚀
在這個範例中,我們將使用 Node.js 來展示 GPT 3.5 Turbo 函數調用功能的使用方法。首先,我們需要配置 OpenAI API 金鑰。你可以在 OpenAI 帳戶中獲取該金鑰,並在配置中設置新的 API 實例。隨後,我們將使用函數 createChatCompletion
來創建一個聊天完成對象。
const completion = await openai.complete({
model: 'gpt-3.5-turbo',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is the time in New York?' },
{ role: 'assistant', content: 'The current time in New York is 9:00 AM.' }
]
});
在這個例子中,我們模擬了一次對話,用戶詢問了當前紐約的時間,而助手則給出了回答。我們可以通過處理返回的 completion
對象來獲取這個回答。
如何配置 OpenAI API 金鑰 💡
要使用 GPT 3.5 Turbo 函數調用功能,你首先需要一個有效的 OpenAI API 金鑰。你可以在 OpenAI 的開發者帳戶中創建和管理這些金鑰。在獲取金鑰後,你需要將其配置到你的項目中。這可以通過創建一個新的 API 實例並將金鑰與之關聯來完成。
const openai = new OpenAI({
apiKey: 'your-api-key'
});
在此處,你需要將 'your-api-key'
替換為你自己的 API 金鑰。
如何使用 GPT 3.5 Turbo 進行函數調用 🎯
現在,讓我們深入了解如何使用 GPT 3.5 Turbo 的函數調用功能。通過在數據對象中添加一個新的 "function"
字段,我們可以指定要運行的函數名稱和相應的參數。
const completion = await openai.complete({
model: 'gpt-3.5-turbo',
messages: [
{ role: 'system', content: 'You are a helpful assistant.' },
{ role: 'user', content: 'What is the time in New York?' },
{ role: 'assistant', content: 'The current time in New York is 9:00 AM.' },
{ role: 'system', content: '{"function": "lookup_time", "arguments": {"location": "New York"}}' }
]
});
注意到在 messages
數組中,我們添加了一條新的 "system"
訊息,其中包含了一個描述函數調用的 JSON 字符串。該字符串指定了要運行的函數為 "lookup_time"
,並傳遞了一個名為 "location"
的參數。這樣,GPT 3.5 Turbo 就能夠根據這個描述來執行相應的函數調用。
查詢特定地點的當前時間 ⌚
函數調用功能最有用的一個應用場景就是查詢特定地點的當前時間。通過對話界面,用戶可以向 assistant 查詢特定地點的時間,而 assistant 則可根據用戶的輸入自動運行查詢函數,並返回正確的時間信息。
{ role: 'user', content: 'What time is it in London?' },
{ role: 'assistant', content: 'The current time in London is 5:00 PM.' },
{ role: 'system', content: '{"function": "lookup_time", "arguments": {"location": "London"}}' }
在這個例子中,用戶請求查詢倫敦的時間,assistant 通過觸發 "lookup_time"
函數來執行這個查詢,最後返回結果給用戶。
傳遞函數的參數和描述 📝
在進行函數調用時,你需要傳遞函數的參數和描述。參數可以是任何類型的數據,例如地點名稱、數字等。在這個範例中,我們使用 JSON 字符串來描述函數調用。
{ role: 'system', content: '{"function": "lookup_time", "arguments": {"location": "New York"}}' },
在這個描述中,我們指定了要運行的函數為 "lookup_time"
,並傳遞了一個名為 "location"
的參數。
觸發函數並處理回應 ✅
當觸發函數後,你需要處理返回的回應。為此,你可以通過檢查 "completion"
對象中的相應部分來了解函數運行的結果。
const response = completion.choices[0].message.content;
console.log(response); // The current time in New York is 9:00 AM.
在這個例子中,我們獲取了返回結果中的回應,並將其打印到控制台上。你可以根據實際情況進一步處理回應。
介紹 OpenAI API 的完成數據對象 📄
當使用 OpenAI API 進行函數調用時,你將獲得一個完成數據對象作為返回值。該對象包含了從 GPT 3.5 Turbo 獲取的完整數據,其中最重要的部分是 "choices"
屬性,它包含了聊天回應的數組。
const completion = await openai.complete({ ... });
const response = completion.choices[0].message.content;
通過使用 "choices"
屬性,你可以獲取到最後生成的回應,並進一步用於後續處理。
構建聊天 GPT 應用的最新更新 🌟
此次 GPT 3.5 Turbo 函數調用功能的更新將使開發者能夠構建更加強大和智能的聊天 GPT 應用。通過執行函數,你可以根據用戶的需求動態生成內容,查詢最新的數據並根據情境提供定制化的回應。這使得 GPT 3.5 Turbo 在各種應用場景中具有更廣泛的適用性,從而提升了用戶體驗和應用價值。
除錯和進一步資源 🛠️
在使用 GPT 3.5 Turbo 函數調用功能時,出現問題是正常的。你可能需要檢查函數的參數、描述和回應等方面。如果需要更多信息,你可以參考 OpenAI 的官方文檔和示例代碼,以獲得更多關於 GPT 3.5 Turbo 函數調用功能的信息和指南。
OpenAI 官方網站: https://openai.com/
OpenAI GPT 3.5 Turbo 官方文檔: https://openai.com/docs/guides/function-calls
FAQ 常見問題解答
問題:我需要一個有效的 OpenAI API 金鑰才能使用 GPT 3.5 Turbo 函數調用功能嗎?
答案:是的,你需要擁有一個有效的 OpenAI API 金鑰才能使用該功能。你可以在 OpenAI 的開發者帳戶中創建和管理金鑰。
問題:函數調用功能在哪些應用場景中最有用?
答案:函數調用功能在查詢特定地點的當前時間、獲取最新的數據和資訊等場景中非常有用。開發人員可以通過觸發函數來實現這些功能,提供更多動態和個性化的回應。
問題:我需要什麼類型的參數來運行函數?
答案:參數可以是各種類型的數據,例如地點名稱、數字等。你可以根據自己的需求和具體情況來傳遞相應的參數。
問題:我怎樣處理函數的回應數據?
答案:你可以通過檢查返回的 "completion"
對象中的相應部分來處理函數的回應。這包括了查詢函數運行結果的具體值或信息。你可以根據實際情況進一步對回應數據進行相應的處理和使用。
欲了解更多關於 GPT 3.5 Turbo 函數調用功能的詳細信息,請訪問 OpenAI 官方網站和文檔。
資源: