>source

Google 대화 흐름과 통신하기 위해 Python 코드를 작성했습니다. 로컬 머신에서 잘 작동하고 빌드 머신 중 하나에서도 잘 작동합니다. 다음은 dialogflow와 통신하기 위해 작성한 코드입니다.

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_timeout\n    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_callable\n    six.raise_from(exceptions.from_grpc_error(exc), exc)\n  File \"<string>\", line 2, in raise_from\ngoogle.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 '개체에'sign '속성이 없습니다. 이전 암호화 라이브러리 (1.7.1)를 갖는 것이 문제이며 2.6.1로 업그레이드 할 것을 제안하는 동일한 유형의 문제에 대해. 그러나 우리의 모든 컴퓨터에는 문제가있는 컴퓨터를 포함하여 암호화 최신 버전 2.6.1이 있습니다.

cryptography 1.2.3
pycrypto     2.6.1

2 시간 만에 생산 감소가 있습니다. 누구든지이 문제를 해결하도록 도와주세요.

  • 답변 # 1

    작동하지 않는 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 컴퓨터도 이전 버전으로 업데이트했습니다.

관련 자료

  • 이전 Java에서 하위 문자열의 두 번째 인스턴스를 어떻게 반환합니까?
  • 다음 python - Google을 통한 베트남 감정 분석