Đặc tả API Kiến thức Bên ngoài
Đặc tả API mà external knowledge service của bạn cần implement để tích hợp với ClickAI.
Mục lục
· [Authentication](#authentication)
· [Request](#request)
· [Response](#response)
· [Error Handling](#error-handling)
Authentication
ClickAI xác thực với external knowledge service bằng Bearer token trong Authorization header:
Authorization: Bearer {API_KEY}
API Key là credential bạn cung cấp khi đăng ký External Knowledge API trong ClickAI.
Request
Endpoint
POST {your-endpoint}/retrieval Content-Type: application/json Authorization: Bearer {API_KEY}
ClickAI tự động thêm /retrieval vào API Endpoint đã đăng ký. Ví dụ nếu bạn cấu hình endpoint là https://your-service.com, ClickAI sẽ gửi request đến https://your-service.com/retrieval.
Body
Trường
Kiểu
Bắt buộc
Mô tả
knowledge_id
string
✅
ID của knowledge source trong hệ thống bên ngoài
query
string
✅
Câu hỏi tìm kiếm từ người dùng
retrieval_setting
object
✅
Cấu hình retrieval (xem chi tiết bên dưới)
metadata_condition
object
❌
Điều kiện lọc metadata (xem chi tiết bên dưới)
retrieval_setting
Trường
Kiểu
Mô tả
top_k
integer
Số chunks tối đa trả về
score_threshold
float
Điểm similarity tối thiểu (0.0 - 1.0). Mặc định 0.0 (không lọc)
metadata_condition
Trường
Kiểu
Mô tả
logical_operator
string
Toán tử logic: and hoặc or. Mặc định and
conditions
array
Danh sách điều kiện lọc
Mỗi condition gồm:
Trường
Kiểu
Mô tả
name
string
Tên trường metadata
comparison_operator
string
Toán tử so sánh
value
any
Giá trị so sánh (không bắt buộc cho empty, not empty)
Supported Comparison Operators:
Loại dữ liệu
Operators
String
contains, not contains, start with, end with, is, is not, in, not in, empty, not empty
Number
=, ≠, >, <, ≥, ≤, empty, not empty
Date
before, after, is, empty, not empty
Example Request
{ "knowledge_id": "your-knowledge-id", "query": "ClickAI là gì?", "retrieval_setting": { "top_k": 3, "score_threshold": 0.5 } }
Example Request với Metadata Filtering:
{ "knowledge_id": "your-knowledge-id", "query": "Chính sách bảo hành", "retrieval_setting": { "top_k": 5, "score_threshold": 0.4 }, "metadata_condition": { "logical_operator": "and", "conditions": [ { "name": "category", "comparison_operator": "is", "value": "policy" }, { "name": "language", "comparison_operator": "is", "value": "vi" } ] } }
Response
Response phải chứa trường records dạng array. Nếu không có kết quả, trả về array rỗng:
{"records": []}
records
Mỗi record trong array records gồm:
Trường
Kiểu
Bắt buộc
Mô tả
content
string
✅
Nội dung text của chunk
score
float
✅
Điểm relevance/similarity (0.0 - 1.0)
title
string
❌
Tiêu đề tài liệu nguồn
metadata
object
✅
Metadata bổ sung. Phải là object {}, KHÔNG được là null
Example Response
{ "records": [ { "content": "ClickAI là nền tảng AI toàn diện cho doanh nghiệp.", "score": 0.98, "title": "gioi-thieu.txt", "metadata": { "path": "s3://clickai/gioi-thieu.txt", "description": "Tài liệu giới thiệu ClickAI" } }, { "content": "ClickAI cho phép xây dựng ứng dụng AI không cần code.", "score": 0.85, "title": "features.txt", "metadata": {} } ] }
Error Handling
Khi xảy ra lỗi, API nên trả về object chứa error_code và error_msg:
Trường
Kiểu
Mô tả
error_code
integer
Mã lỗi
error_msg
string
Thông điệp lỗi chi tiết
Các mã lỗi phổ biến:
Mã lỗi
Mô tả
1001
Invalid request format
1002
Authorization failed
2001
Knowledge not found
2002
Retrieval service unavailable
Example Error Response
{ "error_code": 1002, "error_msg": "Authorization failed. Please check your API key." }
📖 Trước: [Kết nối External Knowledge](./06-external-knowledge.md) · Tiếp: [Quản lý Documents & Chunks](./08-manage-documents-chunks.md)
Last updated