Tìm kiếm tài liệu Lưu Trữ Vector theo sự tương đồng ngữ nghĩa

Tìm kiếm tài liệu Vector Store với sự tương đồng ngữ nghĩa và các thao tác theo lô

Initiate a search operation with a query text and receive most semantically similar responses from the vector store.

Path parameters
vector-store-idstringRequired

The ID of the vector store.

Query parameters
qstringRequired

The search query text.

nintegerOptional

Number of chunks to return.

tnumberOptional

Matching threshold.

prev_chunksintegerOptional

Number of chunks before the matched chunk to include.

next_chunksintegerOptional

Number of chunks after the matched chunk to include.

Header parameters
x-api-keystringRequired

The API key for authentication.

Responses
200
Search results retrieved successfully.
application/json
get
GET /api/v1/vector-stores/{vector-store-id}/documents/search HTTP/1.1
Host: api.rememberizer.ai
x-api-key: text
Accept: */*
200

Search results retrieved successfully.

{
  "vector_store": {
    "id": "text",
    "name": "text"
  },
  "matched_chunks": [
    {
      "document": {
        "id": 1,
        "name": "text",
        "type": "text",
        "size": 1,
        "indexed_on": "2025-07-04T18:01:36.224Z",
        "vector_store": "text",
        "created": "2025-07-04T18:01:36.224Z",
        "modified": "2025-07-04T18:01:36.224Z"
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}

Ví dụ Yêu cầu

curl -X GET \
  "https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/search?q=How%20to%20integrate%20our%20product%20with%20third-party%20systems&n=5&prev_chunks=1&next_chunks=1" \
  -H "x-api-key: YOUR_API_KEY"

Thay thế YOUR_API_KEY bằng khóa API Vector Store thực tế của bạn và vs_abc123 bằng ID Vector Store của bạn.

Tham số Đường dẫn

Tham số
Loại
Mô tả

vector-store-id

chuỗi

Bắt buộc. ID của cửa hàng vector để tìm kiếm.

Tham số truy vấn

Tham số
Loại
Mô tả

q

chuỗi

Bắt buộc. Văn bản truy vấn tìm kiếm.

n

số nguyên

Số lượng kết quả trả về. Mặc định: 10.

t

số

Ngưỡng khớp. Mặc định: 0.7.

prev_chunks

số nguyên

Số lượng khối trước khối khớp để bao gồm. Mặc định: 0.

next_chunks

số nguyên

Số lượng khối sau khối khớp để bao gồm. Mặc định: 0.

Định dạng Phản hồi

{
  "vector_store": {
    "id": "vs_abc123",
    "name": "Tài liệu Sản phẩm"
  },
  "matched_chunks": [
    {
      "document": {
        "id": 1234,
        "name": "Hướng dẫn Tích hợp.pdf",
        "type": "application/pdf",
        "size": 250000,
        "indexed_on": "2023-06-15T10:30:00Z",
        "vector_store": "vs_abc123",
        "created": "2023-06-15T10:15:00Z",
        "modified": "2023-06-15T10:30:00Z"
      },
      "matched_content": "Sản phẩm của chúng tôi cung cấp nhiều tùy chọn tích hợp cho các hệ thống bên thứ ba. Phương pháp chính là thông qua API RESTful của chúng tôi, hỗ trợ xác thực OAuth2. Ngoài ra, bạn có thể sử dụng SDK của chúng tôi có sẵn trong Python, JavaScript và Java.",
      "distance": 0.123
    },
    // ... nhiều đoạn khớp hơn
  ]
}

Xác thực

Điểm cuối này yêu cầu xác thực bằng cách sử dụng khóa API trong tiêu đề x-api-key.

Phản hồi Lỗi

Mã Trạng Thái
Mô Tả

400

Yêu Cầu Không Hợp Lệ - Thiếu tham số bắt buộc hoặc định dạng không hợp lệ

401

Không Được Phép - Khóa API không hợp lệ hoặc bị thiếu

404

Không Tìm Thấy - Không tìm thấy Vector Store

500

Lỗi Máy Chủ Nội Bộ

Mẹo Tối Ưu Hóa Tìm Kiếm

Cửa Sổ Ngữ Cảnh

Sử dụng các tham số prev_chunksnext_chunks để kiểm soát lượng ngữ cảnh được bao gồm với mỗi kết quả:

  • Đặt cả hai thành 0 để có các kết quả chính xác mà không có ngữ cảnh

  • Đặt cả hai thành 1-2 để có các kết quả với ngữ cảnh tối thiểu

  • Đặt cả hai thành 3-5 để có các kết quả với ngữ cảnh đáng kể

Ngưỡng Khớp

Tham số t điều khiển mức độ nghiêm ngặt của việc lọc các kết quả khớp:

  • Giá trị cao hơn (ví dụ: 0.9) chỉ trả về các kết quả khớp rất gần

  • Giá trị thấp hơn (ví dụ: 0.5) trả về nhiều kết quả khớp với sự đa dạng lớn hơn

  • Mặc định (0.7) cung cấp một cách tiếp cận cân bằng

Các hoạt động theo lô

Đối với các ứng dụng có lưu lượng cao, Rememberizer hỗ trợ các hoạt động theo lô hiệu quả trên các kho vector. Những phương pháp này tối ưu hóa hiệu suất khi xử lý nhiều truy vấn tìm kiếm.

Triển Khai Tìm Kiếm Theo Lô

import requests
import time
import concurrent.futures

def batch_search_vector_store(vector_store_id, queries, num_results=5, batch_size=10):
    """
    Thực hiện tìm kiếm theo lô trên một kho vector
    
    Args:
        vector_store_id: ID của kho vector để tìm kiếm
        queries: Danh sách các chuỗi truy vấn tìm kiếm
        num_results: Số lượng kết quả cho mỗi truy vấn
        batch_size: Số lượng yêu cầu song song
        
    Returns:
        Danh sách các kết quả tìm kiếm
    """
    headers = {
        "x-api-key": "YOUR_API_KEY"
    }
    
    results = []
    
    # Xử lý theo lô để tránh làm quá tải API
    for i in range(0, len(queries), batch_size):
        batch_queries = queries[i:i+batch_size]
        
        with concurrent.futures.ThreadPoolExecutor(max_workers=batch_size) as executor:
            futures = []
            
            for query in batch_queries:
                params = {
                    "q": query,
                    "n": num_results,
                    "prev_chunks": 1,
                    "next_chunks": 1
                }
                
                # Gửi yêu cầu đến nhóm luồng
                future = executor.submit(
                    requests.get,
                    f"https://api.rememberizer.ai/api/v1/vector-stores/{vector_store_id}/documents/search",
                    headers=headers,
                    params=params
                )
                futures.append(future)
            
            # Thu thập kết quả từ tất cả các tương lai
            for future in futures:
                response = future.result()
                if response.status_code == 200:
                    results.append(response.json())
                else:
                    results.append({"error": f"Thất bại với mã trạng thái: {response.status_code}"})
        
        # Thêm độ trễ giữa các lô để tránh giới hạn tần suất
        if i + batch_size < len(queries):
            time.sleep(1)
    
    return results

# Ví dụ sử dụng
queries = [
    "Tích hợp với REST APIs",
    "Giao thức xác thực",
    "Cách triển khai lên môi trường sản xuất",
    "Kỹ thuật tối ưu hóa hiệu suất",
    "Thực hành tốt nhất về xử lý lỗi"
]

search_results = batch_search_vector_store("vs_abc123", queries, num_results=3, batch_size=5)

Tối ưu hóa hiệu suất cho các thao tác theo lô

Khi triển khai các thao tác theo lô cho việc tìm kiếm trong kho vector, hãy xem xét những thực tiễn tốt nhất sau:

  1. Kích thước lô tối ưu: Đối với hầu hết các ứng dụng, xử lý 5-10 truy vấn song song cung cấp sự cân bằng tốt giữa thông lượng và mức sử dụng tài nguyên.

  2. Nhận thức về giới hạn tốc độ: Bao gồm các cơ chế trì hoãn giữa các lô (thường là 1-2 giây) để tránh chạm vào giới hạn tốc độ API.

  3. Xử lý lỗi: Triển khai xử lý lỗi mạnh mẽ cho các truy vấn riêng lẻ có thể thất bại trong một lô.

  4. Quản lý kết nối: Đối với các ứng dụng có khối lượng lớn, triển khai kết nối pooling để giảm thiểu chi phí.

  5. Cấu hình thời gian chờ: Đặt thời gian chờ thích hợp cho mỗi yêu cầu để ngăn chặn các truy vấn chạy lâu làm tắc nghẽn toàn bộ lô.

  6. Xử lý kết quả: Xem xét việc xử lý kết quả một cách không đồng bộ khi chúng trở nên khả dụng thay vì chờ đợi tất cả kết quả.

  7. Giám sát: Theo dõi các chỉ số hiệu suất như thời gian phản hồi trung bình và tỷ lệ thành công để xác định cơ hội tối ưu hóa.

Đối với các ứng dụng sản xuất có khối lượng truy vấn rất cao, hãy xem xét việc triển khai một hệ thống hàng đợi với các quy trình làm việc để quản lý các lô lớn một cách hiệu quả.

Điểm cuối này cho phép bạn tìm kiếm kho vector của mình bằng cách sử dụng sự tương đồng ngữ nghĩa. Nó trả về các tài liệu có liên quan về mặt khái niệm đến truy vấn của bạn, ngay cả khi chúng không chứa các từ khóa chính xác. Điều này làm cho nó đặc biệt mạnh mẽ cho các truy vấn ngôn ngữ tự nhiên và trả lời câu hỏi.

Last updated