从AWS Lex调用内部系统(在防火墙之后)

时间:2018-06-22 07:02:17

标签: chatbot aws-lex

我已经创建了一个AWS Lex聊天机器人,现在我必须查询内部JIRA来回答某些问题。我可以在AWS Lex中执行此操作吗?我尝试使用AWS Lambda,但无法与内部系统通信。

或者还有其他允许我执行此操作的聊天机器人引擎,也许就像每个话语将已配置的机器人作为API调用一样。

1 个答案:

答案 0 :(得分:0)

找出一个替代方案。除非我们明确开放端口,否则AWS Lex似乎不允许与内部系统进行交互。我决定使用Microsoft LUIS。这允许从内部系统作为API调用Intent标识。

以下Python代码使我可以从本地系统连接到配置的LUIS服务。

   ########### Python 3.6 #############
import requests

headers = {
    # Request headers
    'Ocp-Apim-Subscription-Key': 'xxxxxxxxxxxxxxx',
}

params ={
    # Query parameter
    'q': 'Can I book a travel ticket from LA to Chicago',
    # Optional request parameters, set to default values
    'timezoneOffset': '0',
    'verbose': 'true',
    'spellCheck': 'false',
    'staging': 'true',
}

try:
    r = requests.get('https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/XXX-XXX-XXX-XXX',headers=headers, params=params)
    print(r.json())

except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))