我正在玩Alexa技能套件(用于Amazon Echo),并希望创建一种将意图发送到AWS Lambda函数的技能,该函数只会向我发送电子邮件.
示例话语将是这样的:
MemoIntent take a memo {myMemo}
MemoIntent to take a memo {myMemo}
MemoIntent send a memo {myMemo}
Run Code Online (Sandbox Code Playgroud)
这样我就可以说"Alexa,请我的秘书拿一份备忘录,提醒我今天回家的路上去商店"然后会收到我的Lambda函数的电子邮件说:"提醒我去我今天回家的路上."
这个myMemo插槽是自由形式的 - 此时只需要一两句话,但是我没有在文档中找到很多关于如何为这样的东西编写模式的帮助.我目前最好的猜测是:
错误:您的请求出现问题:未知的广告位名称"{myMemo}".发生在样本'MemoIntent中,在第1行上记下备忘录{myMemo}'.
我正在使用文档不鼓励的AMAZON.LITERAL插槽类型,但它也没有提供任何关于如何进行此操作的建议.而且,就像我提到的那样,它失败了.
这是失败的架构:
{
"intents": [
{
"intent": "MemoIntent",
"slots": [
{
"name": "myMemo",
"type": "AMAZON.LITERAL"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud) 我已将我的亚马逊回声设备与我帐户相关的亚马逊门户集成.我能够使用Alexa Skills Kit创建自己的自定义问题,并使用AWS Lambda函数处理以生成响应.
我的问题是:是否有可能以编程方式"推送"消息到回显设备?例如,我希望它能够在不必问问题的情况下发言.我希望它能在特定时刻做点什么.
如果有可能,请您分享任何示例代码来实现这一目标吗?
在亚马逊alexa技能请求中有一个userId,我试图了解这是什么,如果有一些参考,因为我想链接和Amazon Echo用户帐户与我自己的应用程序中的帐户,并这样做我必须有某种静态userId才能使用.
示例请求:
{
"version": "1.0",
"session": {
"new": false,
"application": {
"applicationId": "amzn1.echo-sdk-ams.app.[unique-value-here]"
},
"sessionId": "session1234",
"attributes": {},
"user": {
"userId": null //IS THERE A DETAILED REFERENCE OF THIS SOMEWHERE?
}
},
"request": {
"type": "IntentRequest",
"requestId": "request5678",
"intent": {
"name": "MyColorIsIntent",
"slots": {
"Color": {
"name": "Color",
"value": "blue"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud) amazon userid amazon-web-services alexa-skill alexa-skills-kit
我基于Alexa Skills Kit中提供的示例之一创建了我的Alexa Skill作为AWS Lambda Node.js应用程序.我按照所有说明操作:
当我这样做时,她回答说"与所请求的应用程序进行通信时出现问题." 在Echo应用程序中它说:
意外通信问题HelloWorld请求标识符:amzn1.echo-api.request.e2d17280-592a-474f-a6b1-d1a9d8ff816d与请求的应用程序通信时出现问题
我可以从我的AWS Lambda函数列表中看到没有请求到达服务.我重新启动了Echo.我给了它一个小时,以防它需要时间在某处传播,但它仍然给出相同的响应.
所以这是一个非常模糊的死胡同.有没有人碰到这个?任何想法尝试什么?
我正在为 Postgresql 8.4 构建一个定制的 ispell 字典配置,并且在正确解析带有撇号的单词时遇到一些问题。Postgresql 中包含的 ispell 字典包含一个 .affix 文件,其中包含一个“M”SFX 规则,该规则指定其单词的扩展形式。
这是一个例子,假设dictionary/SM我的字典文件中有:
SELECT to_tsvector('english_ispell', 'dictionary''s dictionaries');
预期输出:
'dictionary':1,2
实际产量:
s':2, 'dictionary':1,3
我做错了什么吗?这是 ts_debug 的输出,显示其解析方式。
SELECT * FROM ts_debug('english_ispell', 'dictionary''s dictionaries');
alias | description | token | dictionaries | dictionary | lexemes
-----------+-----------------+--------------+-------------------------------+----------------+--------------
asciiword | Word, all ASCII | dictionary | {english_ispell,english_stem} | english_ispell | {dictionary}
blank | Space symbols | ' | {} | |
asciiword | Word, all ASCII | s | {english_ispell,english_stem} | english_ispell | …Run Code Online (Sandbox Code Playgroud) [以下回答问题的完整教程.欢迎反馈!]
我正在尝试创建一个AWS Lambda函数,用于Amazon Alexa技能从我的Netatmo weatherstation获取天气信息.基本上,我需要通过http请求连接到Netatmo云.
这是我的代码片段,http请求是为临时访问令牌完成的,请求没问题,但结果正文是正文:{"error":"invalid_request"}.这可能是什么问题?
var clientId = "";
var clientSecret = "";
var userId="a@google.ro";
var pass="";
function getNetatmoData(callback, cardTitle){
var sessionAttributes = {};
var formUserPass = { client_id: clientId,
client_secret: clientSecret,
username: userId,
password: pass,
scope: 'read_station',
grant_type: 'password' };
shouldEndSession = false;
cardTitle = "Welcome";
speechOutput ="";
repromptText ="";
var options = {
host: 'api.netatmo.net',
path: '/oauth2/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'client_id': clientId,
'client_secret': clientSecret,
'username': userId,
'password': pass,
'scope': 'read_station',
'grant_type': 'password'
}
}; …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services aws-lambda alexa-skill alexa-skills-kit
我正在尝试创建一个用Java实现的Amazon Lambda函数,以便与Amazon Echo/Alexa一起使用.我正在使用Eclipse Mars作为IDE.
以下是我LambdaFunctionHandler将收到Alexa请求的内容,如下所示:
public class LambdaFunctionHandler implements RequestHandler<SpeechletRequestEnvelope, SpeechletResponse> {
@Override
public SpeechletResponse handleRequest(SpeechletRequestEnvelope input, Context context) {
context.getLogger().log("Input: " + input);
// TODO: implement your handler
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当尝试使用Alexa的示例JSON输入进行测试时,我在Eclipse中收到错误:
{"errorMessage":"JSON解析期间发生错误","errorType":"java.lang.RuntimeException","stackTrace":[],"cause":{"errorMessage":"Lcom/fasterxml/jackson/databind /ObjectMapper;","errorType":"java.lang.NoClassDefFoundError","stackTrace":[java.lang.Class.getDeclaredFields0(Native Method)","java.lang.Class.privateGetDeclaredFields(Class.java:2583 ) " "java.lang.Class.getDeclaredFields(Class.java:1916)", "com.fasterxml.jackson.databind.introspect.AnnotatedClass._findFields(AnnotatedClass.java:689)"," com.fasterxml.jackson. databind.introspect.AnnotatedClass.resolveFields(AnnotatedClass.java:470) "" com.fasterxml.jackson.databind.introspect.AnnotatedClass.fields(AnnotatedClass.java:282)", "com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._addFields(POJOPropertiesCollector.java:390)", "com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:243)", "com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:197)", "com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:110)","com.fasterxml .jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:15) " "com.fasterxml.jackson.databind.DeserializationConfig.introspect(DeserializationConfig.java:703)"," com.fasterxml.jackson.databind.deser .DeserializerCache._createDeserializer(DeserializerCache.java:330)", "com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:265)", "com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:245)", "com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:143)", "com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:439)","com.fasterxml.jackson .databind.ObjectReader._prefetchRootDeserializer(ObjectReader.java:1588) " "com.fasterxml.jackson.databind.ObjectReader.(ObjectReader.java:185)"," com.fasterxml.jackson.databind.ObjectMapper._newReader(ObjectMapper.的java:558)", "com.fasterxml.jackson.databind.ObjectMapper.reader(ObjectMapper.java:3098)"],"原因":{ "的errorMessage": "com.fasterxml.jackson.databind.ObjectMapper", "ERRORTYPE": "抛出java.lang.ClassNotFoundException", "堆栈跟踪":["java.net.URLClassLoader.findClass(URLClassLoader.java :381)","java.lang.ClassLoader.loadClass(ClassLoader.java:424)","java.lang.ClassLoader.loadClass(ClassLoader.java:357)","java.lang.Class.getDeclaredFields0(Native Method) ) " "java.lang.Class.privateGetDeclaredFields(Class.java:2583)", "java.lang.Class.getDeclaredFields(Class.java:1916)"," …
java amazon-web-services aws-lambda alexa-skill alexa-skills-kit
dispatch_address_postcode
不是强制性的,即使它是空白的,它仍然会运行:
if (!is_null($_POST['personal_info_first_name']) &&
!is_null($_POST['personal_info_surname']) &&
!is_null($_POST['personal_info_email']) &&
!is_null($_POST['personal_info_telephone']) &&
!is_null($_POST['dispatch_address_country']) &&
!is_null($_POST['dispatch_address_first_name']) &&
!is_null($_POST['dispatch_address_surname']) &&
!is_null($_POST['dispatch_address_address']) &&
!is_null($_POST['dispatch_address_town']) &&
!is_null($_POST['dispatch_address_postcode']) &&
!is_null($_POST['dispatch_address_county']) &&
( ($_POST['payment_method'] == "Pay by credit card.") ||
(
($_POST['payment_method'] == "Pay by new credit card.") &&
!is_null($_POST['card_number']) &&
!is_null($_POST['expiration_date']) &&
!is_null($_POST['security_code'])
)
)
)
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
我正在尝试处理一个包含城市名称列表的文件.我的目标是输出音译为标准ASCII的城市名称列表.出于某种原因,我只是遇到了问题.我一直在使用Perl中的iConv和Text :: Unidecode库,两者都让我失望.
以下是我称之为cities.txt的文件中城市名称的示例列表:
Måløv
Magtenbølle
Zvonarëvka
Denver
Zvëzdka
New York
Run Code Online (Sandbox Code Playgroud)
通过此操作iconv返回以下内容:
iconv -fUTF-8 -tASCII//TRANSLIT//IGNORE cities.txt
Mal?v
Magtenb?lle
Zvonarevka
Denver
Zvezdka
New York
Run Code Online (Sandbox Code Playgroud)
这在一些非ascii字符上表现很好,但是失败了,特别是在ø字符上.我的列表有几千个条目 - 虽然我实际上没有在大于一个小样本集上研究结果,但我确信还有其他失败.
我的perl尝试看起来像这样:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Text::Unidecode;
while (<>) {
print unidecode $_;
}
Run Code Online (Sandbox Code Playgroud)
那里的输出看起来像这样:
MAY=lA,v
MagtenbA,lle
ZvonarA<<vka
Denver
ZvA<<zdka
New York
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我使用直接语句,Perl会工作.例如
...
print unidecode("Måløv");
Run Code Online (Sandbox Code Playgroud)
将按照我的预期输出"Malov".
我究竟做错了什么?
例如,假设我想在 ios 应用程序中启动相机来拍照,我可以利用 ASK 和 iphone 麦克风来理解用户语音命令(“启动相机”)来启动相机并触发 ios 中的功能吗?
alexa-skill ×5
aws-lambda ×4
amazon ×2
amazon-echo ×2
ascii ×1
iconv ×1
ios ×1
isnull ×1
ispell ×1
java ×1
javascript ×1
mobile ×1
perl ×1
php ×1
post ×1
postgresql ×1
unicode ×1
userid ×1