国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
>本文將介紹Webockets的工作方式,並包括與實(shí)時(shí)API進(jìn)行交互的幾個(gè)示例。?
> dotenv:一個(gè)從.env文件加載API鍵的實(shí)用程序軟件包。
Websockets允許我們?cè)谀承┦录l(fā)生時(shí)設(shè)置操作。我們可以使用開(kāi)放事件來(lái)指定一些我們要執(zhí)行連接後要執(zhí)行的代碼。
>在使用WebSockets時(shí)我們可以響應(yīng)的另一個(gè)事件是消息事件。每次從服務(wù)器接收消息時(shí),都會(huì)觸發(fā)這一點(diǎn)。讓我們添加一個(gè)顯示每個(gè)收到消息的函數(shù):
>今天建立MLOPS技能
函數(shù)
工具定義JSON對(duì)象。
OpenAI型號(hào)蒸餾:帶有示例的指南
首頁(yè) 科技週邊 人工智慧 Openai實(shí)時(shí)API:指南示例

Openai實(shí)時(shí)API:指南示例

Mar 03, 2025 am 10:38 AM

>新引入的OpenAI實(shí)時(shí)API使我們能夠?qū)⒖焖伲脱舆t,多模式體驗(yàn)集成到我們的應(yīng)用程序中。使用此API,我們可以在用戶(hù)和大型語(yǔ)言模型(LLMS)之間創(chuàng)建無(wú)縫的語(yǔ)音到語(yǔ)音交互。

>

>此API消除了多個(gè)模型以實(shí)現(xiàn)語(yǔ)音驅(qū)動(dòng)體驗(yàn)的需求,因?yàn)樗谝粋€(gè)集成的API中提供了完整的解決方案。它不僅旨在減少潛伏期,而且還保留了對(duì)話(huà)的情感細(xì)微差別和自然流動(dòng)。 在本文中,我們將學(xué)習(xí)如何使用OpenAI實(shí)時(shí)API來(lái)構(gòu)建語(yǔ)音控制的AI助手。我們將使用node.js創(chuàng)建持久的Websocket連接,以及如何在終端中使用它來(lái)與API通信。此外,我將指導(dǎo)您部署使用此API功能的React應(yīng)用程序。

使用WebSockets使用實(shí)時(shí)API

與OpenAI API的其他組件不同,實(shí)時(shí)API使用Websockets。 WebSockets是一種通信協(xié)議,可以在客戶(hù)端和服務(wù)器之間建立雙向通信渠道。與HTTP使用的常規(guī)請(qǐng)求響應(yīng)模型相反,Websockets支持正在進(jìn)行的實(shí)時(shí)交互。這使Websocket特別適合實(shí)時(shí)應(yīng)用程序,例如語(yǔ)音聊天。

>本文將介紹Webockets的工作方式,並包括與實(shí)時(shí)API進(jìn)行交互的幾個(gè)示例。?

>我們將使用node.js,因此我們需要確保將其安裝在計(jì)算機(jī)上。如果沒(méi)有,我們可以從其官方網(wǎng)站下載和安裝node.js。

>初始化腳本

>跟隨,我們建議使用上面創(chuàng)建的.env文件創(chuàng)建一個(gè)文件夾。在該文件夾中,運(yùn)行以下命令以初始化腳本:

>完成此命令後,這些文件應(yīng)在文件夾中:>

npm init -y && touch index.js
安裝依賴(lài)項(xiàng)

從安裝兩個(gè)軟件包開(kāi)始:

Openai實(shí)時(shí)API:指南示例

ws:這是Websocket軟件包,與API交互所需的主要軟件包。

> dotenv:一個(gè)從.env文件加載API鍵的實(shí)用程序軟件包。

通過(guò)運(yùn)行命令安裝這些:
  • 連接到實(shí)時(shí)API
  • >要啟動(dòng)與實(shí)時(shí)API的連接,我們創(chuàng)建了一個(gè)新的WebSocket對(duì)象,傳遞API URL和標(biāo)頭,並帶有所需的信息以連接到它:>
