首頁 >科技週邊 >IT業界 >如何使用api.ai建立自己的AI助手

如何使用api.ai建立自己的AI助手

Jennifer Aniston
Jennifer Aniston原創
2025-02-17 09:16:08184瀏覽

How to Build Your Own AI Assistant Using Api.ai

想深入了解人工智能?觀看我們的視頻教程《微軟認知服務和文本分析 API:在您的機器人中實現 AI 情感分析》。

How to Build Your Own AI Assistant Using Api.ai 智能助理的世界日新月異——Siri、Cortana、Alexa、Ok Google、Facebook M、Bixby——所有科技巨頭都有自己的智能助理。然而,許多開發者並沒有意識到,構建自己的 AI 助理其實非常簡單!您可以根據自己的需求、物聯網設備和自定義 API 進行定制,可能性無限。

注意:本文於 2017 年更新,以反映 Api.ai 的最新變化。

早些時候,我編寫了一篇關於 2016 年構建人工智能的五種簡單方法的指南,其中介紹了一些構建 AI 助理的簡單選項。在本文中,我想重點介紹一項特定服務——Api.ai,它使構建功能齊全的 AI 助理變得異常簡單,初始設置也非常少。

關鍵要點

  • Api.ai(現為 Google Cloud 的一部分)使開發者能夠使用自然語言處理和語音到文本功能構建 AI 助理。
  • Api.ai 的入門非常簡單——只需使用 Google 帳戶註冊,同意條款並創建您的第一個代理即可。
  • 通過在 Api.ai 中啟用“閒聊”功能,自定義您的 AI 助理,使您的機器人聽起來更人性化、更具吸引力。
  • 使用 JavaScript 和 HTML5 將您的 Web 界面連接到 Api.ai,從而實現文本輸入和語音命令。
  • Api.ai 提供詳細的 JSON 響應和調試工具,以幫助改進和排除 AI 助理響應的故障。
  • 對於託管,可以考慮使用 Glitch.com 等服務進行免費的啟用 HTTPS 的 Web 託管,確保與 Api.ai 的安全通信。

使用 Api.ai 構建 AI 助理

這篇文章是一系列文章中的一篇,旨在幫助您使用 Api.ai 運行一個簡單的個人助理:

  1. 如何使用 Api.ai 構建您自己的 AI 助理(這篇!)
  2. 使用意圖和上下文自定義您的 Api.ai 助理
  3. 使用實體增強您的 Api.ai 助理
  4. 如何將您的 Api.ai 助理連接到物聯網

什麼是 Api.ai?

Api.ai 是一項服務,允許開發者構建語音到文本、自然語言處理、人工智能係統,您可以使用自己的自定義功能對其進行訓練。他們擁有一系列現有的知識庫,稱為“領域”,Api.ai 構建的系統可以自動理解這些知識庫——這正是我們將在本文中關注的重點。領域提供了完整的百科全書知識、語言翻譯、天氣等知識庫。在以後的文章中,我將介紹 Api.ai 的一些更高級的方面,這些方面允許您進一步個性化您的助理。

Api.ai 入門

首先,我們將前往 Api.ai 網站,然後點擊右上角的“免費開始”按鈕或“免費註冊”按鈕。

然後我們將進入一個相當簡單的註冊表單:輸入您的姓名、電子郵件和密碼,然後點擊“註冊”。對於那些想要避免另一組登錄憑據的用戶,您也可以使用右側的按鈕使用您的 GitHub 或 Google 帳戶註冊。

由於 Api.ai 被 Google 收購,它已遷移到僅使用 Google 帳戶登錄。因此,如果您是 Api.ai 的新手,則需要使用您的 Google 帳戶登錄:How to Build Your Own AI Assistant Using Api.ai

在接下來的屏幕中點擊“允許”,授予 Api.ai 訪問您 Google 帳戶的權限:

How to Build Your Own AI Assistant Using Api.ai 您還需要閱讀並同意他們的服務條款:

How to Build Your Own AI Assistant Using Api.ai 註冊後,您將直接進入 Api.ai 界面,您可以在其中創建您的虛擬 AI 助理。您創建並教授特定技能的每個助理在 Api.ai 中都稱為“代理”。因此,首先,您可以點擊左上角的“創建代理”按鈕來創建您的第一個代理:

How to Build Your Own AI Assistant Using Api.ai 您可能需要再次授權 Api.ai 以獲得 Google 帳戶的其他權限。這是正常的,沒問題!點擊“授權”繼續:

How to Build Your Own AI Assistant Using Api.ai 然後允許:

How to Build Your Own AI Assistant Using Api.ai 在下一個屏幕上,輸入您的代理的詳細信息,包括:

  • 名稱:這只是為了方便您在 api.ai 界面中區分代理。您可以隨意命名代理——可以是人的名字(我選擇 Barry)或代表他們正在幫助完成的任務的名稱(例如 light-controller)。
  • 說明:人類可讀的描述,以便您可以記住代理負責什麼。這是可選的,如果您的代理名稱不言自明,則可能不需要。
  • 語言:代理使用的語言。 一旦您選擇語言,就不能更改它——因此請謹慎選擇!在本教程中,選擇英語,因為英語可以訪問大多數 Api.ai 領域。您可以在 Api.ai 文檔的語言表中查看每種語言可用的領域。
  • 時區:正如您所料,這是您代理的時區。它很可能已經檢測到您當前的時區。

它還會自動為您的代理設置一個 Google Cloud Platform 項目,因此您無需在這方面做任何事情;所有操作都是自動化的!不過,了解這一點很重要,因此,如果您進行大量測試並創建許多代理,請知道正在創建許多 Google Cloud Platform 項目,您可能需要在某一天清理這些項目。

輸入代理設置後,選擇代理名稱旁邊的“保存”以保存所有內容:

How to Build Your Own AI Assistant Using Api.ai 測試控制台

創建代理後,您可以使用右側的測試控制台對其進行測試。您可以在頂部輸入查詢,它會將這些查詢發送到您的代理,向您顯示在聽到這些語句後將返回的內容。輸入一個問題,例如“你好嗎?”,然後查看它返回的內容。您的結果應該顯示在其下方:

How to Build Your Own AI Assistant Using Api.ai 如果您向下滾動結果的右側,您將看到 Api.ai 如何解釋您的請求的更多詳細信息(如上面的屏幕截圖所示)。在其下方,有一個名為“顯示 JSON”的按鈕。點擊它以查看 API 將如何將此類響應返回到您的應用程序中。

Api.ai 將打開 JSON 查看器並向您顯示一個類似於此的 JSON 響應:

