Question answering

Semantic Retrieval API cung cấp một dịch vụ trả lời câu hỏi được lưu trữ để xây dựng các hệ thống Tạo sinh tăng cường truy xuất (RAG) bằng cơ sở hạ tầng của Google.

Phương thức: models.generateAnswer

Tạo câu trả lời có căn cứ từ mô hình dựa trên một GenerateAnswerRequest đầu vào.

Điểm cuối

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

Tham số đường dẫn

model string

Bắt buộc. Tên của Model dùng để tạo câu trả lời có căn cứ.

Định dạng: model=models/{model}. Địa chỉ này có dạng models/{model}.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
contents[] object (Content)

Bắt buộc. Nội dung của cuộc trò chuyện hiện tại với Model. Đối với các cụm từ tìm kiếm một lượt, đây là một câu hỏi duy nhất cần trả lời. Đối với các truy vấn nhiều lượt, đây là một trường lặp lại chứa nhật ký trò chuyện và Content cuối cùng trong danh sách chứa câu hỏi.

Lưu ý: models.generateAnswer chỉ hỗ trợ các cụm từ tìm kiếm bằng tiếng Anh.

answerStyle enum (AnswerStyle)

Bắt buộc. Phong cách mà câu trả lời sẽ được trả về.

safetySettings[] object (SafetySetting)

Không bắt buộc. Danh sách các thực thể SafetySetting riêng biệt để chặn nội dung không an toàn.

Quy định này sẽ được thực thi trên GenerateAnswerRequest.contentsGenerateAnswerResponse.candidate. Không được có nhiều hơn một chế độ cài đặt cho mỗi loại SafetyCategory. API sẽ chặn mọi nội dung và phản hồi không đáp ứng các ngưỡng do những chế độ cài đặt này đặt ra. Danh sách này sẽ ghi đè các chế độ cài đặt mặc định cho từng SafetyCategory được chỉ định trong safetySettings. Nếu không có SafetySetting cho một SafetyCategory nhất định được cung cấp trong danh sách, thì API sẽ sử dụng chế độ cài đặt an toàn mặc định cho danh mục đó. Chúng tôi hỗ trợ các danh mục nội dung gây hại HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT. Hãy tham khảo hướng dẫn để biết thông tin chi tiết về các chế độ cài đặt an toàn hiện có. Bạn cũng có thể tham khảo Hướng dẫn về an toàn để tìm hiểu cách đưa các yếu tố cần cân nhắc về an toàn vào ứng dụng AI của mình.

grounding_source Union type
Các nguồn để đưa ra câu trả lời. grounding_source chỉ có thể là một trong những trạng thái sau:
inlinePassages object (GroundingPassages)

Đoạn văn được cung cấp cùng với yêu cầu.

semanticRetriever object (SemanticRetrieverConfig)

Nội dung được truy xuất từ các tài nguyên được tạo thông qua Semantic Retriever API.

temperature number

Không bắt buộc. Kiểm soát tính ngẫu nhiên của kết quả.

Giá trị có thể nằm trong khoảng [0.0,1.0], bao gồm cả hai giá trị này. Giá trị càng gần 1.0 thì câu trả lời càng đa dạng và sáng tạo, trong khi giá trị càng gần 0.0 thì mô hình thường sẽ đưa ra câu trả lời đơn giản hơn. Bạn nên sử dụng nhiệt độ thấp (~0,2) cho các trường hợp sử dụng Trả lời câu hỏi có trích dẫn.

Nội dung phản hồi

Câu trả lời của mô hình cho một câu trả lời có căn cứ.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Trường
answer object (Candidate)

Câu trả lời đề xuất của mô hình.

Lưu ý: Mô hình luôn cố gắng đưa ra câu trả lời có căn cứ, ngay cả khi câu trả lời đó không có trong các đoạn văn đã cho. Trong trường hợp đó, câu trả lời kém chất lượng hoặc không có căn cứ có thể được cung cấp, cùng với answerableProbability thấp.

answerableProbability number

Chỉ có đầu ra. Mô hình ước tính xác suất câu trả lời của mô hình là chính xác và dựa trên các đoạn văn đầu vào.

Điểm answerableProbability thấp cho thấy câu trả lời có thể không dựa trên các nguồn.

Khi answerableProbability thấp, bạn nên:

  • Hiển thị cho người dùng một thông báo có nội dung "Chúng tôi không thể trả lời câu hỏi đó".
  • Quay lại LLM đa năng để trả lời câu hỏi dựa trên kiến thức thế giới. Ngưỡng và bản chất của những phương án dự phòng như vậy sẽ tuỳ thuộc vào từng trường hợp sử dụng. 0.5 là một ngưỡng khởi đầu phù hợp.