打開(kāi)連接時(shí)設(shè)置操作

上面的代碼創(chuàng)建了與API的Web套接字連接,但尚未對(duì)其進(jìn)行任何作用。
npm install ws dotenv
>

Websockets允許我們?cè)谀承┦录l(fā)生時(shí)設(shè)置操作。我們可以使用開(kāi)放事件來(lái)指定一些我們要執(zhí)行連接後要執(zhí)行的代碼。

添加事件偵聽(tīng)器的通用語(yǔ)法如下:

>
npm init -y && touch index.js

替換< event>帶有包含事件名稱(chēng)的字符串和< function>發(fā)生事件發(fā)生時(shí)要執(zhí)行的函數(shù)。?

這是一旦連接準(zhǔn)備就可以顯示文本的方法:

>
npm install ws dotenv

要運(yùn)行此代碼,我們使用命令:>

// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();
如果正確設(shè)置了API鍵,我們將在終端中看到“連接是打開(kāi)”消息。腳本將繼續(xù)運(yùn)行,因?yàn)檫B接仍然開(kāi)放,因此我們必須手動(dòng)停止它。

接收到消息時(shí)設(shè)置操作

>在使用WebSockets時(shí)我們可以響應(yīng)的另一個(gè)事件是消息事件。每次從服務(wù)器接收消息時(shí),都會(huì)觸發(fā)這一點(diǎn)。讓我們添加一個(gè)顯示每個(gè)收到消息的函數(shù):

>

現(xiàn)在運(yùn)行腳本也應(yīng)顯示會(huì)話(huà)。在初始化會(huì)話(huà)時(shí)API發(fā)送的創(chuàng)建事件。
ws.on(<event>, <function>);
其他WebSocket事件

>上面,我們學(xué)會(huì)瞭如何將事件聽(tīng)眾添加到“開(kāi)放”和“消息”事件中。 WebSocket支持我們?cè)谑纠胁粫?huì)使用的兩個(gè)其他事件。

>

關(guān)閉套接字時(shí),可以使用關(guān)閉事件來(lái)添加回調(diào):

發(fā)生錯(cuò)誤時(shí),錯(cuò)誤事件用於添加回調(diào):

>

// Add inside the main() function of index.js after creating ws
async function handleOpen() {
  console.log("Connection is opened");
}
ws.on("open", handleOpen);
與實(shí)時(shí)API

進(jìn)行通信

>使用Websockets需要我們以事件驅(qū)動(dòng)的方式進(jìn)行編程。消息是在通信渠道上來(lái)回發(fā)送的,我們無(wú)法控制何時(shí)傳遞或接收這些消息。?
node index.js

啟動(dòng)通信的代碼應(yīng)在handingopen()中添加。 o否則,將發(fā)生錯(cuò)誤,因?yàn)樵摯a可以在創(chuàng)建Web套接字通信頻道之前執(zhí)行。

>對(duì)於代碼處理消息也是如此。所有邏輯都應(yīng)進(jìn)入handlemessage()函數(shù)。

> 在即將到來(lái)的示例中,我們將使用以下代碼作為起點(diǎn)。大多數(shù)更改涉及更新handingopen()和handlemessage()。

>

使用實(shí)時(shí)API發(fā)送和接收文本

通過(guò)使用事件,與實(shí)時(shí)API進(jìn)行通信。 OpenAI實(shí)時(shí)文檔API列出了其支持的事件。我們使用對(duì)話(huà)。事件表示為JSON對(duì)象,其字段在文檔中描述。

這是對(duì)話(huà)的示例。

這個(gè)事件告訴API我們要啟動(dòng)文本對(duì)話(huà)。這是在內(nèi)容字段中使用的“ input_text”類(lèi)型在內(nèi)容字段中指定的。

>我們使用ws.send()方法發(fā)送消息。 Web套接字包期望字符串作為參數(shù),因此我們需要使用JSON.STRINGIFY()函數(shù)將JSON事件轉(zhuǎn)換為字符串。將這些放在一起,這是我們可以發(fā)送上述事件的方式:

