- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Wit.ai 创建一个聊天机器人,并试图实现一种更具对话性的交互方式。目前我有几个故事都需要一个位置才能发挥作用,但有些相关。这是我现在如何与我的机器人交互的示例:
What is the weather in Los Angeles, CA?
Bot response
How many people live in Los Angeles, CA?
Bot response
但我希望我的聊天机器人记住我说的是洛杉矶,所以交互看起来像这样:
What is the weather in Los Angeles, CA?
Bot Response
How many people live there?
Bot Response
即使正在执行 2 个不同的故事。目前我能够通过添加一个额外的函数(我使用它的方式与使用合并的方式相同)和一个单例到我的代码来实现这一点,它从实体中提取值并存储它们以供以后根据 session 信息使用,如下所示:
session_info = {}
def _init_store(session_id):
global session_info
print "session info", session_info
if session_id in session_info:
pass
else:
s_info = {}
session_info[session_id] = s_info
def get_stored_info(session_id, key):
global session_info
try:
return session_info[session_id][key]
except:
return None
def add_stored_info(session_id, key, data):
_init_store(session_id)
global session_info
try:
session_info[session_id][key] = data
return True
except:
return False
我通读了所有文档,对他们所说的有些困惑。文档对上下文这样说:
Converse allows you to build conversational app. It allows you to predict what your app should do at any given state in the conversation based on the current context and the user query.
The context is an object you manage to tell Wit.ai about the current state of the conversation. Wit.ai is able to predict the next action your bot should take by comparing — among other things — the context described in your Stories with the one you send to the the /converse endpoint. Wit will never update the context by itself, you have to manage the context object on your side. There is usually one context object per session. In addition to helping Wit.ai predict the next action, the context is used to create dynamic answers in templates.
我读这意味着机智将传递我管理的上下文对象而不对其进行任何更改,这意味着我负责添加和删除 key 。不过我也发现了this其中指出“对话感知实体提取”尚未实现,所以我很困惑这是否可行。
我还发现,当我查看传递到我的每个故事执行函数的 request['context']
的值时,context 的值只是一个空字典,无论之前添加或删除的内容,即使上面说您的上下文从未被机智触及。
这是否有可能通过机智本身来实现,或者是否有机智认可的方法来实现这一点,或者我现在正在做的是我能做的最好的事情吗?如果我不得不猜测它似乎还不受支持,但它似乎是一个基本的聊天机器人功能,而且文档非常模糊,我也可能只是忽略了执行此操作的正确方法。任何帮助将不胜感激。我正在使用 python 以防与任何人相关。
最佳答案
它应该按照您描述的方式工作。是的,Wit 不会更新上下文,所以如果您想保留/记住一些东西以备后用,您将不得不使用客户端操作将其存储在上下文中。在您的示例中,您将实体机智/位置的值存储在上下文键中,比方说 loc
在你的“有多少人住在那里?”故事中,你将有一个客户端操作来检查 context.loc 是否存在,如果不存在,将通过一个分支请求它 a la https://wit.ai/docs/recipes#build-a-slot-based-bot 配方
关于python - 是否有可能让 wit.ai 机器人记住/重用故事中的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049703/
我要在这里做的是遍历Storybook故事,以便可以对它们进行视觉回归测试: const puppeteer = require('puppeteer'); const { toMatchImageS
有人可以帮我解释一下涉及老虎机的 Rasa 故事吗: ## story with email * intent_request_email - utter_request_email * in
我们能够实现与 Instagram Stories 的共享,但无法实现与 Facebook Stories 的共享,如下 these指示 。尽管已安装并更新 Facebook 应用,Android 仍
我在使用 Facebook 开放图表故事时遇到问题。我只想发布一个带有对象标题的故事。我尝试使用开放图形对象调试器,我可以清楚地看到 og:title 已定义,但我发布的提要中没有标题。 我也尝试使用
如何将数据从 .properties 文件动态加载到 jBehave 故事文件?我一直在我的故事文件中使用 $ ,例如: When the stock is traded at price : $ T
我是 jbehave 的新手 我正在尝试通过 junit 执行 jbehave。 jbehave 似乎只从类路径加载故事文件。是否可以将其配置为从用户定义的路径中获取故事文件。 public clas
我们刚刚开始考虑使用 JBehave 进行验收测试,我想知道使用它的人是如何组织故事的编写和故事文件的存储的。目前只是在开发它们,所以我们将故事文件与实现它们的 Java 代码一起存储在资源文件夹中。
我正在尝试按顺序运行 jbehave 故事。 我的集成测试包结构如下所示 src/it/some/package/name/packageA/a.story src/it/some/package/n
我有一个 jBehave 故事如下; Scenario: Setup test GivenStories: common/story_1.story, common/sto
有人可以帮我运行一个 JBehave 故事吗?我在 Eclipse 中有一个 Maven 项目。 故事是: Meta: @author Nikolay Vasilev @bdd-talk: BG JU
我们有一个 Web 开发项目团队,我们决定使用单个存储库及其优缺点。我们将待办事项分成 Jira 故事,每个故事都有几个 FE 和 BE 任务。喜欢: ABC-1 显示猫 1.1. ABC-2 [FE
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在我们公司,我们目前正在尝试建立故事 map (Jeff Patton)的概念。 我有以下问题:- 在具有交叉问题/任务的故事 map 中会发生什么?我们有贯穿整个项目的事件。故事 map 中的这些事
我想获得与远程 GIT 和 SVN 存储库同步的本地 GIT 存储库。 我正在执行的步骤如下: > git push Everything up-to-date > git pull Already
目前我所有的 .stories 文件都保存在 stories 目录中。随着我添加更多组件,它会增长。 相反,我想根据 Storybook 站点上的文档在组件级别添加每个组件的 .stories 文件:
我在网上读到 snapchat 和 instagram 有不同的方法来捕获视频,而不是在 Android 中使用相机 API,这允许它们向捕获的内容添加过滤器/贴纸等。 任何人都可以建议解决这个问题的
在 let returnTrip = Page(story: .ReturnTrip) 中它给了我们错误。我真的不知道为什么1 enum Story { case ReturnTrip (String
我们刚刚开始将Jira(带有Jira Agile插件-Scrum模板)用于我们的问题跟踪程序和敏捷计划。 我对故事和改进之间的差异(或预期的差异)感到困惑。我们所有的“东西”都写成故事。这些故事描述了
我正在为一个网站设计一个数据库,该数据库将至少表示 4 种不同的对象类型(文章、博客文章、照片、故事),每一种都有足够不同的数据要求来保证他们自己的表。我们希望用户能够发表任何这些类型的评论。评论的数
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我是一名优秀的程序员,十分优秀!