小编sid*_*491的帖子

如何向标记器添加新的特殊标记?

我想构建一个多类分类模型,将会话数据作为 BERT 模型的输入(使用 bert-base-uncased)。

提问:我想问一个问题。
答:当然可以,问吧。
询问:今天天气怎么样?
答:天气很好,阳光明媚。
问题:好的,很高兴知道。
回答:您还想了解其他信息吗?

除此之外,我还有两个输入。

我想知道是否应该在对话中添加特殊标记,以使其对 BERT 模型更有意义,例如:

[CLS]QUERY:我想问一个问题。[EOT]
答案:当然可以,问吧。[EOT]
查询:今天天气怎么样?[EOT]
答案:天气很好,阳光明媚。[EOT]
查询:好的,很高兴知道。[EOT]
解答:您还想了解其他信息吗?[九月]

但我无法添加新的 [EOT] 特殊令牌。
或者我应该为此使用 [SEP] 令牌?

编辑:重现步骤

from transformers import AutoTokenizer, AutoModelForSequenceClassification
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")

print(tokenizer.all_special_tokens) # --> ['[UNK]', '[SEP]', '[PAD]', '[CLS]', '[MASK]']
print(tokenizer.all_special_ids)    # --> [100, 102, 0, 101, 103]

num_added_toks = tokenizer.add_tokens(['[EOT]'])
model.resize_token_embeddings(len(tokenizer))  # --> Embedding(30523, 768)

tokenizer.convert_tokens_to_ids('[EOT]')  # --> 30522