npm init -y && touch index.js

>這將啟動(dòng)對(duì)話(huà),但不會(huì)觸發(fā)API自動(dòng)向我們發(fā)送響應(yīng)。為了觸發(fā)響應(yīng),我們發(fā)送響應(yīng)。創(chuàng)建事件。這是一個(gè)示例:

npm install ws dotenv

此事件使用模式響應(yīng)參數(shù)請(qǐng)求文本響應(yīng)。說(shuō)明是最重要的部分,描述了我們希望該模型要做的事情,在這種情況下,要求為用戶(hù)提供幫助。

>我們將這兩個(gè)事件發(fā)送到handleopen()函數(shù)中,以便在建立連接後立即啟動(dòng)對(duì)話(huà)。這是此示例中的全部實(shí)現(xiàn):

>

// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();
關(guān)於傳入消息,有三種類(lèi)型的事件值得注意:響應(yīng).text.delta,Response.text.done和wendesp.done。

>響應(yīng).text.delta事件包含響應(yīng)分解為三角洲字段中的塊。當(dāng)我們想提供實(shí)時(shí)體驗(yàn)時(shí),它們很重要,因?yàn)樗鼈冊(cè)试S我們立即通過(guò)塊串出響應(yīng)塊。?
  • 響應(yīng).text.done事件標(biāo)記了文本響應(yīng)的終點(diǎn),並包含文本字段中的完整答案。 >
  • 響應(yīng)。事件標(biāo)記了響應(yīng)的終點(diǎn)。 >
  • 我們可以使用handlemessage()函數(shù)中的switch語(yǔ)句來(lái)指定我們的腳本如何對(duì)這些事件進(jìn)行響應(yīng):
在此示例中,我們使用響應(yīng).text.delta事件在接收到該控制臺(tái)的響應(yīng)中打印出響應(yīng)的塊。響應(yīng)完成後,觸發(fā)了響應(yīng).text.done事件,我們打印一條新的行以顯示輸出已完成。最後,當(dāng)我們收到響應(yīng)事件時(shí),我們關(guān)閉Web套接字。

>

要運(yùn)行此示例,我們將這些函數(shù)粘貼到上面的模板代碼中,並使用命令運(yùn)行:
ws.on(<event>, <function>);

>這將在終端中生成一個(gè)響應(yīng),以提示“在一個(gè)句子中解釋W(xué)eb套接字是什麼”,類(lèi)似於我們使用ChatGpt時(shí)。?

// Add inside the main() function of index.js after creating ws
async function handleOpen() {
  console.log("Connection is opened");
}
ws.on("open", handleOpen);
可以在此處獲得文本示例的完整代碼。

使用實(shí)時(shí)API發(fā)送和接收音頻

>上一個(gè)示例顯示了我們?nèi)绾翁幚砦谋緮?shù)據(jù)。但是,對(duì)實(shí)時(shí)API的真正興趣是創(chuàng)建一個(gè)實(shí)時(shí)回復(fù)的語(yǔ)音助手。 > 處理音頻數(shù)據(jù)比處理文本數(shù)據(jù)要復(fù)雜得多。我們將跳過(guò)一些針對(duì)音頻工作方式的細(xì)節(jié),因?yàn)樗鼈儠?huì)分散我們從本文的主要主題中註意到我們的注意力。

首先,我們安裝了兩個(gè)軟件包:>
npm init -y && touch index.js
    > 揚(yáng)聲器用於播放AI語(yǔ)音響應(yīng)。
  • >
>我們還需要安裝Sox(Sound Exchange),這是一種用於音頻處理的命令行實(shí)用程序,該節(jié)點(diǎn)庫(kù)將使用該實(shí)用程序與麥克風(fēng)連接並記錄音頻。使用Brew Install Sox將其安裝在MacOS或Sudo Apt inst sox上的Linux上。