<code class="language-json">{
  "id": "21345678",
  "timestamp": "2017-05-12T08:04:49.031Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "How are you?",
    "action": "input.unknown",
    "actionIncomplete": false,
    "parameters": {},
    "contexts": [],
    "metadata": {
      "intentId": "6320071",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Default Fallback Intent"
    },
    "fulfillment": {
      "speech": "Sorry, can you say that again?",
      "messages": [
        {
          "type": 0,
          "speech": "Sorry, could you say that again?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "243c"
}</code>

正如您所看到的……您的代理不知道如何回應!目前,它並不是真正意義上的“智能”人工智能:它仍然需要添加智能部分。 action 字段中的 input.unknown 值告訴您它不確定如何繼續。上面,它返回一條消息“對不起,你能再說一遍嗎?”,這是它的默認回退之一。它不是告訴人類它不明白,而是反复要求他們再說一遍……這不是理想的,我更希望將其更改為更清楚地表明機器人何時不明白的內容。 如果您也對這類事情很挑剔,並且想要更改它在此處所說的內容,您可以在“意圖”頁面上找到它,方法是點擊那裡的“默認回退意圖”項目。

對於那些一段時間前使用過 Api.ai(或看到它運行)的人來說,您可能實際上期望它開箱即用時提供更多功能。以前,它能夠默認回答諸如“史蒂夫·喬布斯是誰?”之類的查詢。現在不再是這樣了!您必須添加與第三方 API 的自定義集成才能採取行動和獲取信息。 Api.ai 提供句子解析和解釋方面的內容。

添加閒聊

您可以添加一個默認功能,這會讓您的機器人略微顯示出一些智能——“閒聊”功能。這提供了一系列對常見問題的答案……包括上面的“你好嗎?”。但這並非默認啟用。要啟用它,請轉到左側的“閒聊”菜單項,然後點擊“啟用”:

How to Build Your Own AI Assistant Using Api.ai 啟用後,如果您向下滾動,您可以看到一系列常見閒聊短語的類別。找到“問候/告別”部分並點擊它以展開它。為“你好嗎?”問題添加一些不同的回复,然後點擊右上角的“保存”。添加短語後,您會看到“問候/告別”部分旁邊的百分比數字增加,以顯示您自定義了多少聊天機器人。

How to Build Your Own AI Assistant Using Api.ai 然後,如果您轉到測試控制台並再次詢問它“你好嗎?”,它現在應該使用您輸入的回復之一進行回答!

How to Build Your Own AI Assistant Using Api.ai 如果它沒有正確響應,請檢查您是否確實在嘗試之前點擊了“保存”!它不會自動保存。

理想情況下,您需要盡可能自定義您的閒聊回复:這將使您的 Api.ai 機器人擁有更獨特的個性。您可以選擇其回复的語氣和結構。它是一個討厭人類與之交談的脾氣暴躁的聊天機器人嗎?它是一個痴迷於貓的聊天機器人嗎?或者是一個以青少年互聯網/短信風格回复的聊天機器人?您可以決定!

現在您至少有一些閒聊元素正在運行,您的代理現在已準備好讓您將其集成到您自己的 Web 應用程序界面中。為此,您需要獲取 API 密鑰才能遠程訪問您的代理。

查找您的 Api.ai API 密鑰

您需要的 API 密鑰位於代理的設置頁面上。要找到它,請點擊代理名稱旁邊的齒輪圖標。在出現的頁面上,將“客戶端訪問令牌”複製並粘貼到安全的地方。這就是我們需要用來向 Api.ai 服務發出查詢的內容:

How to Build Your Own AI Assistant Using Api.ai 代碼

如果您想查看工作代碼並試用它,它可以在 GitHub 上找到。隨意使用它並擴展這個想法以創建您自己的 AI 個人助理。

如果您想試用它,我在這裡運行 Barry。盡情享受吧!

使用 JavaScript 連接到 Api.ai

您目前有一個在 Api.ai 雲中某個地方運行的工作個人助理。您現在需要一種方法來從您自己的界面與您的個人助理對話。 Api.ai 擁有一系列與 Android、iOS、Web 應用程序、Unity、Cordova、C 等配合使用的平台 SDK。您甚至可以將其集成到 Slack 機器人或 Facebook Messenger 機器人中!在此示例中,您將使用 HTML 和 JavaScript 來創建一個簡單的個人助理 Web 應用程序。我的演示基於 Api.ai 的 HTML JS gist 中顯示的概念。

您的應用程序將執行以下操作:

  • 在輸入字段中接受書面命令,當您按下 Enter 鍵時提交該命令。
  • 或使用 HTML5 語音識別 API(這僅適用於 Google Chrome 25 及更高版本),如果用戶點擊“說話”,他們可以說出他們的命令並將其自動寫入輸入字段。
  • 收到命令後,您可以使用 jQuery 向 Api.ai 提交 AJAX POST 請求。 Api.ai 將其知識作為 JSON 對象返回,如您在上面的測試控制台中所見。
  • 您將使用 JavaScript 讀取該 JSON 文件並在您的 Web 應用程序上顯示結果。
  • 如果可用,您的 Web 應用程序還將使用 Web 語音 API(可在 Google Chrome 33 及更高版本中使用)以語音方式回复您。

整個 Web 應用程序可以在上面的鏈接中在 GitHub 上找到。隨意參考它以了解我如何設置樣式和構建 HTML。我不會在這篇文章中解釋其構建方式的每個部分,主要關注 Api.ai SDK 方面的內容。我還將簡要指出並解釋哪些部分使用 HTML5 語音識別 API 和 Web 語音 API。

您的 JavaScript 包含以下變量:

<code class="language-json">{
  "id": "21345678",
  "timestamp": "2017-05-12T08:04:49.031Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "How are you?",
    "action": "input.unknown",
    "actionIncomplete": false,
    "parameters": {},
    "contexts": [],
    "metadata": {
      "intentId": "6320071",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Default Fallback Intent"
    },
    "fulfillment": {
      "speech": "Sorry, can you say that again?",
      "messages": [
        {
          "type": 0,
          "speech": "Sorry, could you say that again?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "243c"
}</code>

以下是每個變量的用途:

  • accessToken。這是您從 Api.ai 界面複製的 API 密鑰。這些密鑰允許您訪問 SDK 並說明您正在訪問哪個代理。我想訪問 Barry,我的個人代理。
  • baseUrl。這是所有對 Api.ai SDK 的調用的基本 URL。如果 SDK 推出新版本,您可以在此處更新它。
  • $speechInput。這存儲您的 <input> 元素,以便您可以在 JavaScript 中訪問它。
  • $recBtn。這存儲您的 <button></button> 元素,當用戶想要點擊並向 Web 應用程序說話時(或如果正在收聽,則暫停收聽)將使用它。
  • recognition。您將 webkitSpeechRecognition() 功能存儲在此變量中。這是用於 HTML5 語音識別 API 的。
  • messageRecording、messageCouldntHear、messageInternalError 和 messageSorry。這些是當應用程序正在錄製用戶語音、無法聽到用戶語音、發生內部錯誤以及代理不理解時顯示的消息。您將它們存儲為變量,以便您可以輕鬆地在腳本頂部更改它們,還可以指定您不希望應用程序稍後大聲朗讀哪些變量。

在這些代碼行中,查找用戶在輸入字段中按下 Enter 鍵的時間。發生這種情況時,運行 send() 函數以將數據發送到 Api.ai:

<code class="language-json">{
  "id": "21345678",
  "timestamp": "2017-05-12T08:04:49.031Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "How are you?",
    "action": "input.unknown",
    "actionIncomplete": false,
    "parameters": {},
    "contexts": [],
    "metadata": {
      "intentId": "6320071",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Default Fallback Intent"
    },
    "fulfillment": {
      "speech": "Sorry, can you say that again?",
      "messages": [
        {
          "type": 0,
          "speech": "Sorry, could you say that again?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "243c"
}</code>

接下來,觀察用戶是否點擊了錄製按鈕以要求應用程序收聽他們(或者如果正在收聽,則暫停收聽)。如果他們點擊它,則運行 switchRecognition() 函數以在錄製和不錄製之間切換:

<code class="language-javascript">var accessToken = "YOURACCESSTOKEN",
    baseUrl = "https://api.api.ai/v1/",
    $speechInput,
    $recBtn,
    recognition,
    messageRecording = "正在录制...",
    messageCouldntHear = "我没有听清,你能再说一遍吗?",
    messageInternalError = "哦,不,发生了内部服务器错误",
    messageSorry = "对不起,我还没有答案。";</code>

最後,對於您的初始 jQuery 設置,您設置了一個按鈕,該按鈕將位於屏幕的右下方,用於顯示和隱藏 JSON 響應。這只是為了保持簡潔:大多數情況下,您不希望看到傳入的 JSON 數據,但有時如果發生意外情況,您可以點擊此按鈕以切換 JSON 是否可見:

<code class="language-javascript">$speechInput.keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    send();
  }
});</code>

使用 HTML5 語音識別 API

如上所述,您將使用 HTML5 語音識別 API 來收聽用戶並轉錄他們所說的話。目前這僅適用於 Google Chrome。

我們的 startRecognition() 函數如下所示:

<code class="language-javascript">$recBtn.on("click", function(event) {
  switchRecognition();
});</code>

這就是運行 HTML5 語音識別 API 的方式。它全部使用 webkitSpeechRecognition() 中的函數。以下是關於正在發生的事情的一些提示:

  • recognition.onstart。當從用戶的麥克風開始錄製時運行。您使用名為 respond() 的函數來顯示您的消息,告訴用戶您正在收聽他們。我很快將更詳細地介紹 respond() 函數。 updateRec() 將錄製按鈕的文本從“停止”切換到“說話”。
  • recognition.onresult。當您從語音識別獲得結果時運行。您解析結果並將文本字段設置為使用該結果(此函數只是將文本添加到輸入字段,然後運行您的 send() 函數)。
  • recognition.onend。當語音識別結束時運行。您在 recognition.onresult 中將其設置為 null 以防止在您獲得成功結果時運行它。這樣,如果 recognition.onend 運行,您就知道語音識別 API 沒有理解用戶。如果函數確實運行,您會回復用戶以告訴他們您沒有正確聽到他們。
  • recognition.lang。設置您要查找的語言。在演示的情況下,它正在查找美國英語。
  • recognition.start()。啟動整個過程!

您的 stopRecognition() 函數要簡單得多。它停止您的識別並將其設置為 null。然後,它更新按鈕以顯示您不再錄製:

<code class="language-json">{
  "id": "21345678",
  "timestamp": "2017-05-12T08:04:49.031Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "How are you?",
    "action": "input.unknown",
    "actionIncomplete": false,
    "parameters": {},
    "contexts": [],
    "metadata": {
      "intentId": "6320071",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Default Fallback Intent"
    },
    "fulfillment": {
      "speech": "Sorry, can you say that again?",
      "messages": [
        {
          "type": 0,
          "speech": "Sorry, could you say that again?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "243c"
}</code>

switchRecognition() 通過檢查 recognition 變量來切換您是啟動還是停止識別。這允許您的按鈕切換識別功能的開啟和關閉:

<code class="language-javascript">var accessToken = "YOURACCESSTOKEN",
    baseUrl = "https://api.api.ai/v1/",
    $speechInput,
    $recBtn,
    recognition,
    messageRecording = "正在录制...",
    messageCouldntHear = "我没有听清,你能再说一遍吗?",
    messageInternalError = "哦,不,发生了内部服务器错误",
    messageSorry = "对不起,我还没有答案。";</code>

與 Api.ai 通信

要將您的查詢發送到 Api.ai,您可以使用 send() 函數,該函數如下所示:

<code class="language-javascript">$speechInput.keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    send();
  }
});</code>

這是使用 jQuery 對 https://www.php.cn/link/dfc0a2d63b0d7a1ce1cd07ffe3a3aea7 的典型 AJAX POST 請求。您確保向其發送 JSON 數據並期望從中獲得 JSON 數據。您還需要將兩個標頭——Authorization 和 ocp-apim-subscription-key——設置為 Api.ai 的 API 密鑰。您以 {q: text, lang: "en"} 的格式發送數據到 Api.ai 並等待響應。

收到響應後,您將運行 prepareResponse()。在此函數中,您將格式化要放入 Web 應用程序調試部分的 JSON 字符串,並取出 Api.ai 響應的 result.speech 部分,該部分為您提供助理的文本響應。您通過 respond() 和 debugRespond() 顯示每條消息:

<code class="language-javascript">$recBtn.on("click", function(event) {
  switchRecognition();
});</code>

您的 debugRespond() 函數將文本放入您的 JSON 響應字段中:

<code class="language-javascript">$(".debug__btn").on("click", function() {
  $(this).next().toggleClass("is-active");
  return false;
});</code>

您的 respond() 函數還有更多步驟:

<code class="language-javascript">function startRecognition() {
  recognition = new webkitSpeechRecognition();

  recognition.onstart = function(event) {
    respond(messageRecording);
    updateRec();
  };
  recognition.onresult = function(event) {
    recognition.onend = null;

    var text = "";
    for (var i = event.resultIndex; i < event.results.length; ++i) {
      text += event.results[i][0].transcript;
    }
    setInput(text);
    stopRecognition();
  };
  recognition.onend = function() {
    respond(messageCouldntHear);
    stopRecognition();
  };
  recognition.lang = "en-US";
  recognition.start();
}</code>

首先,您檢查響應值是否為空。如果是,則將其設置為表示它不確定該問題的答案,因為 Api.ai 沒有向您返回有效的響應:

<code class="language-json">{
  "id": "21345678",
  "timestamp": "2017-05-12T08:04:49.031Z",
  "lang": "en",
  "result": {
    "source": "agent",
    "resolvedQuery": "How are you?",
    "action": "input.unknown",
    "actionIncomplete": false,
    "parameters": {},
    "contexts": [],
    "metadata": {
      "intentId": "6320071",
      "webhookUsed": "false",
      "webhookForSlotFillingUsed": "false",
      "intentName": "Default Fallback Intent"
    },
    "fulfillment": {
      "speech": "Sorry, can you say that again?",
      "messages": [
        {
          "type": 0,
          "speech": "Sorry, could you say that again?"
        }
      ]
    },
    "score": 1
  },
  "status": {
    "code": 200,
    "errorType": "success"
  },
  "sessionId": "243c"
}</code>

如果您確實有要輸出的消息並且它不是正在錄製的消息,那麼您將使用 Web 語音 API 使用 SpeechSynthesisUtterance 對像大聲朗讀該消息。我發現如果不設置 voiceURI 和 lang,瀏覽器的默認語音是德語!這使得它的語音很難理解,直到我更改它為止。要實際說出消息,您使用 window.speechSynthesis.speak(msg) 函數:

<code class="language-javascript">var accessToken = "YOURACCESSTOKEN",
    baseUrl = "https://api.api.ai/v1/",
    $speechInput,
    $recBtn,
    recognition,
    messageRecording = "正在录制...",
    messageCouldntHear = "我没有听清,你能再说一遍吗?",
    messageInternalError = "哦,不,发生了内部服务器错误",
    messageSorry = "对不起,我还没有答案。";</code>

注意:重要的是不要讓它說出“正在錄製……”文本:如果您這樣做,麥克風將拾取該語音並將其添加到錄製的查詢中。

最後,顯示您的響應框並將該文本添加到其中,以便用戶也可以閱讀它:

<code class="language-javascript">$speechInput.keypress(function(event) {
  if (event.which == 13) {
    event.preventDefault();
    send();
  }
});</code>

託管您的 Web 界面

為了獲得最佳結果,您可能需要將其託管在啟用了 HTTPS 的 Web 服務器上。您對 Api.ai 的請求通過 HTTPS 進行,因此最好也在 HTTPS 上託管您的 Web 界面。如果您只想將其用作原型並且沒有現成的 HTTPS 安全 Web 服務器,請嘗試使用 Glitch.com!這是一項新服務,可以託管包含前端和後端(Node.js)代碼的代碼片段。

例如,我的 Barry 也託管在 https://www.php.cn/link/e35284b6966864480f02bc12997b8b49 Glitch 託管是完全免費的!這是一項很棒的服務,我強烈建議您嘗試一下。

如果您想將此項目做得更大,請考慮使用 Let’s Encrypt 獲取免費的 SSL/TLS 證書,或考慮從您的 Web 主機購買證書。

實際操作

如果您使用 GitHub 存儲庫中的我的樣式運行 Web 應用程序,它看起來像這樣:

How to Build Your Own AI Assistant Using Api.ai 如果您點擊“說話”並說“你好嗎?”來向它提問,它最初會顯示您正在錄製:

How to Build Your Own AI Assistant Using Api.ai (當您點擊該按鈕時,您可能需要允許 Chrome 訪問您的麥克風。顯然,除非您將頁面作為 HTTPS 提供服務,否則每次都會發生這種情況。)

然後它會像這樣以視覺方式(也會大聲朗讀,這在屏幕截圖中很難顯示)進行響應:

How to Build Your Own AI Assistant Using Api.ai 您還可以點擊右下角的按鈕查看 Api.ai 給您的 JSON 響應,以防您想調試結果:

How to Build Your Own AI Assistant Using Api.ai 如果您似乎主要收到“我沒有聽清,你能再說一遍嗎?”消息,請檢查瀏覽器中的麥克風權限。如果您在本地加載頁面(例如,如果您的地址欄以 file:/// 開頭),Chrome 似乎根本不提供對麥克風的任何訪問權限,因此無論如何您最終都會遇到此錯誤!您需要將其託管在某個地方。 (嘗試使用上面提到的 Glitch.com。)

How to Build Your Own AI Assistant Using Api.ai 就我個人而言,我不喜歡閒聊中的一些默認短語,例如這個:

How to Build Your Own AI Assistant Using Api.ai 我在前面看到的那些設置中自定義了許多這些短語。例如,我在列表中發現這個閒聊語句非常奇怪,因此決定像這樣對其進行自定義:

How to Build Your Own AI Assistant Using Api.ai 所以,開始創建您自己的聊天機器人吧!讓它獨一無二並享受樂趣!

遇到問題?

我發現,有時,如果 Web 語音 API 嘗試說出太長的內容,Chrome 的語音會停止工作。如果這對您來說也是如此,請關閉選項卡並打開一個新的選項卡以再次嘗試。

結論

我相信您會看到,Api.ai 是一種真正簡單的構建聊天機器人風格的 AI 個人助理的方法。

想繼續開發您的 Api.ai 機器人嗎?還可以做更多的事情:這是我在 SitePoint 上撰寫的整個系列!

如果您使用 Api.ai 構建了自己的個人助理,我很想听聽您的想法!您也將其命名為 Barry 嗎?您為它設置了哪些問題?請在下面的評論中告訴我,或在 Twitter 上通過 @thatpatrickguy 與我聯繫。

使用情感工具為您的 AI 注入人性化元素。查看我們關於微軟認知服務和文本分析 API 的視頻教程。

使用 API.AI 構建您自己的 AI 助理的常見問題解答 (FAQ)

使用 API.AI 構建 AI 助理的先決條件是什麼?

要使用 API.AI 構建 AI 助理,您需要具備對編程概念和語言(特別是 JavaScript)的基本了解。您還需要熟悉 Google Cloud 服務,因為 API.AI 是 Google Cloud 的一部分。了解 AI 和機器學習概念也很有益。但是,API.AI 的設計易於使用,不需要深入的 AI 知識。

如何將我的 AI 助理與其他平台集成?

API.AI 為許多流行平台(如 Slack、Facebook Messenger 和 Skype)提供集成支持。您可以使用 API.AI SDK 和 API 將您的 AI 助理與這些平台集成。此過程涉及設置 Webhook 並配置 API.AI 控制台中的平台設置。

我可以自定義 AI 助理的行為嗎?

是的,API.AI 允許您自定義 AI 助理的行為。您可以定義自定義意圖和實體,這些意圖和實體決定您的 AI 助理如何響應用戶輸入。您還可以使用 fulfillment 功能編寫在觸發特定意圖時執行的自定義代碼。

如何提高 AI 助理的準確性?

AI 助理的準確性取決於訓練數據的質量。您可以通過為每個意圖提供各種示例短語來提高準確性。 API.AI 還提供了一個名為“機器學習模式”的功能,該功能會根據用戶交互自動改進模型。

是否可以使用 API.AI 構建多語言 AI 助理?

是的,API.AI 支持多種語言。您可以通過使用不同的語言定義意圖和實體來構建多語言 AI 助理。 API.AI 會自動檢測用戶輸入的語言。

如何在開發過程中測試我的 AI 助理?

API.AI 提供了一個內置的測試控制台,您可以在其中與您的 AI 助理進行交互。您可以輸入用戶短語並查看您的 AI 助理如何響應。這使您可以在開發過程中測試和改進您的 AI 助理。

使用 API.AI 的成本是多少?

API.AI 是 Google Cloud 的一部分,其定價基於使用情況。有一個免費層,包括每分鐘和每月一定數量的請求。超過免費層後,您將根據請求數量付費。

我可以使用 API.AI 為我的移動應用程序構建 AI 助理嗎?

是的,API.AI 為 Android 和 iOS 提供 SDK。您可以使用這些 SDK 將您的 AI 助理與您的移動應用程序集成。

如何使用 API.AI 處理複雜的對話?

API.AI 提供了一個名為“上下文”的功能,允許您處理複雜的對話。上下文允許您控制對話流程並管理意圖之間的依賴關係。

我可以使用 API.AI 分析用戶與我的 AI 助理的交互嗎?

是的,API.AI 提供分析功能,允許您分析用戶交互。您可以查看使用情況統計數據、意圖的性能和用戶滿意度評分。這些信息可以幫助您隨著時間的推移改進您的 AI 助理。

以上是如何使用api.ai建立自己的AI助手的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:速度心理下一篇:速度心理