Question answering

Semantic Retrieval API ให้บริการตอบคำถามที่โฮสต์ไว้สำหรับการสร้างระบบ Retrieval Augmented Generation (RAG) โดยใช้โครงสร้างพื้นฐานของ Google ดูคำแนะนำแบบทีละขั้นโดยละเอียดได้ในคู่มือการดึงข้อมูลเชิงความหมาย

เมธอด: model.generateAnswer

สร้างคำตอบพื้นฐานจากโมเดลที่ได้รับอินพุต GenerateAnswerRequest

ปลายทาง

โพสต์ https://generativelanguage.googleapis.com/v1beta/{model=models/*}:generateAnswer

พารามิเตอร์เส้นทาง

model string

ต้องระบุ ชื่อ Model ที่จะใช้สําหรับสร้างคําตอบที่อิงตามข้อมูล

รูปแบบ: model=models/{model} โดยใช้รูปแบบ models/{model}

เนื้อหาของคำขอ

เนื้อความของคำขอมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ช่อง
contents[] object (Content)

ต้องระบุ เนื้อหาของการสนทนาปัจจุบันกับ Model สำหรับคำถามแบบสลับครั้งเดียว นี่คือคำถามเดียวที่ต้องตอบ สําหรับการค้นหาแบบหลายรอบ ฟิลด์นี้จะซ้ำกันซึ่งมีประวัติการสนทนาและ Content รายการล่าสุดในรายการที่มีคําถาม

หมายเหตุ: models.generateAnswer รองรับคำค้นหาที่เป็นภาษาอังกฤษเท่านั้น

answerStyle enum (AnswerStyle)

ต้องระบุ รูปแบบที่ควรแสดงคำตอบ

safetySettings[] object (SafetySetting)

ไม่บังคับ รายการอินสแตนซ์ SafetySetting ที่ไม่ซ้ำกันสำหรับการบล็อกเนื้อหาที่ไม่ปลอดภัย

ซึ่งจะมีผลกับ GenerateAnswerRequest.contents และ GenerateAnswerResponse.candidate ประเภท SafetyCategory แต่ละประเภทไม่ควรมีการตั้งค่ามากกว่า 1 รายการ API จะบล็อกเนื้อหาและการตอบกลับที่ไม่เป็นไปตามเกณฑ์ที่กำหนดโดยการตั้งค่าเหล่านี้ รายการนี้จะลบล้างการตั้งค่าเริ่มต้นสำหรับ SafetyCategory แต่ละรายการที่ระบุไว้ใน safetySettings หากไม่มี SafetySetting สำหรับ SafetyCategory ที่ระบุในรายการ API จะใช้การตั้งค่าความปลอดภัยเริ่มต้นสำหรับหมวดหมู่นั้น ระบบรองรับหมวดหมู่อันตราย HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT ดูข้อมูลโดยละเอียดเกี่ยวกับการตั้งค่าความปลอดภัยที่ใช้ได้ได้ในคู่มือ นอกจากนี้ โปรดดูคำแนะนำด้านความปลอดภัยเพื่อดูวิธีนำข้อควรพิจารณาด้านความปลอดภัยไปใช้กับแอปพลิเคชัน AI ของคุณ

ช่องการรวม grounding_source แหล่งที่มาซึ่งเป็นที่มาของคำตอบ grounding_source ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้
inlinePassages object (GroundingPassages)

ข้อความที่ป้อนในหน้าคำขอ

semanticRetriever object (SemanticRetrieverConfig)

เนื้อหาที่ดึงมาจากทรัพยากรที่สร้างขึ้นผ่าน Semantic Retriever API

temperature number

ไม่บังคับ ควบคุมความสุ่มของเอาต์พุต

ค่าที่ใช้ได้อยู่ในช่วง [0.0,1.0] ค่าที่เข้าใกล้ 1.0 จะทำให้ได้คำตอบที่หลากหลายและสร้างสรรค์มากกว่า ขณะที่ค่าที่เข้าใกล้ 0.0 มักจะทำให้ได้คำตอบที่ตรงไปตรงมามากขึ้นจากโมเดล โดยทั่วไปแล้ว เราขอแนะนําให้ใช้อุณหภูมิต่ำ (~0.2) สําหรับ Use Case การตอบคําถามที่มีการระบุแหล่งที่มา

เนื้อหาการตอบกลับ

คำตอบจากโมเดลสำหรับคำตอบพื้นฐาน

หากทำสำเร็จ เนื้อหาการตอบกลับจะมีข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้

ช่อง
answer object (Candidate)

คำตอบผู้สมัครจากโมเดล