>安裝了這些軟件包,我們將它們導(dǎo)入並添加一個(gè)函數(shù)Startrecording(),以記錄用戶(hù)的音頻提示。我們不會(huì)詳細(xì)解釋該功能,因?yàn)樗鼤?huì)使我們從主要主題中脫穎而出。?

加載環(huán)境後,將以下代碼添加到index.js文件:

> StarTrecording()函數(shù)從麥克風(fēng)記錄音頻,並等待按下“ Enter”。?

接下來(lái),我們通過(guò)初始化用於播放AI響應(yīng)的speaker()來(lái)更新main()函數(shù):
npm install ws dotenv
>

>以此為止,我們可以實(shí)現(xiàn)handingopen()和handlemessage()來(lái)處理音頻。

>在handingopen()函數(shù)中,我們只需要調(diào)用StarTrecording()函數(shù)即可記錄用戶(hù)的音頻提示。我們還需要稍微更新事件:

// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();

>更新createConversationEvent的內(nèi)容以使用“ input_audio”而不是“ input_text”,然後用音頻替換文本字段:base64audiodata。

>將“音頻”添加到createresponseevent中的響應(yīng)方式中。

>

    這是更新的handleopen()函數(shù):
  1. >要實(shí)現(xiàn)handlemessage()函數(shù),我們修改“ response.audio.delta”事件以更新音頻緩衝區(qū)並播放新的聲音delta:
>我們從Switch語(yǔ)句中刪除“ Response.Text.done”事件,然後更新“響應(yīng)。DONE”事件,以阻止揚(yáng)聲器:

ws.on(<event>, <function>);
handlemessage()函數(shù)的最終實(shí)現(xiàn)如下:

>

// Add inside the main() function of index.js after creating ws
async function handleOpen() {
  console.log("Connection is opened");
}
ws.on("open", handleOpen);
要運(yùn)行此示例,將這些修改應(yīng)用於模板代碼,並使用命令運(yùn)行:>

麥克風(fēng)將開(kāi)始錄製。我們可以說(shuō)我們的請(qǐng)求,然後按“ Enter”發(fā)送。然後,AI的響應(yīng)將在揚(yáng)聲器上發(fā)揮作用(確保麥克風(fēng)沒(méi)有靜音並且揚(yáng)聲器的音量)。
node index.js
可在此處提供音頻示例的完整代碼。

>

>函數(shù)調(diào)用
// Add inside the main() function of index.js
 async function handleMessage(messageStr) {
    const message = JSON.parse(messageStr);
    console.log(message);
}
ws.on("message", handleMessage);
OpenAI API的一個(gè)不錯(cuò)的功能是執(zhí)行功能調(diào)用的功能。我們可以向助手添加功能,如果它檢測(cè)到其中一個(gè)功能對(duì)於提供答案很有用,它將發(fā)送一個(gè)事件,要求調(diào)用特定功能。

openai文檔提供了以下圖,以說(shuō)明函數(shù)呼叫的生命週期:

Openai實(shí)時(shí)API:指南示例

來(lái)源:OpenAi

從圖中,我們看到客戶(hù)端必須提供LLM可以調(diào)用功能的定義。此外,函數(shù)執(zhí)行將在客戶(hù)端端進(jìn)行; AI將發(fā)送一個(gè)事件,要求調(diào)用該函數(shù)及其參數(shù)。然後,我們有責(zé)任寄回結(jié)果。

>

>讓我們通過(guò)將兩個(gè)數(shù)字添加在一起的函數(shù)授權(quán)我們的助手。我們將通過(guò)擴(kuò)展上面的音頻示例來(lái)構(gòu)建此示例。

>

>要指定可用功能,我們必須為L(zhǎng)LM提供工具列表。每個(gè)工具都是JSON對(duì)象,該對(duì)象指定有關(guān)該功能的信息。這是我們可以為總和函數(shù)定義工具的方法:>