inputFeedback object (InputFeedback)

Chỉ có đầu ra. Ý kiến phản hồi liên quan đến dữ liệu đầu vào được dùng để trả lời câu hỏi, thay vì câu trả lời do mô hình tạo cho câu hỏi.

Dữ liệu đầu vào có thể là một hoặc nhiều dữ liệu sau đây:

  • Câu hỏi do mục nhập gần đây nhất trong GenerateAnswerRequest.content chỉ định
  • Nhật ký cuộc trò chuyện do các mục khác trong GenerateAnswerRequest.content chỉ định
  • Nguồn cơ sở (GenerateAnswerRequest.semantic_retriever hoặc GenerateAnswerRequest.inline_passages)
Biểu diễn dưới dạng JSON
{
  "answer": {
    object (Candidate)
  },
  "answerableProbability": number,
  "inputFeedback": {
    object (InputFeedback)
  }
}

GroundingPassages

Danh sách các đoạn văn được lặp lại.

Trường
passages[] object (GroundingPassage)

Danh sách các đoạn văn.

Biểu diễn dưới dạng JSON
{
  "passages": [
    {
      object (GroundingPassage)
    }
  ]
}

GroundingPassage

Đoạn văn được đưa vào cùng với cấu hình cơ sở.

Trường
id string

Giá trị nhận dạng cho đoạn văn để phân bổ đoạn văn này trong câu trả lời có căn cứ.

content object (Content)

Nội dung của đoạn văn.

Biểu diễn dưới dạng JSON
{
  "id": string,
  "content": {
    object (Content)
  }
}

SemanticRetrieverConfig

Cấu hình để truy xuất nội dung cơ sở từ Corpus hoặc Document được tạo bằng Semantic Retriever API.

Trường
source string

Bắt buộc. Tên của tài nguyên cần truy xuất. Ví dụ: corpora/123 hoặc corpora/123/documents/abc.

query object (Content)

Bắt buộc. Truy vấn dùng để so khớp các Chunk trong tài nguyên đã cho theo mức độ tương tự.

metadataFilters[] object (MetadataFilter)

Không bắt buộc. Bộ lọc để chọn Document và/hoặc Chunk từ tài nguyên.

maxChunksCount integer

Không bắt buộc. Số lượng Chunk có liên quan tối đa cần truy xuất.

minimumRelevanceScore number

Không bắt buộc. Điểm mức độ liên quan tối thiểu cho các Chunk có liên quan đã truy xuất.

Biểu diễn dưới dạng JSON
{
  "source": string,
  "query": {
    object (Content)
  },
  "metadataFilters": [
    {
      object (MetadataFilter)
    }
  ],
  "maxChunksCount": integer,
  "minimumRelevanceScore": number
}

AnswerStyle

Phong cách cho câu trả lời có căn cứ.

Enum
ANSWER_STYLE_UNSPECIFIED Kiểu câu trả lời không xác định.
ABSTRACTIVE Phong cách ngắn gọn nhưng trừu tượng.
EXTRACTIVE Rất ngắn gọn và mang tính trích xuất.
VERBOSE Phong cách chi tiết bao gồm thông tin chi tiết bổ sung. Phản hồi có thể được định dạng dưới dạng một câu, đoạn văn, nhiều đoạn văn hoặc dấu đầu dòng, v.v.

InputFeedback

Ý kiến phản hồi liên quan đến dữ liệu đầu vào được dùng để trả lời câu hỏi, thay vì câu trả lời do mô hình tạo cho câu hỏi.

Trường
safetyRatings[] object (SafetyRating)

Điểm xếp hạng về độ an toàn của nội dung đầu vào. Mỗi danh mục chỉ có tối đa một mức phân loại.

blockReason enum (BlockReason)

Không bắt buộc. Nếu được đặt, dữ liệu đầu vào sẽ bị chặn và không có đề xuất nào được trả về. Diễn đạt lại câu lệnh.

Biểu diễn dưới dạng JSON
{
  "safetyRatings": [
    {
      object (SafetyRating)
    }
  ],
  "blockReason": enum (BlockReason)
}

BlockReason

Chỉ định lý do khiến đầu vào bị chặn.

Enum
BLOCK_REASON_UNSPECIFIED Giá trị mặc định. Giá trị này không được dùng.
SAFETY Nội dung đầu vào đã bị chặn vì lý do an toàn. Kiểm tra safetyRatings để biết danh mục an toàn nào đã chặn quảng cáo đó.
OTHER Đầu vào bị chặn vì những lý do khác.