【问题标题】:How to use dialogflow sdk in typescript?如何在打字稿中使用 dialogflow sdk?
【发布时间】:2018-10-12 08:04:14
【问题描述】:

我正在创建一个 angular 6 的聊天机器人应用程序,并且我想使用 dialogflow sdk。因为 sdk 仅适用于 javascript,所以我还添加了 dialogflow 的类型。

package.json:

dependencies: {
    [...]
    "@types/dialogflow": "0.6.3",
    "dialogflow": "0.6.0
}

我尝试了许多不同的导入:

import { SessionsClient } from 'dialogflow';
import { SessionsClient, v2 } from 'dialogflow';
import * as dialogflow from 'dialogflow';
import 'dialogflow'

但我总是收到错误

MODULE_NOT_FOUND

当我尝试使用它时

this.dialogflowSessionsClient = new SessionsClient();
this.dialogflowSessionsClient = new v2.SessionsClient();
this.dialogflowSessionsClient = new dialogflow.SessionsClient();

IDE 可以解析引用。那么,我做错了什么?

更新

我也在一个新的 Angular 项目中尝试过,现在我收到了更好的错误消息。不幸的是,它也对我没有帮助。

./node_modules/dialogflow/src/v2/agents_client.js

找不到模块:错误:无法解析“/Users/[my-project-path]/node_modules/dialogflow/src/v2”中的“./agents_client_config”

【问题讨论】:

    标签: typescript dialogflow-es typescript-typings


    【解决方案1】:

    我也在做同样的事情,这个link中有一个前端JS客户端库。我所要做的就是使用 npm 安装它,然后将它导入到我的 Ionic 项目中,但是几乎没有维护,所以老实说,我建议使用更新的 HttpClient library 或其他一些好的 REST 库并使用 REST 调用v2 参考文档。

    Google 在 http protobuf 中描述了他们如何将 REST 调用映射到他们的 gRPC 协议,他们称之为“转码”。

    我知道这比使用客户端库更困难,但老实说,它比使用支持最少的库更值得(至少在有更好维护的客户端库之前。)

    【讨论】:

    • 感谢您的回答,@Jonathan。我正在使用您建议的库。它工作得很好,但我需要 V2 功能,比如发送自定义数据。我也试着为自己写。然后我得到 CORS 错误。 (stackoverflow.com/questions/52838292/…) 你也收到了吗?
    • 刚刚发现我们不应该直接从前端调用 DF,这也解释了 CORS 问题。 productforums.google.com/forum/#!topic/dialogflow/HdQgHv17CYM 这适用于 V1 和 V2,我现在正在构建一个后端来重定向客户端请求,因为显然我们应该使用服务器到服务器身份验证,并且 OAuth 样式称为“双腿”身份验证,请参阅此链接:auth0.com/docs/api-auth/which-oauth-flow-to-use 简而言之,我的流程将是:用户 -> 我的后端 -> DF -> 我的后端 -> 用户您可以在 jbdoster@gmail.com 给我发电子邮件
    • 我很生气使用另一个后端,因为它增加了延迟并且似乎没有必要。但我现在也相信没有别的办法了。感谢您的帮助,@乔纳森!您想在答案中添加这个额外的后端提示吗?
    • 好吧,我最终使用了 Firebase 函数,并发现这就是 Dialogflow 内联编辑器已经在使用的。现在一切都说得通了。所以我们写出 firebase 函数然后导出它们,客户端(手机和浏览器)将使用 firebase 函数告诉我们使用的 URL 调用这些 firebase 函数,因此 firebase 函数处理来自 AND 响应客户端的请求。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2017-12-29
    • 2017-04-15
    • 2020-01-15
    • 1970-01-01
    • 2022-08-04
    相关资源
    最近更新 更多