npm init -y && touch index.js
讓我們解釋一下對(duì)象結(jié)構(gòu):

    類(lèi)型指定我們正在定義函數(shù)。
  • >
  • >該名稱(chēng)用於識(shí)別該功能。這是LLM用來(lái)告訴我們要調(diào)用哪個(gè)功能的方法。
  • >
  • 該描述用於識(shí)別llm何時(shí)應(yīng)使用此功能。 >
  • 參數(shù)用於指定函數(shù)的參數(shù)。在這種情況下,兩個(gè)數(shù)字命名為a和b。
  • 下一步是在我們的代碼中定義函數(shù)。我們將使用鍵Counculate_sum使用字典,以使我們?cè)陧憫?yīng)函數(shù)呼叫事件時(shí)更容易調(diào)用適當(dāng)?shù)暮瘮?shù):
>

> API將提供函數(shù)參數(shù)為詞典,其在上面的參數(shù)上定義了相同的結(jié)構(gòu)。在這種情況下,要添加3和5,字典將為{“ a”:3,“ b”:5}。
npm install ws dotenv

> sumtool和函數(shù)常數(shù)可以添加到index.js的頂部,在導(dǎo)入之後和main()函數(shù)之前。

接下來(lái),我們更新響應(yīng)。這是通過(guò)將工具和tool_choice字段添加到響應(yīng)中來(lái)完成的:

LLM決定要調(diào)用函數(shù)時(shí),它將發(fā)出響應(yīng)。 function_call_arguments.done事件。我們需要通過(guò)以下方式回復(fù)它

獲取功能信息並調(diào)用函數(shù)。
// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();

發(fā)送函數(shù)調(diào)用的結(jié)果。

    請(qǐng)求響應(yīng)。
  1. 我們通過(guò)將以下情況添加到Handemessage()函數(shù)中的Switch語(yǔ)句:>來(lái)處理此操作。
  2. 如果我們現(xiàn)在運(yùn)行腳本並請(qǐng)求添加兩個(gè)數(shù)字的結(jié)果,則該模型應(yīng)調(diào)用該功??能並提供結(jié)果。
  3. >此功能相對(duì)簡(jiǎn)單,但是由於該函數(shù)是由客戶(hù)端執(zhí)行的,因此可能是任何東西。在下一部分中,我們將看到兩個(gè)更複雜功能的示例。
>

此示例的完整代碼可在此處找到。

>

>今天建立MLOPS技能

從頭開(kāi)始並獲得職業(yè)生涯的MLOPS技能。使用OpenAI實(shí)時(shí)API

> OpenAI團(tuán)隊(duì)提供了一個(gè)演示React應(yīng)用程序來(lái)展示實(shí)時(shí)API。在這裡,我們將學(xué)習(xí)如何進(jìn)行設(shè)置並探索其工作原理。這是構(gòu)建一個(gè)更複雜應(yīng)用程序的絕佳起點(diǎn)。

>

>應(yīng)用程序設(shè)置

不需要React知識(shí)才能使其啟動(dòng)並運(yùn)行。但是,您需要熟悉反應(yīng)以修改或擴(kuò)展它。

>

他們的應(yīng)用在此存儲(chǔ)庫(kù)中託管。要設(shè)置它,請(qǐng)使用以下git命令克隆開(kāi)始:

>

另外,我們也可以從GitHub接口手動(dòng)下載它。
npm init -y && touch index.js
>

要安裝該應(yīng)用程序,我們使用以下NPM(節(jié)點(diǎn)軟件包管理)命令:>

安裝完成後,在項(xiàng)目的根文件夾中創(chuàng)建一個(gè)名為.env的文件,然後粘貼以下內(nèi)容:

npm install ws dotenv

替換&lt; openai_api_key&gt;使用OpenAI API鍵。

// Import the web socket library
const WebSocket = require("ws");
// Load the .env file into memory so the code has access to the key
const dotenv = require("dotenv");
dotenv.config();
function main() {
  // Connect to the API
  const url = "wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview-2024-10-01";
  const ws = new WebSocket(url, {
      headers: {
          "Authorization": "Bearer " + process.env.OPENAI_API_KEY,
          "OpenAI-Beta": "realtime=v1",
      },
  });
}
main();
現(xiàn)在應(yīng)該準(zhǔn)備執(zhí)行該應(yīng)用程序。它由兩個(gè)部分組成:

