Question answering

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

เมธอด: models.generateAnswer

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

ปลายทาง

post 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 ไม่ควรมีการตั้งค่ามากกว่า 1 รายการสำหรับSafetyCategoryแต่ละประเภท API จะบล็อกเนื้อหาและการตอบกลับที่ไม่เป็นไปตามเกณฑ์ที่กำหนดโดยการตั้งค่าเหล่านี้ รายการนี้จะลบล้างการตั้งค่าเริ่มต้นสำหรับแต่ละรายการที่SafetyCategoryระบุไว้ใน safetySettings หากไม่มี SafetySetting สำหรับ SafetyCategory ที่ระบุในรายการ 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) สำหรับกรณีการใช้งานการตอบคำถามที่มีการระบุแหล่งที่มา

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

คำตอบจากโมเดลสำหรับคำตอบที่อิงตามข้อมูล

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

ฟิลด์
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

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

ฟิลด์
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 ระบบบล็อกอินพุตเนื่องจากเหตุผลอื่นๆ