我正在尝试使用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。
答案 0 :(得分:0)
我通过添加
解决了此问题WSGIApplicationGroup%{GLOBAL
致etc / httpd / conf.d / wsgi.conf
您可以通过创建.ebextensions配置自动化该过程
vim .ebextensions / dialogflow-fix.config
"/etc/httpd/conf.d/wsgi_custom.conf":
mode: "000644"
owner: root
group: root
content: |
WSGIApplicationGroup %{GLOBAL
git添加.ebextensions / .config git commit -m'在这里发消息'
eb部署