text_to_encode = '''QUERY: I want to ask a question. [EOT]
ANSWER: Sure, ask away. …
Run Code Online (Sandbox Code Playgroud)

bert-language-model huggingface-tokenizers sentencepiece

10
推荐指数
1
解决办法
2万
查看次数

DialogFlow - 从webhook设置allRequiredParamsPresent?

我正在使用云功能来响应webhooks,如文档中所述.在DialogFlow上,我将所有参数都设置为可选,而我想控制动态需要哪些参数.是否可以动态设置allRequiredParamsPresent?其次,我们如何偏置下一个输入/响应以填充某个参数?

用户可以输入日期或日期范围,两者都是不同的参数.需要一个或另一个,但不是两个.

不幸的是,在控制台中,如果我根据需要设置两者,对话框不会结束(这就是我想在结束时覆盖的原因),如果我不需要它们,对话结束时不会出现所有必需的参数.

此外,根据后续问题,代理人要求从Web钩子询问,我想偏向用户的下一个答案来填充特定@sys.any参数,因为它一直填充错误的参数.

chatbot dialogflow-es

6
推荐指数
1
解决办法
214
查看次数

如何在 Lex 中不提示用户的情况下调用另一个意图?

是否可以在不提示用户的情况下从意图 A 的 lambda 函数触发意图 B?
假设用户输入了一些东西并且一个意图-A 被触发,经过一些处理我想触发一些其他的意图,即意图-B。
用户还可以通过特定的话语直接触发 Intent-B。任何帮助表示赞赏。

chatbot amazon-web-services aws-lambda amazon-lex

5
推荐指数
1
解决办法
2995
查看次数

AWS Lambda Java 返回带斜杠的字符串

我在从 Lambda 返回字符串后遇到问题

JSONObject.toString
Run Code Online (Sandbox Code Playgroud)

作为回报,我有

"{\"Key2\":\"Value2\",\"Key1\":\"Value1\"}" 
Run Code Online (Sandbox Code Playgroud)

代替

"{"Key2":"Value2","Key1":"Value1"}"
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何排除这些斜线吗?

java json aws-lambda

5
推荐指数
1
解决办法
2061
查看次数

用于插槽填充的 Webhook

我在对话框流中填充插槽/参数时遇到问题。我无法搜索关于如何使用 webhooks/backend-code 进行参数填充的任何好的文档。

我的用例是,我想提取date但如果用户没有提供 YEAR 那么它应该询问用户“哪一年?”。然后填回去date

我使用$date.partialvalue,因此是给UUUU全年的一部分,但我怎么能提示用户给予一年,这样我可以在参数填充得到完整的日期。

在此处输入图片说明

任何帮助表示赞赏。

python chatbot node.js dialogflow-es

5
推荐指数
1
解决办法
4049
查看次数

AWS API Gateway 的 CORS 问题

我从我的网页向调用 lambda 函数的 AWS API Gateway 发送发布请求。API 网关中启用了 CORS。

错误:

无法加载 api_gatewau_url:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问原始“url”。

该资源有两种方法:

  1. 选项(集成模拟)
  2. POST(集成 Lambda)

如何解决CORS问题?

下面是发送post请求的代码。

$.ajax({
    type: "POST",
    crossDomain: true,
    url: "api_gateway_url",
    data: JSON.stringify({
        "param1": value1,
        "param2": value2
    }),
Run Code Online (Sandbox Code Playgroud)

我还尝试添加带有allow origin true 等的标头,但没有成功。
最奇怪的事情是,相同的配置和请求我正在尝试使用不同的 api 网关,然后它工作正常,没有任何错误。

cors aws-api-gateway

5
推荐指数
2
解决办法
1万
查看次数

哪个是调用函数,Intent Name或Action的更好的做法?

在DialogFlow中,我们可以根据Intent Name或Actions触发函数并执行任务.

我们应该用哪一个来决定?什么是更好的做法?

chatbot dialogflow-es

5
推荐指数
1
解决办法
110
查看次数

AWS Connect和Lex - 无法引用联系人属性

作为参考,这是有问题的流程:

"获取客户输入"(Lex) - >"设置联系人属性" - >"播放提示"

在调用Lex之后,我使用"将文本另存为属性"选项设置了一个联系人属性:

DestinationKey Value ProductType $ .Lex.SessionAttributes.ProductType

然后,在"播放提示"中,我无法引用set属性.我使用"文本到语音(Ad hoc)"并尝试了以下语法:

  • $ .ProductType
  • $ .System.ProductType
  • $ .User.ProductType
  • $ .External.ProductType

有趣的是,如果我在"设置联系人属性"之后添加"检查联系人属性",则它与"用户定义"属性"ProductType"匹配.

我该如何引用该属性?

amazon-web-services aws-lambda amazon-lex amazon-connect

4
推荐指数
1
解决办法
1421
查看次数

在 Amazon Lex 中格式化字符串输出

我正在尝试使用 AWS Lambda 的 C# 版本在列表中打印一系列对象。它链接到我的 AWS RDS 和我的 Lex 机器人。目前,当我使用 LEX 测试控制台测试机器人时,即使我使用 C# 的 \n 换行符,打印的输出也没有格式化为换行符。

示例代码:

        var result = string.Empty;

        result = $"Events for {User}:";
        foreach (var evt in events)
        {
            result += $"\n\n{evt.ID} - {evt.FeedbackType} - {evt.Status} - {evt.OpenedDate.ToString()}";
        }

        return result;
Run Code Online (Sandbox Code Playgroud)

下面是我在 Lex 上得到的输出:

输出

谁能解释一下如何解决这个问题,或者它是否是 LEX 控制台的问题?谢谢!

amazon-lex

4
推荐指数
1
解决办法
1742
查看次数

将参数值从一个意图发送到另一个意图并将其分配给参数

我有两个意图 - serviceQuotegotCar

serviceQuote意图中,用户将输入 3 个参数 - carModelcarPricebuyDate。他将根据参数值收到报价。

gotCar用户可以说i just bought lamborghini
Dialogflow 将获得carModel并启动serviceQuote事件。我想发送这个carModel值并将其分配给serviceQuote参数carModel而不提示用户。

请注意,要问carModel 的问题是serviceQuote意图设计中的第一个,并且所有 3 个参数都标记为 required

我试图调用该事件并随它发送参数值。意图被触发但没有分配参数值,它再次向用户询问汽车型号。

'followupEventInput' : {
    "parameters": {
        "carModel": "aston martin",
    },
    'name' : 'e_serviceQuote',
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?如何实现。
我正在使用DialogFlow v2

编辑:我试图#e_serviceQuote.carModel作为参数值输入,但 Dialogflow 控制台不允许我输入它。

车

chatbot dialogflow-es

4
推荐指数
1
解决办法
6739
查看次数