StreamAssist에서 검색 결과 가져오기

웹 앱에서 스트리밍 응답 형식으로 질문에 대한 답변을 받을 수 있습니다. 이 문서에서는 REST API를 사용하여 답변을 얻는 방법을 보여줍니다. Gemini Enterprise 웹 앱을 사용하려면 어시스턴트와 채팅하기를 참고하세요.

StreamAssist 개요

StreamAssist는 사용자 질문을 처리하는 강력하고 대화형 방식을 제공합니다. 스트리밍 방식으로 작동하여 실시간 양방향 상호작용을 지원합니다.

API의 주요 기능은 다음과 같습니다.

  • 대화 컨텍스트 유지: 세션을 사용하여 대화 컨텍스트를 유지하므로 이전 상호작용 범위 내에서 후속 질문을 이해할 수 있습니다.

  • 제공된 파일 통합: 첨부된 파일을 컨텍스트로 포함하여 더 많은 정보를 제공하고 관련성 높은 대답을 제공합니다.

  • 원활한 통합: 다양한 에이전트 및 도구와 통합되어 광범위한 사용자 요청을 처리합니다.

시작하기 전에

다음 항목이 준비되었는지 확인하세요.

  • Google Cloud에 사용 설정된 Discovery Engine API Google Cloud 콘솔의 Discovery Engine API 페이지에서 사용 설정할 수 있습니다.

    Discovery Engine API로 이동

  • discoveryengine.assistants.assist 권한이 할당된 검색 엔진 역할

  • 기존 Gemini Enterprise 앱. 앱을 만들려면 앱 만들기를 참조하세요.

검색결과 가져오기

streamAssist 메서드를 사용하여 Gemini Enterprise에 쿼리하고 답변을 받을 수 있습니다. 다음 curl 명령어는 필수 필드를 나열합니다.

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "query": {
    "text": "QUERY_TEXT_1"
  }
}'

다음을 바꿉니다.

  • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.
    • 미국 멀티 리전의 경우 us-
    • EU 멀티 리전의 경우 eu-
    • 전역 위치의 경우 global-
    자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.
  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • APP_ID: Gemini Enterprise 앱의 고유 식별자입니다.
  • LOCATION: 데이터 스토어의 멀티 리전입니다(global, us 또는 eu).
  • QUERY_TEXT_1: 검색어 텍스트입니다.

필드 및 반환되는 항목에 대한 자세한 내용은 응답 본문을 참고하세요.

동일한 세션을 사용하여 검색 결과 가져오기

기존 세션 내에서 대화를 계속하고 Gemini Enterprise로부터 답변을 받으려면 streamAssist 메서드를 사용하세요. 다음 코드 샘플은 필수 필드를 보여줍니다.

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
  -d '
{
  "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
  "query": {
    "text": "QUERY_TEXT_2"
  }
}'

다음을 바꿉니다.

  • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.
    • 미국 멀티 리전의 경우 us-
    • EU 멀티 리전의 경우 eu-
    • 전역 위치의 경우 global-
    자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.
  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • APP_ID: Gemini Enterprise 앱의 고유 식별자입니다.
  • LOCATION: 데이터 스토어의 멀티 리전입니다(global, us 또는 eu).
  • QUERY_TEXT_2: 검색어 텍스트입니다.
  • SESSION_ID: 이전 대화 또는 질문의 세션 ID입니다.

필드 및 반환되는 항목에 대한 자세한 내용은 응답 본문을 참고하세요.

파일을 업로드하고 검색 결과 가져오기 (미리보기)

어시스턴트에게 더 많은 컨텍스트를 제공하려면 세션에 파일을 업로드한 다음 콘텐츠를 쿼리하세요. 다음 단계를 따르세요.

  1. addContextFile 메서드를 사용하여 세션에 파일을 업로드합니다.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/sessions/SESSION_ID:addContextFile" \
      -d '
    {
      "fileName": "FILE_NAME",
      "mimeType": "MIME_TYPE",
      "fileContents": "BASE64_ENCODED_FILE"
    }'
    
    

    다음을 바꿉니다.

    • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.
      • 미국 멀티 리전의 경우 us-
      • EU 멀티 리전의 경우 eu-
      • 전역 위치의 경우 global-
      자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • LOCATION: 데이터 스토어의 멀티 리전입니다(global, us 또는 eu).
    • APP_ID: Gemini Enterprise 앱의 고유 식별자입니다.
    • SESSION_ID: 이전 대화 또는 질문의 세션 ID입니다.
    • FILE_NAME: 파일의 이름입니다.
    • MIME_TYPE: 파일의 MIME 유형입니다(예: text/plain 또는 application/pdf). 다양한 미디어 유형에 대한 자세한 내용은 미디어 유형을 참고하세요.
    • BASE64_ENCODED_FILE: 파일의 base64로 인코딩된 표현입니다.

    필드 및 반환되는 항목에 대한 자세한 내용은 응답 본문을 참고하세요.

  2. 동일한 세션을 사용하여 streamAssist 메서드로 업로드한 파일에 관해 질문합니다.

    REST

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID/assistants/default_assistant:streamAssist" \
      -d '
    {
      "session": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/sessions/SESSION_ID",
      "fileIds": ["FILE_ID"],
      "query": {
        "text": "QUERY_TEXT_3"
      }
    }'
    
    

    다음을 바꿉니다.

    • ENDPOINT_LOCATION-: API 요청의 멀티 리전입니다. 다음 값 중 하나를 할당합니다.
      • 미국 멀티 리전의 경우 us-
      • EU 멀티 리전의 경우 eu-
      • 전역 위치의 경우 global-
      자세한 내용은 데이터 스토어의 멀티 리전 지정을 참조하세요.
    • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
    • APP_ID: Gemini Enterprise 앱의 고유 식별자입니다.
    • LOCATION: 데이터 스토어의 멀티 리전입니다(global, us 또는 eu).
    • QUERY_TEXT_3: 검색어 텍스트입니다.
    • SESSION_ID: 이전 대화 또는 질문의 세션 ID입니다.
    • FILE_ID: 어시스턴트에 업로드한 파일의 ID입니다.

    필드 및 반환되는 항목에 대한 자세한 내용은 응답 본문을 참고하세요.