一個(gè)由應(yīng)用程序的Web用戶(hù)界面組成的React前端。 >

>繼電器服務(wù)器用作前端和OpenAI API之間的中介。?
>在前端和OpenAI API之間實(shí)現(xiàn)繼電器服務(wù)器的主要目的是安全地存儲(chǔ)API鍵。沒(méi)有此鍵,與API互動(dòng)是不可能的。 但是,如果鍵存儲(chǔ)在前端,則任何用戶(hù)都可以訪問(wèn)它。因此,該解決方案涉及建立一個(gè)安全存儲(chǔ)密鑰並促進(jìn)API和前端之間的數(shù)據(jù)交換的服務(wù)器。在這種特定情況下,安全問(wèn)題是最小的,因?yàn)樵搼?yīng)用程序僅在本地運(yùn)行。?

Openai實(shí)時(shí)API:指南示例>要啟動(dòng)應(yīng)用程序,有必要同時(shí)啟動(dòng)繼電器服務(wù)器和前端。要啟動(dòng)繼電器服務(wù)器,請(qǐng)使用以下命令:>

啟動(dòng)React前端使用命令:>

完成加載後,將在瀏覽器上打開(kāi)一個(gè)選項(xiàng)卡,並在其上運(yùn)行該應(yīng)用程序。

ws.on(<event>, <function>);
使用該應(yīng)用

開(kāi)始使用該應(yīng)用之前,請(qǐng)確保計(jì)算機(jī)不在靜音上並允許麥克風(fēng)訪問(wèn)該應(yīng)用程序。
// Add inside the main() function of index.js after creating ws
async function handleOpen() {
  console.log("Connection is opened");
}
ws.on("open", handleOpen);
>

我們首先單擊“連接”按鈕。這將向?qū)崟r(shí)API發(fā)送“ Hello”消息,我們將收到一個(gè)問(wèn)候。

Openai實(shí)時(shí)API:指南示例

建立連接後,中心將出現(xiàn)一個(gè)新按鈕,使我們可以與AI助手交談。?

Openai實(shí)時(shí)API:指南示例

>使用它,按和交談而無(wú)需釋放按鈕。釋放按鈕時(shí)發(fā)送消息。

>

該應(yīng)用程序還具有VAD(語(yǔ)音活動(dòng)檢測(cè))模式,在該模式中,我們不需要按任何按鈕。在此模式下,應(yīng)用程序?qū)⒉粩嗍章?tīng),使我們能夠與助手進(jìn)行積極的對(duì)話(huà)。要使用它,只需按“ VAD”按鈕並說(shuō)話(huà)。

Openai實(shí)時(shí)API:指南示例

函數(shù)

正如我們了解到的那樣,實(shí)時(shí)API提供了一項(xiàng)功能,使AI能夠執(zhí)行特定的功能。該演示展示了兩個(gè)功能:一個(gè)用於查詢(xún)特定位置的天氣預(yù)報(bào),另一個(gè)用於添加記憶項(xiàng)目以個(gè)性化助手。?

>通過(guò)提出諸如“紐約明天的天氣如何?”之類(lèi)的問(wèn)題來(lái)體驗(yàn)這些功能。並說(shuō)明“我最喜歡的顏色是藍(lán)色”之類(lèi)的偏好。助手將對(duì)這些查詢(xún)提供口頭回應(yīng),信息也將顯示在應(yīng)用程序的右側(cè)。

Openai實(shí)時(shí)API:指南示例>有時(shí)我請(qǐng)求天氣報(bào)告,而響應(yīng)表明當(dāng)時(shí)無(wú)法訪問(wèn)它。但是,這些信息始終顯示在右側(cè)。作為演示應(yīng)用程序,它並不是要成為功能齊全的產(chǎn)品,而是用於展示API的功能。

了解客戶(hù)端

本節(jié)需要對(duì)REACT的高級(jí)了解才能遵循,因?yàn)槲覀兘榻B了應(yīng)用程序的一些實(shí)現(xiàn)詳細(xì)信息。

