首页 >科技周边 >IT业界 >如何使用api.ai建立自己的AI助手

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

Jennifer Aniston
Jennifer Aniston原创
2025-02-17 09:16:08182浏览

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