หมายเหตุ: โมเดลจะพยายามให้คำตอบที่อิงตามหลักฐานเสมอ แม้ว่าคำตอบนั้นจะไม่มีแนวโน้มที่จะตอบได้จากข้อความที่ระบุ ในกรณีดังกล่าว ระบบอาจให้คำตอบที่มีคุณภาพต่ำหรือไม่มีมูลความจริง พร้อมกับ answerableProbability ที่ต่ำ

answerableProbability number

เอาต์พุตเท่านั้น ค่าประมาณของโมเดลเกี่ยวกับความเป็นไปได้ที่คำตอบจะถูกต้องและตั้งอยู่บนพื้นฐานของข้อความที่ป้อน

answerableProbability ที่ต่ำบ่งชี้ว่าคำตอบอาจไม่ได้อิงตามแหล่งที่มา

เมื่อanswerableProbabilityต่ำ คุณอาจต้องดำเนินการต่อไปนี้

  • แสดงข้อความที่ระบุว่า "เราตอบคำถามนั้นไม่ได้" ต่อผู้ใช้
  • กลับไปใช้ LLM ที่มีวัตถุประสงค์ทั่วไปซึ่งตอบคำถามจากความรู้ทั่วโลก เกณฑ์และลักษณะของวิดีโอสำรองดังกล่าวจะขึ้นอยู่กับกรณีการใช้งานแต่ละรายการ 0.5 เป็นเกณฑ์เริ่มต้นที่ดี
inputFeedback object (InputFeedback)

เอาต์พุตเท่านั้น ความคิดเห็นที่เกี่ยวข้องกับข้อมูลอินพุตที่ใช้ตอบคำถาม ซึ่งต่างจากคำตอบที่โมเดลสร้างขึ้นสำหรับคำถาม

ข้อมูลอินพุตสามารถเป็นข้อมูลต่อไปนี้อย่างน้อย 1 อย่าง

  • คำถามที่ระบุไว้ตามข้อมูลสุดท้ายใน GenerateAnswerRequest.content
  • ประวัติการสนทนาที่ระบุโดยรายการอื่นๆ ใน GenerateAnswerRequest.content
  • แหล่งที่มาของสายดิน (GenerateAnswerRequest.semantic_retriever หรือ GenerateAnswerRequest.inline_passages)
การแสดง JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

รายการข้อความที่ซ้ำกัน

ช่อง
passages[] object (GroundingPassage)

รายการข้อความ

การแสดง JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

ข้อความที่รวมอยู่ในบรรทัดเดียวกับการกำหนดค่าการต่อกราวด์

ช่อง
id string

ตัวระบุของข้อความสำหรับการระบุแหล่งที่มาของข้อความนี้ในคำตอบที่อิงตามแหล่งข้อมูล

content object (Content)

เนื้อหาของข้อความ

การแสดง JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

การกำหนดค่าสำหรับการเรียกข้อมูลเนื้อหาที่ต่อพื้นฐานจาก Corpus หรือ Document ที่สร้างขึ้นโดยใช้ Semantic Retriever API

ช่อง
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

รูปแบบสำหรับคำตอบที่อิงตามข้อเท็จจริง

Enum
ANSWER_STYLE_UNSPECIFIED ไม่ได้ระบุรูปแบบคำตอบ
ABSTRACTIVE กระชับแต่เป็นแบบนามธรรม
EXTRACTIVE รูปแบบที่สั้นมากและดึงข้อมูล
VERBOSE รูปแบบแบบละเอียดรวมถึงรายละเอียดเพิ่มเติม การตอบกลับอาจมีการจัดรูปแบบเป็นประโยค ย่อหน้า หลายย่อหน้า หรือหัวข้อย่อย ฯลฯ

InputFeedback

ความคิดเห็นที่เกี่ยวข้องกับข้อมูลอินพุตที่ใช้ตอบคำถาม ไม่ใช่คำตอบที่โมเดลสร้างขึ้นสำหรับคำถาม

ช่อง
safetyRatings[] object (SafetyRating)

คะแนนความปลอดภัยของอินพุต แต่ละหมวดหมู่มีการจัดประเภทได้สูงสุด 1 รายการ

blockReason enum (BlockReason)

ไม่บังคับ หากตั้งค่าไว้ ระบบจะบล็อกอินพุตและไม่แสดงผลตัวเลือก ปรับเปลี่ยนอินพุต

การแสดง JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

ระบุเหตุผลที่อินพุตถูกบล็อก

Enum
BLOCK_REASON_UNSPECIFIED ค่าเริ่มต้น ค่านี้ไม่ได้ใช้งาน
SAFETY ข้อมูลที่ป้อนถูกบล็อกเนื่องจากเหตุผลด้านความปลอดภัย ตรวจสอบ safetyRatings เพื่อดูว่าหมวดหมู่ความปลอดภัยใดบล็อกหมวดหมู่นั้น
OTHER อินพุตถูกบล็อกเนื่องจากสาเหตุอื่นๆ