Question answering

Semantic Retrieval API는 Google 인프라를 사용하여 검색 증강 생성 (RAG) 시스템을 빌드하기 위한 호스팅 질의 응답 서비스를 제공합니다.

메서드: models.generateAnswer

입력 GenerateAnswerRequest가 주어지면 모델에서 그라운딩된 답변을 생성합니다.

엔드포인트

post https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

경로 매개변수

model string

필수 항목입니다. 그라운딩된 대답을 생성하는 데 사용할 Model의 이름입니다.

형식: model=models/{model} models/{model} 형식이 사용됩니다.

요청 본문

요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.

Fields
contents[] object (Content)

필수 항목입니다. Model와의 현재 대화 콘텐츠입니다. 싱글턴 쿼리의 경우 이는 답변해야 하는 단일 질문입니다. 멀티턴 쿼리의 경우 이는 대화 기록과 질문이 포함된 목록의 마지막 Content이 포함된 반복 필드입니다.

참고: models.generateAnswer는 영어로 된 질문만 지원합니다.

answerStyle enum (AnswerStyle)

필수 항목입니다. 답변이 반환되어야 하는 스타일입니다.

safetySettings[] object (SafetySetting)

선택사항입니다. 안전하지 않은 콘텐츠를 차단하기 위한 고유한 SafetySetting 인스턴스 목록입니다.

이 규칙은 GenerateAnswerRequest.contentsGenerateAnswerResponse.candidate에 적용됩니다. 각 SafetyCategory 유형에 설정이 두 개 이상 있으면 안 됩니다. API는 이러한 설정에 의해 설정된 기준을 충족하지 않는 콘텐츠와 응답을 차단합니다. 이 목록은 safetySettings에 지정된 각 SafetyCategory의 기본 설정을 재정의합니다. 목록에 제공된 특정 SafetyCategory에 대한 SafetySetting가 없는 경우 API는 해당 카테고리의 기본 안전 설정을 사용합니다. 유해 카테고리 HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT가 지원됩니다. 사용 가능한 안전 설정에 관한 자세한 내용은 가이드를 참고하세요. 안전 가이드를 참고하여 AI 애플리케이션에 안전 고려사항을 통합하는 방법도 알아보세요.

grounding_source Union type
답변을 그라운딩할 소스입니다. grounding_source는 다음 중 하나여야 합니다.
inlinePassages object (GroundingPassages)

요청과 함께 인라인으로 제공된 구절입니다.

semanticRetriever object (SemanticRetrieverConfig)

Semantic Retriever API를 통해 생성된 리소스에서 검색된 콘텐츠입니다.

temperature number

선택사항입니다. 출력의 무작위성을 제어합니다.

값의 범위는 [0.0,1.0]입니다(포함). 1.0에 가까운 값은 더 다양하고 창의적인 대답을 생성하는 반면 0.0에 가까운 값은 일반적으로 모델에서 더 간단한 대답을 생성합니다. 일반적으로 귀속 질문 답변 사용 사례에는 낮은 온도 (~0.2)가 권장됩니다.

응답 본문

그라운딩된 답변에 대한 모델의 응답입니다.

성공한 경우 응답 본문은 다음과 같은 구조의 데이터를 포함합니다.

Fields
answer object (Candidate)

모델의 후보 답변입니다.

참고: 모델은 주어진 문단에서 대답할 수 없을 가능성이 있는 경우에도 항상 그라운딩된 대답을 제공하려고 시도합니다. 이 경우 품질이 낮거나 그라운딩되지 않은 대답이 낮은 answerableProbability와 함께 제공될 수 있습니다.

answerableProbability number

출력 전용입니다. 모델이 대답이 올바르고 입력된 구절에 기반할 확률을 추정한 값입니다.

answerableProbability가 낮으면 대답이 소스에 근거하지 않을 수 있음을 나타냅니다.

answerableProbability가 낮은 경우 다음을 수행하는 것이 좋습니다.

  • 사용자에게 '질문에 답변할 수 없습니다'라는 메시지를 표시합니다.
  • 세계 지식에서 질문에 답변하는 범용 LLM으로 대체합니다. 이러한 대체의 임곗값과 특성은 개별 사용 사례에 따라 달라집니다. 0.5는 적절한 시작 기준입니다.
inputFeedback object (InputFeedback)

출력 전용입니다. 질문에 대한 모델 생성 응답이 아닌 질문에 답하는 데 사용된 입력 데이터와 관련된 의견입니다.

입력 데이터는 다음 중 하나 이상일 수 있습니다.

  • GenerateAnswerRequest.content의 마지막 항목에 지정된 질문
  • GenerateAnswerRequest.content의 다른 항목에 의해 지정된 대화 기록
  • 그라운딩 소스 (GenerateAnswerRequest.semantic_retriever 또는 GenerateAnswerRequest.inline_passages)
JSON 표현
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

반복되는 구절 목록입니다.

Fields
passages[] object (GroundingPassage)

구절 목록입니다.

JSON 표현
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

그라운딩 구성과 함께 인라인으로 포함된 구절입니다.

Fields
id string

그라운딩된 답변에서 이 문단을 인용하기 위한 문단의 식별자입니다.

content object (Content)

단락의 내용입니다.

JSON 표현
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Semantic Retriever API를 사용하여 생성된 Corpus 또는 Document에서 그라운딩 콘텐츠를 가져오기 위한 구성입니다.

Fields
source string

필수 항목입니다. 가져올 리소스의 이름입니다. 예: corpora/123 또는 corpora/123/documents/abc

query object (Content)

필수 항목입니다. 유사성을 기준으로 지정된 리소스에서 Chunk를 일치시키는 데 사용할 쿼리입니다.

metadataFilters[] object (MetadataFilter)

선택사항입니다. 리소스에서 Document 또는 Chunk를 선택하는 필터입니다.

maxChunksCount integer

선택사항입니다. 가져올 관련 Chunk의 최대 개수입니다.

minimumRelevanceScore number

선택사항입니다. 검색된 관련 Chunk의 최소 관련성 점수입니다.

JSON 표현
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

그라운딩된 답변의 스타일입니다.

열거형
ANSWER_STYLE_UNSPECIFIED 지정되지 않은 답변 스타일입니다.
ABSTRACTIVE 간결하지만 추상적인 스타일
EXTRACTIVE 매우 간결하고 추출적인 스타일입니다.
VERBOSE 추가 세부정보를 포함하는 자세한 스타일입니다. 대답은 문장, 단락, 여러 단락, 글머리기호 등으로 형식이 지정될 수 있습니다.

InputFeedback

질문에 대한 모델 생성 응답이 아닌 질문에 답하는 데 사용된 입력 데이터와 관련된 의견입니다.

Fields
safetyRatings[] object (SafetyRating)

입력의 안전에 대한 등급입니다. 카테고리당 등급은 최대 1개입니다.

blockReason enum (BlockReason)

선택사항입니다. 설정된 경우 입력이 차단되고 후보가 반환되지 않습니다. 입력 내용을 바꿔 줘.

JSON 표현
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

입력이 차단된 이유를 지정합니다.

열거형
BLOCK_REASON_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
SAFETY 안전상의 이유로 입력이 차단되었습니다. safetyRatings를 검사하여 차단한 안전 카테고리를 파악합니다.
OTHER 다른 이유로 입력이 차단되었습니다.