어시스턴트를 프로젝트에 통합 (다른 언어)

아래 각 섹션의 안내에 따라 Google 어시스턴트를 통합하세요. 가져올 수 있습니다

gRPC 바인딩

Google 어시스턴트 서비스는 고성능 애플리케이션인 gRPC를 오픈소스 RPC 프레임워크입니다 이 프레임워크는 양방향 오디오 스트리밍이 가능합니다.

Python

Python을 사용하는 경우 이 가이드를 사용하여 시작하세요.

C++

C++ 샘플 살펴보기 를 참조하세요.

Node.js

Node.js 샘플 살펴보기 를 참조하세요.

Android Things

임베디드 기기에 관심이 있으신가요? 어시스턴트 SDK 확인 샘플 Android Things

다른 언어

어시스턴트를 사용할 수 있도록 Google 계정 승인 및 인증

다음 단계는 기기가 Google 어시스턴트와 대화할 수 있도록 승인하는 것입니다. Google 계정을 사용하여 로그인

어시스턴트 SDK 범위로 OAuth 토큰 가져오기

어시스턴트 SDK는 OAuth 2.0 액세스 토큰을 사용하여 기기에서 다음을 수행할 수 있도록 승인합니다. 어시스턴트와 연결

프로토타입을 제작할 때 인증 도구를 사용하여 OAuth2.0을 쉽게 생성할 수 있습니다. 다음 시점에 생성된 client_secret_<client-id>.json 파일의 사용자 인증 정보 기기 모델 등록을 참조하세요.

사용자 인증 정보를 생성하려면 다음 단계를 따르세요.

  1. Python 가상 환경을 사용합니다. 를 사용하여 인증 도구와 해당 종속 항목을 시스템 Python 패키지에서 격리합니다.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. 승인 도구를 설치합니다.

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. 도구를 실행합니다. SSH 세션이 아닌 기기의 터미널에서 다음을 실행하는 경우 --headless 플래그를 삭제합니다.

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

프로비저닝의 일부로 승인을 통합할 준비가 되면 자세히 알아보려면 OAuth 2.0을 사용하여 Google API에 액세스하기에 대한 가이드를 읽어보세요. OAuth 액세스 토큰을 받고, 유지하고, 사용하는 방법을 이해하여 사용하여 어시스턴트 API와 통신할 수 있습니다.

이 가이드를 살펴볼 때는 다음을 사용하세요.

개인 정보 보호 및 보안 권장사항 확인 기기를 보호하는 방법에 관한 권장사항을 확인하세요.

OAuth 토큰으로 gRPC 연결 인증

마지막으로 토큰 기반 리소스 사용 방법을 통해 Google 인증을 사용하여 Assistant API에 대한 gRPC 연결을 인증합니다.

기기 등록

기기 모델 및 인스턴스를 수동으로 등록 또는 등록 도구 (사용 가능)를 통해 입력)을 사용합니다.

어시스턴트를 사용한 기본 대화 대화상자 구현

  1. 양방향 스트리밍 gRPC 클라이언트 구현 (Google Assistant Service API의 경우)
  2. 사용자가 새 요청을 트리거할 때까지 기다립니다 (예: GPIO 인터럽트 대기). (버튼을 누르면)
  3. AssistRequest 보내기 config 필드가 설정된 메시지 (AssistConfig 참고) config 필드에 다음 내용이 포함되어 있는지 확인합니다.

    • audio_in_config 필드: 후속 요청에 제공될 audio_in 데이터 AudioInConfig를 참고하세요.
    • audio_out_config 필드: audio_out 메시지를 반환할 때 사용할 서버입니다 (AudioOutConfig 참고).
    • device_config 필드: 어시스턴트에 등록된 기기를 삭제할 수 있습니다 (DeviceConfig 참고).
    • language_code가 포함된 dialog_state_in 필드 입니다 (DialogStateIn 참고).
  4. 녹화를 시작합니다.

  5. 여러 발신 AssistRequest 보내기 audio_in 필드에 음성 쿼리의 오디오 데이터가 포함된 메시지

  6. 수신되는 AssistResponse 처리 메시지를 보낼 수 있습니다

  7. AssistResponse에서 대화 메타데이터 추출 메시지가 표시됩니다. 예를 들어 dialog_state_out에서 conversation_state를 가져옵니다. 및 volume_percentage (DialogStateOut 참고)

  8. AssistResponse 수신 시 녹음 중지 event_type 사용 (전체 END_OF_UTTERANCE)

  9. 어시스턴트 답변의 오디오를 audio_out의 오디오 데이터로 재생합니다. 필드를 확인합니다.

  10. 앞서 추출한 conversation_state 파일을 가져와서 복사합니다 DialogStateIn에 다음 AssistRequest에 관한 AssistConfig의 메시지

이제 Google Cloud에 첫 번째 요청을 할 준비가 되었습니다. 기기를 통해 어시스턴트를 사용하세요.

기기 작업으로 대화 대화상자 확장

위의 기본 대화 대화상자를 확장하여 고유한 하드웨어를 트리거합니다. 특정 기기의 성능:

  1. 수신 AssistResponse에서 device_action 필드( DeviceAction)을 입력합니다.
  2. device_request_json 필드의 JSON 페이로드를 파싱합니다. 자세한 내용은 기기 특성 페이지를 사용하여 지원되는 특성의 목록입니다. 각 트레잇 스키마 페이지에 샘플 EXECUTE가 표시됨 기기 명령어 및 매개변수로 JSON 페이로드.

사용자 요청의 스크립트 가져오기

기기에 디스플레이가 연결되어 있는 경우 디스플레이를 사용하여 사용자 요청을 표시합니다 이 스크립트를 가져오려면 speech_results 필드를 파싱하세요. (AssistResponse) 메시지를 보낼 수 있습니다 음성 인식이 완료되면 이 목록에 하나의 항목이 포함됩니다. 1.0으로 설정된 stability입니다.

어시스턴트 응답의 텍스트 또는 시각적 렌더링 가져오기

기기에 디스플레이가 연결되어 있는 경우 디스플레이를 사용하여 사용자 요청에 대한 어시스턴트의 일반 텍스트 응답을 표시합니다. 이 텍스트의 위치 DialogStateOut.supplemental_display_text 필드를 확인합니다.

어시스턴트는 특정 쿼리에 대해 HTML5를 통한 시각적 응답을 지원합니다 (What '마운틴뷰 날씨는? 또는 지금 몇 시야?)입니다. 이를 사용 설정하려면 AssistConfigscreen_out_config 필드 ScreenOutConfig 메시지에 PLAYING(으)로 설정해야 하는 screen_mode 필드가 있습니다.

AssistResponse 그러면 메시지에 screen_out 필드가 설정됩니다. HTML5 데이터 (있는 경우)를 data 필드

텍스트 입력을 통해 쿼리 제출

기기에 연결된 텍스트 인터페이스 (예: 키보드)가 있는 경우 config 필드에 text_query 필드를 설정합니다 (AssistConfig 참고). audio_in_config 필드를 설정하지 마세요.

문제 해결

문제 해결을 참고하세요. 페이지를 방문하세요.