AWS Beanstalk上的Dialogflow超时

时间:2018-02-13 23:01:38

标签: python amazon-web-services dialogflow

我正在尝试使用Python SDK集成DialogFlow。代码:

def detect_action_from_phrase(self, phrase):
    """Returns the result of detect intent with texts as inputs.

    Using the same `session_id` between requests allows continuation
    of the conversaion."""

    print("Called intent detection")
    session_client = dialogflow.SessionsClient()

    session = session_client.session_path(self.project_id, self.session_id)

    text_input = dialogflow.types.TextInput(
        text=phrase, language_code=self.language_code)

    query_input = dialogflow.types.QueryInput(text=text_input)

    print("NLP getting resp")
    response = session_client.detect_intent(
        session=session, query_input=query_input)
    print("Received resp")

    intent = response.query_result.intent
    action = response.query_result.action

    print('=' * 20)
    print('Query text: {}'.format(response.query_result.query_text))
    print('Detected intent: {} (confidence: {})\n'.format(
        response.query_result.intent.display_name,
        response.query_result.intent_detection_confidence))
    print("Action: {}\n".format(action))
    print('Fulfillment text: {}\n'.format(
        response.query_result.fulfillment_text))

    return action

我将session_id设置为" 1"。

我有一个帐户凭据JSON文件,环境变量指向该文档,如文档中所述。

一切都在本地工作正常,但是当我在AWS Elastic Beanstalk上使用它时,由于某种原因它有时会工作,而其他时候会完全超时。脚本在打印完成后开始计时" NLP得到resp"。

我不明白这一点。有关为什么会发生这种情况的提示或调试它的好方法?

我正在使用v2 API和SDK。

1 个答案:

答案 0 :(得分:0)

我通过添加

解决了此问题
  

WSGIApplicationGroup%{GLOBAL

致etc / httpd / conf.d / wsgi.conf

您可以通过创建.ebextensions配置自动化该过程

vim .ebextensions / dialogflow-fix.config

将以下内容添加到dialogflow-fix.config

 "/etc/httpd/conf.d/wsgi_custom.conf":
     mode: "000644"
     owner: root
     group: root
     content: |
       WSGIApplicationGroup %{GLOBAL

添加到git

git添加.ebextensions / .config git commit -m'在这里发消息'

部署到beantalk

eb部署