我們將查看consolePage.tsx文件。這是定義大多數(shù)應(yīng)用程序邏輯的地方。演示應(yīng)用程序不像我們?cè)趎ode.js命令行應(yīng)用程序示例中那樣使用RAW WebSocket。他們建立了一個(gè)幫助與API互動(dòng)的實(shí)時(shí)客戶(hù)端。這就是文件頂部導(dǎo)入的內(nèi)容:

>

在此useFect()調(diào)用中定義了與API的集成。最初呈現(xiàn)控制臺(tái)頁(yè)面時(shí),執(zhí)行此useFect()中的代碼。與我們的node.js腳本類(lèi)似,它概述瞭如何響應(yīng)API事件。主要的區(qū)別是其使用RealtimeClient客戶(hù)端包裝器。 >

定義工具
npm init -y && touch index.js

工具定義JSON對(duì)象。

要執(zhí)行的函數(shù)。

  • 此方法簡(jiǎn)化了工具的集成,因?yàn)榭蛻?hù)端已經(jīng)配備了處理事件和自動(dòng)化功能調(diào)用。這裡定義了內(nèi)存工具,而天氣工具的定義是在此處定義的。例如,要添加先前定義的總和工具,我們可以執(zhí)行以下操作:>

    請(qǐng)注意,該應(yīng)用程序使用Typescript,因此需要在功能定義中的類(lèi)型規(guī)範(fàn)。
    npm init -y && touch index.js
    聆聽(tīng)事件

    要收聽(tīng)事件,使用realtimeclient.on()函數(shù)。它接受兩個(gè)參數(shù):

    事件的名稱(chēng)。

      要執(zhí)行的回調(diào)函數(shù)。
    1. 此方法類(lèi)似於先前使用的WebSocket.on()函數(shù),除非它實(shí)現(xiàn)了不同的事件集。他們的github頁(yè)面提供了支持事件的列表。
    在此特定示例中,使用以下事件:

    實(shí)時(shí)事件,這裡用於保留所有事件的日誌。

    此處的錯(cuò)誤事件只需將錯(cuò)誤記錄到控制臺(tái)以進(jìn)行調(diào)試目的。
      對(duì)話(huà)。中斷的事件在此中斷轉(zhuǎn)換時(shí)取消請(qǐng)求。
    • >最後,當(dāng)新的Chuck從API進(jìn)入時(shí),此處的對(duì)話(huà)。
    • 結(jié)論
    • 在本教程中,我們探索了OpenAI實(shí)時(shí)API及其如何使用Websocket進(jìn)行實(shí)時(shí)通信。我們介紹了Node.js環(huán)境的設(shè)置,以與API進(jìn)行交互,發(fā)送和接收文本和音頻消息,並實(shí)現(xiàn)函數(shù),要求提高功能。
    • >我們還探索了OpenAI Demo React應(yīng)用程序,演示瞭如何部署基本語(yǔ)音助手應(yīng)用程序。
    • >要了解有關(guān)最新的OpenAI開(kāi)發(fā)工具的更多信息,我建議這些教程:>

    OpenAI型號(hào)蒸餾:帶有示例的指南

    gpt-4o視覺(jué)微調(diào):帶有示例的指南

    >

以上是Openai實(shí)時(shí)API:指南示例的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門(mén)文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題

AI投資者停滯不前? 3條購(gòu)買(mǎi),建造或與人工智能供應(yīng)商合作的戰(zhàn)略途徑 AI投資者停滯不前? 3條購(gòu)買(mǎi),建造或與人工智能供應(yīng)商合作的戰(zhàn)略途徑 Jul 02, 2025 am 11:13 AM

投資蓬勃發(fā)展,但僅資本還不夠。隨著估值的上升和獨(dú)特性的衰落,以AI為中心的風(fēng)險(xiǎn)投資的投資者必須做出關(guān)鍵決定:購(gòu)買(mǎi),建立或合作夥伴才能獲得優(yōu)勢(shì)?這是評(píng)估每個(gè)選項(xiàng)和PR的方法

