Question answering

Semantic Retrieval API menyediakan layanan penjawab pertanyaan yang dihosting untuk membangun sistem Retrieval Augmented Generation (RAG) menggunakan infrastruktur Google.

Metode: models.generateAnswer

Menghasilkan jawaban yang relevan dari model yang diberi input GenerateAnswerRequest.

Endpoint

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

Parameter jalur

model string

Wajib. Nama Model yang akan digunakan untuk membuat respons yang berisi rujukan.

Format: model=models/{model}. Formatnya adalah models/{model}.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Kolom
contents[] object (Content)

Wajib. Konten percakapan saat ini dengan Model. Untuk kueri sekali putaran, ini adalah satu pertanyaan yang harus dijawab. Untuk kueri multi-turn, ini adalah kolom berulang yang berisi histori percakapan dan Content terakhir dalam daftar yang berisi pertanyaan.

Catatan: models.generateAnswer hanya mendukung kueri dalam bahasa Inggris.

answerStyle enum (AnswerStyle)

Wajib. Gaya jawaban yang harus ditampilkan.

safetySettings[] object (SafetySetting)

Opsional. Daftar instance SafetySetting unik untuk memblokir konten tidak aman.

Kebijakan ini akan diterapkan pada GenerateAnswerRequest.contents dan GenerateAnswerResponse.candidate. Tidak boleh ada lebih dari satu setelan untuk setiap jenis SafetyCategory. API akan memblokir konten dan respons apa pun yang tidak memenuhi nilai minimum yang ditetapkan oleh setelan ini. Daftar ini menggantikan setelan default untuk setiap SafetyCategory yang ditentukan dalam safetySettings. Jika tidak ada SafetySetting untuk SafetyCategory tertentu yang diberikan dalam daftar, API akan menggunakan setelan keamanan default untuk kategori tersebut. Kategori bahaya HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT didukung. Lihat panduan untuk mengetahui informasi mendetail tentang setelan keamanan yang tersedia. Lihat juga Panduan keselamatan untuk mempelajari cara memasukkan pertimbangan keselamatan dalam aplikasi AI Anda.

grounding_source Union type
Sumber untuk mendasari jawaban. grounding_source hanya dapat berupa salah satu dari hal berikut:
inlinePassages object (GroundingPassages)

Bagian teks yang diberikan secara inline dengan permintaan.

semanticRetriever object (SemanticRetrieverConfig)

Konten yang diambil dari resource yang dibuat melalui Semantic Retriever API.

temperature number

Opsional. Mengontrol keacakan output.

Nilai dapat berkisar dari [0.0,1.0], inklusif. Nilai yang lebih mendekati 1,0 akan menghasilkan respons yang lebih bervariasi dan kreatif, sedangkan nilai yang lebih mendekati 0,0 biasanya akan menghasilkan respons yang lebih langsung dari model. Suhu rendah (~0,2) biasanya direkomendasikan untuk kasus penggunaan Pertanyaan-Jawaban yang Diatribusikan.

Isi respons

Respons dari model untuk jawaban yang berisi rujukan.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Kolom
answer object (Candidate)

Jawaban kandidat dari model.

Catatan: Model selalu mencoba memberikan jawaban yang memiliki rujukan, meskipun jawaban tersebut kemungkinan tidak dapat dijawab dari bagian yang diberikan. Dalam hal ini, jawaban berkualitas rendah atau tidak berdasar dapat diberikan, bersama dengan answerableProbability rendah.

answerableProbability number

Hanya output. Estimasi model tentang probabilitas bahwa jawabannya benar dan didasarkan pada bagian input.

answerableProbability yang rendah menunjukkan bahwa jawaban mungkin tidak memiliki rujukan dalam sumber.

Jika answerableProbability rendah, Anda dapat:

  • Menampilkan pesan yang menyatakan "Kami tidak dapat menjawab pertanyaan tersebut" kepada pengguna.
  • Beralih ke LLM serbaguna yang menjawab pertanyaan dari pengetahuan dunia. Nilai minimum dan sifat penggantian tersebut akan bergantung pada masing-masing kasus penggunaan. 0.5 adalah nilai minimum yang baik untuk memulai.
inputFeedback object (InputFeedback)

Hanya output. Masukan terkait data input yang digunakan untuk menjawab pertanyaan, bukan respons yang dihasilkan model terhadap pertanyaan tersebut.

Data input dapat berupa satu atau beberapa hal berikut:

  • Pertanyaan yang ditentukan oleh entri terakhir di GenerateAnswerRequest.content
  • Histori percakapan yang ditentukan oleh entri lain di GenerateAnswerRequest.content
  • Sumber perujukan (GenerateAnswerRequest.semantic_retriever atau GenerateAnswerRequest.inline_passages)
Representasi JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Daftar bagian yang berulang.

Kolom
passages[] object (GroundingPassage)

Daftar bagian.

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

GroundingPassage

Bagian disertakan secara inline dengan konfigurasi perujukan.

Kolom
id string

ID untuk bagian teks untuk mengatribusikan bagian teks ini dalam jawaban berbasis rujukan.

content object (Content)

Isi teks.

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

SemanticRetrieverConfig

Konfigurasi untuk mengambil konten perujukan dari Corpus atau Document yang dibuat menggunakan Semantic Retriever API.

Kolom
source string

Wajib. Nama resource yang akan diambil. Contoh: corpora/123 atau corpora/123/documents/abc.

query object (Content)

Wajib. Kueri yang digunakan untuk mencocokkan Chunk dalam resource tertentu berdasarkan kemiripan.

metadataFilters[] object (MetadataFilter)

Opsional. Filter untuk memilih Document dan/atau Chunk dari resource.

maxChunksCount integer

Opsional. Jumlah maksimum Chunk yang relevan untuk diambil.

minimumRelevanceScore number

Opsional. Skor relevansi minimum untuk Chunk yang relevan dan diambil.

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

AnswerStyle

Gaya untuk jawaban yang berisi rujukan.

Enum
ANSWER_STYLE_UNSPECIFIED Gaya jawaban tidak ditentukan.
ABSTRACTIVE Gaya ringkas tetapi abstrak.
EXTRACTIVE Gaya sangat singkat dan ekstraktif.
VERBOSE Gaya verbose yang menyertakan detail tambahan. Respons dapat diformat sebagai kalimat, paragraf, beberapa paragraf, atau poin-poin, dll.

InputFeedback

Masukan terkait data input yang digunakan untuk menjawab pertanyaan, bukan respons yang dihasilkan model terhadap pertanyaan tersebut.

Kolom
safetyRatings[] object (SafetyRating)

Rating untuk keamanan input. Maksimal ada satu rating per kategori.

blockReason enum (BlockReason)

Opsional. Jika disetel, input diblokir dan tidak ada kandidat yang ditampilkan. Ubah susunan kata input.

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

BlockReason

Menentukan alasan input diblokir.

Enum
BLOCK_REASON_UNSPECIFIED Nilai default. Nilai ini tidak digunakan.
SAFETY Input diblokir karena alasan keamanan. Periksa safetyRatings untuk memahami kategori keamanan mana yang memblokirnya.
OTHER Input diblokir karena alasan lain.