我们已经编写了python代码来与谷歌对话流进行通信。它在我们本地的机器上运行良好,在其中一台构建机器上也运行良好。下面是我们编写的与对话流通信的代码。
def diagflowInteraction(project_id, session_id, texts, language_code):
"""Returns the result of detect intent with texts as inputs.
Using the same `session_id` between requests allows continuation
of the conversation."""
import dialogflow_v2 as dialogflow
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/data/DialogflowConfig.json'
session_client = dialogflow.SessionsClient()
session = session_client.session_path(project_id, session_id)
print('Session path: {}n'.format(session))
text_input = dialogflow.types.TextInput(text=texts, language_code=language_code)
query_input = dialogflow.types.QueryInput(text=text_input)
print(query_input)
response = session_client.detect_intent(session=session, query_input=query_input)
但我们用于生产的一台构建机器出现了以下错误。
google/api_core/timeout.py", line 214, in func_with_timeoutn return func(*args, **kwargs)n File "/home/nodeappuser/.local/lib/python3.5/site-packages/google/api_core/grpc_helpers.py", line 59, in error_remapped_callablen six.raise_from(exceptions.from_grpc_error(exc), exc)n File "<string>", line 2, in raise_fromngoogle.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: '_RSAPrivateKey' object has no attribute 'sign'n","timestamp":"2020-11-16T20:02:16.123Z","type":"err","process_id":0,"app_name":"ChatBotInterface"}
不确定是什么原因导致该机器出现此问题。在互联网上找不到太多与这个问题有关的内容。我们在python加密模块中发现错误:_RSAPrivateKey';对象没有属性';同一类型问题的符号表示存在旧的密码库(1.7.1(是问题所在,并建议升级到2.6.1。但我们所有的机器都有最新版本2.6.1的密码学,包括出现问题的机器。
cryptography 1.2.3
pycrypto 2.6.1
我们的产量将在2小时内下降。有谁能帮我解决这个问题吗。
PROD机器(不工作(正在使用更高版本"google auth==1.23.0",grpcio==1.33.2,protobuf==3.14.0,pytz==2020.4
其他机器(正在工作(正在使用较低版本的google auth==1.22.1,grpcio==1.33.1,protobuf==3.13.0,pytz==2020.1
将Prod机器也更新为旧版本以修复问题,尽管不确定问题出在哪里。