AGI和AI超級(jí)智能將嚴(yán)重?fù)糁腥祟?lèi)天花板的假設(shè)障礙 AGI和AI超級(jí)智能將嚴(yán)重?fù)糁腥祟?lèi)天花板的假設(shè)障礙 Jul 04, 2025 am 11:10 AM

讓我們來(lái)談?wù)劇? 對(duì)創(chuàng)新AI突破的分析是我正在進(jìn)行的AI中正在進(jìn)行的福布斯列覆蓋的一部分,包括識(shí)別和解釋各種有影響力的AI複雜性(請(qǐng)參閱此處的鏈接)。 前往Agi和

構(gòu)建您的第一個(gè)LLM應(yīng)用程序:初學(xué)者的教程 構(gòu)建您的第一個(gè)LLM應(yīng)用程序:初學(xué)者的教程 Jun 24, 2025 am 10:13 AM

您是否曾經(jīng)嘗試過(guò)建立自己的大型語(yǔ)言模型(LLM)應(yīng)用程序?有沒(méi)有想過(guò)人們?nèi)绾翁岣咦约旱腖LM申請(qǐng)來(lái)提高生產(chǎn)率? LLM應(yīng)用程序已被證明在各個(gè)方面都有用

Kimi K2:最強(qiáng)大的開(kāi)源代理模型 Kimi K2:最強(qiáng)大的開(kāi)源代理模型 Jul 12, 2025 am 09:16 AM

還記得今年早些時(shí)候破壞了Genai行業(yè)的大量開(kāi)源中國(guó)模型嗎??jī)嵐蹹eepSeek佔(zhàn)據(jù)了大多數(shù)頭條新聞,但Kimi K1.5是列表中的重要名字之一。模型很酷。

AMD繼續(xù)在AI中建立動(dòng)力,還有很多工作要做 AMD繼續(xù)在AI中建立動(dòng)力,還有很多工作要做 Jun 28, 2025 am 11:15 AM

總體而言,我認(rèn)為該活動(dòng)對(duì)於展示AMD如何向客戶(hù)和開(kāi)發(fā)人員移動(dòng)球非常重要。在SU下,AMD的M.O.要製定明確,雄心勃勃的計(jì)劃並對(duì)他們執(zhí)行。她的“說(shuō)/do”比率很高。公司做

未來(lái)預(yù)測(cè)從AI到AGI的道路上的大規(guī)模情報(bào)爆炸 未來(lái)預(yù)測(cè)從AI到AGI的道路上的大規(guī)模情報(bào)爆炸 Jul 02, 2025 am 11:19 AM

讓我們來(lái)談?wù)劇? 對(duì)創(chuàng)新AI突破的分析是我正在進(jìn)行的AI中正在進(jìn)行的福布斯列覆蓋的一部分,包括識(shí)別和解釋各種有影響力的AI複雜性(請(qǐng)參閱此處的鏈接)。對(duì)於那些讀者

推理模型的思想鏈可能無(wú)法長(zhǎng)期解決 推理模型的思想鏈可能無(wú)法長(zhǎng)期解決 Jul 02, 2025 am 11:18 AM

例如,如果您向模型提出一個(gè)問(wèn)題,例如:“(x)人在(x)公司做什麼?”您可能會(huì)看到一個(gè)看起來(lái)像這樣的推理鏈,假設(shè)系統(tǒng)知道如何檢索必要的信息:找到有關(guān)CO的詳細(xì)信息

Grok 4 vs Claude 4:哪個(gè)更好? Grok 4 vs Claude 4:哪個(gè)更好? Jul 12, 2025 am 09:37 AM

到2025年中期,AI“軍備競(jìng)賽”正在加熱,XAI和Anthropic都發(fā)布了他們的旗艦車(chē)型Grok 4和Claude 4。這兩種模型處?kù)对O(shè)計(jì)理念和部署平臺(tái)的相反端,但他們卻在

See all articles