Tìm kiếm tài liệu theo sự tương đồng ngữ nghĩa
Điểm cuối tìm kiếm ngữ nghĩa với khả năng xử lý theo lô
Initiate a search operation with a query text of up to 400 words and receive the most semantically similar responses from the stored knowledge. For question-answering, convert your question into an ideal answer and submit it to receive similar real answers.
Up to 400 words sentence for which you wish to find semantically similar chunks of knowledge.
Number of semantically similar chunks of text to return. Use 'n=3' for up to 5, and 'n=10' for more information. If you do not receive enough information, consider trying again with a larger 'n' value.
Start of the time range for documents to be searched, in ISO 8601 format.
End of the time range for documents to be searched, in ISO 8601 format.
GET /api/v1/documents/search/ HTTP/1.1
Host: api.rememberizer.ai
Accept: */*
{
"data_sources": [
{
"name": "text",
"documents": 1
}
],
"matched_chunks": [
{
"document": {
"id": 18,
"document_id": "text",
"name": "text",
"type": "text",
"path": "text",
"url": "text",
"size": 1,
"created_time": "2025-07-04T03:07:31.021Z",
"modified_time": "2025-07-04T03:07:31.021Z",
"indexed_on": "2025-07-04T03:07:31.021Z",
"integration": {
"id": 1,
"integration_type": "text"
}
},
"matched_content": "text",
"distance": 1
}
]
}
Ví dụ Yêu cầu
curl -X GET \
"https://api.rememberizer.ai/api/v1/documents/search/?q=How%20to%20integrate%20Rememberizer%20with%20custom%20applications&n=5&from=2023-01-01T00:00:00Z&to=2023-12-31T23:59:59Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Tham số truy vấn
q
chuỗi
Bắt buộc. Văn bản truy vấn tìm kiếm (tối đa 400 từ).
n
số nguyên
Số lượng kết quả trả về. Mặc định: 3. Sử dụng giá trị cao hơn (ví dụ: 10) để có kết quả toàn diện hơn.
from
chuỗi
Bắt đầu khoảng thời gian cho các tài liệu được tìm kiếm, theo định dạng ISO 8601.
to
chuỗi
Kết thúc khoảng thời gian cho các tài liệu được tìm kiếm, theo định dạng ISO 8601.
prev_chunks
số nguyên
Số lượng đoạn trước đó để bao gồm cho ngữ cảnh. Mặc định: 2.
next_chunks
số nguyên
Số lượng đoạn tiếp theo để bao gồm cho ngữ cảnh. Mặc định: 2.
Định dạng Phản hồi
{
"data_sources": [
{
"name": "Google Drive",
"documents": 3
},
{
"name": "Slack",
"documents": 2
}
],
"matched_chunks": [
{
"document": {
"id": 12345,
"document_id": "1aBcD2efGhIjK3lMnOpQrStUvWxYz",
"name": "Tài liệu API của Rememberizer.pdf",
"type": "application/pdf",
"path": "/Documents/Rememberizer/Tài liệu API.pdf",
"url": "https://drive.google.com/file/d/1aBcD2efGhIjK3lMnOpQrStUvWxYz/view",
"size": 250000,
"created_time": "2023-05-10T14:30:00Z",
"modified_time": "2023-06-15T09:45:00Z",
"indexed_on": "2023-06-15T10:30:00Z",
"integration": {
"id": 101,
"integration_type": "google_drive"
}
},
"matched_content": "Để tích hợp Rememberizer với các ứng dụng tùy chỉnh, bạn có thể sử dụng quy trình xác thực OAuth2 để ủy quyền cho ứng dụng của bạn truy cập dữ liệu Rememberizer của người dùng. Khi đã được ủy quyền, ứng dụng của bạn có thể sử dụng các API của Rememberizer để tìm kiếm tài liệu, lấy nội dung và nhiều hơn nữa.",
"distance": 0.123
},
// ... nhiều khối phù hợp hơn
],
"message": "Tìm kiếm hoàn tất thành công",
"code": "success"
}
Mẹo Tối Ưu Hóa Tìm Kiếm
Đối với Trả Lời Câu Hỏi
Khi tìm kiếm câu trả lời cho một câu hỏi, hãy cố gắng diễn đạt truy vấn của bạn như thể đó là một câu trả lời lý tưởng. Ví dụ:
Thay vì: "Vector embedding là gì?" Hãy thử: "Vector embedding là một kỹ thuật chuyển đổi văn bản thành các vector số trong một không gian nhiều chiều."
Điều Chỉnh Số Lượng Kết Quả
Bắt đầu với
n=3
để có kết quả nhanh, có độ liên quan caoTăng lên
n=10
hoặc cao hơn để có thông tin toàn diện hơnNếu tìm kiếm trả về thông tin không đủ, hãy thử tăng tham số
n
Lọc Dữ Liệu Theo Thời Gian
Sử dụng các tham số from
và to
để tập trung vào các tài liệu từ các khoảng thời gian cụ thể:
Tài liệu gần đây: Đặt
from
thành một ngày gần đâyPhân tích lịch sử: Xác định một khoảng thời gian cụ thể
Loại trừ thông tin lỗi thời: Đặt một ngày
to
phù hợp
Các hoạt động theo lô
Để xử lý hiệu quả một khối lượng lớn các truy vấn tìm kiếm, Rememberizer hỗ trợ các hoạt động theo lô nhằm tối ưu hóa hiệu suất và giảm thiểu chi phí gọi API.
Tìm kiếm theo lô
import requests
import time
import json
from concurrent.futures import ThreadPoolExecutor
def batch_search_documents(queries, num_results=5, batch_size=10):
"""
Thực hiện tìm kiếm theo lô với nhiều truy vấn
Args:
queries: Danh sách các chuỗi truy vấn tìm kiếm
num_results: Số lượng kết quả trả về cho mỗi truy vấn
batch_size: Số lượng truy vấn để xử lý song song
Returns:
Danh sách các kết quả tìm kiếm cho mỗi truy vấn
"""
headers = {
"Authorization": "Bearer YOUR_JWT_TOKEN",
"Content-Type": "application/json"
}
results = []
# Xử lý các truy vấn theo lô
for i in range(0, len(queries), batch_size):
batch = queries[i:i+batch_size]
# Tạo một nhóm luồng để gửi yêu cầu song song
with ThreadPoolExecutor(max_workers=batch_size) as executor:
futures = []
for query in batch:
params = {
"q": query,
"n": num_results
}
future = executor.submit(
requests.get,
"https://api.rememberizer.ai/api/v1/documents/search/",
headers=headers,
params=params
)
futures.append(future)
# Thu thập kết quả khi chúng hoàn thành
for future in futures:
response = future.result()
results.append(response.json())
# Giới hạn tốc độ - tạm dừng giữa các lô để tránh bị giới hạn API
if i + batch_size < len(queries):
time.sleep(1)
return results
# Ví dụ sử dụng
queries = [
"Cách sử dụng OAuth với Rememberizer",
"Tùy chọn cấu hình cơ sở dữ liệu vector",
"Các thực tiễn tốt nhất cho tìm kiếm ngữ nghĩa",
# Thêm nhiều truy vấn nếu cần
]
results = batch_search_documents(queries, num_results=3, batch_size=5)
Cân nhắc về Hiệu suất
Khi triển khai các thao tác theo lô, hãy xem xét những thực tiễn tốt nhất sau:
Kích thước Lô Tối Ưu: Bắt đầu với kích thước lô từ 5-10 truy vấn và điều chỉnh dựa trên đặc điểm hiệu suất của ứng dụng của bạn.
Giới Hạn Tốc Độ: Bao gồm các khoảng thời gian giữa các lô để ngăn chặn việc giới hạn API. Một điểm khởi đầu tốt là 1 giây giữa các lô.
Xử Lý Lỗi: Triển khai xử lý lỗi mạnh mẽ để quản lý các yêu cầu không thành công trong các lô.
Quản Lý Tài Nguyên: Giám sát việc sử dụng tài nguyên phía khách, đặc biệt với kích thước lô lớn, để ngăn chặn việc tiêu thụ bộ nhớ quá mức.
Xử Lý Phản Hồi: Xử lý kết quả lô một cách không đồng bộ khi có thể để cải thiện trải nghiệm người dùng.
Đối với các ứng dụng có khối lượng lớn, hãy xem xét triển khai một hệ thống hàng đợi để quản lý hiệu quả số lượng lớn các yêu cầu tìm kiếm.
Điểm cuối này cung cấp khả năng tìm kiếm ngữ nghĩa mạnh mẽ trên toàn bộ cơ sở tri thức của bạn. Nó sử dụng các nhúng vector để tìm nội dung dựa trên ý nghĩa thay vì các khớp từ khóa chính xác.
Last updated