Rememberizer Docs
Sign inSign upContact us
Tiếng Việt
Tiếng Việt
  • Tại sao lại là Rememberizer?
  • Bối cảnh
    • Vector Embeddings và Cơ sở dữ liệu Vector là gì?
    • Thuật ngữ
    • Thuật ngữ Chuẩn hóa
  • Sử Dụng Cá Nhân
    • Bắt Đầu
      • Tìm Kiếm Kiến Thức Của Bạn
      • Truy Cập Bộ Lọc Kỷ Niệm
      • Kiến Thức Chung
      • Quản Lý Kiến Thức Nhúng Của Bạn
  • Tích hợp
    • Ứng dụng Rememberizer
    • Tích hợp Rememberizer Slack
    • Tích hợp Rememberizer Google Drive
    • Tích hợp Rememberizer Dropbox
    • Tích hợp Rememberizer Gmail
    • Tích hợp Rememberizer Memory
    • Máy chủ Rememberizer MCP
    • Quản lý ứng dụng bên thứ ba
  • Tài nguyên cho nhà phát triển
    • Tổng quan về nhà phát triển
  • Tùy Chọn Tích Hợp
    • Đăng ký và sử dụng API Keys
    • Đăng ký ứng dụng Rememberizer
    • Ủy quyền cho ứng dụng Rememberizer
    • Tạo một Rememberizer GPT
    • Tích hợp LangChain
    • Vector Stores
    • Talk-to-Slack Ứng Dụng Web Mẫu
  • Tích hợp Doanh Nghiệp
    • Mô Hình Tích Hợp Doanh Nghiệp
  • Tham khảo API
    • Trang chính tài liệu API
    • Xác thực
  • API cốt lõi
    • Tìm kiếm tài liệu theo sự tương đồng ngữ nghĩa
    • Lấy tài liệu
    • Lấy nội dung tài liệu
    • Lấy nội dung Slack
    • Ghi nhớ nội dung vào Rememberizer
  • Tài khoản & Cấu hình
    • Lấy chi tiết tài khoản người dùng hiện tại
    • Danh sách các tích hợp nguồn dữ liệu có sẵn
    • Memento
    • Lấy tất cả kiến thức công khai đã thêm
  • API Lưu Trữ Vector
    • Tài liệu Lưu Trữ Vector
    • Lấy thông tin lưu trữ vector
    • Lấy danh sách tài liệu trong Lưu Trữ Vector
    • Lấy thông tin tài liệu
    • Thêm tài liệu văn bản mới vào Lưu Trữ Vector
    • Tải lên tệp vào Lưu Trữ Vector
    • Cập nhật nội dung tệp trong Lưu Trữ Vector
    • Xóa một tài liệu trong Lưu Trữ Vector
    • Tìm kiếm tài liệu Lưu Trữ Vector theo sự tương đồng ngữ nghĩa
  • Tài nguyên bổ sung
    • Thông báo
      • Điều khoản sử dụng
      • Chính sách bảo mật
      • B2B
        • Về Reddit Agent
  • Phiên bản
    • Trang ghi chú phát hành
  • Các bản phát hành năm 2025
    • 25 tháng 4, 2025
    • 18 tháng 4, 2025
    • 11 tháng 4, 2025
    • 4 tháng 4, 2025
    • 28 tháng 3, 2025
    • 21 tháng 3, 2025
    • 14 tháng 3, 2025
    • 17 tháng 1, 2025
  • Các bản phát hành năm 2024
    • 27 tháng 12 năm 2024
    • 20 tháng 12 năm 2024
    • 13 tháng 12 năm 2024
    • 6 tháng 12 năm 2024
  • 29 Tháng 11, 2024
  • 22 Tháng 11, 2024
  • 15 Tháng 11, 2024
  • 8 Tháng 11, 2024
  • 1 Tháng 11, 2024
  • 25 tháng 10 năm 2024
  • 18 tháng 10 năm 2024
  • 11 tháng 10 năm 2024
  • 4 tháng 10 năm 2024
  • 27 Tháng 9, 2024
  • 20 Tháng 9, 2024
  • 13 Tháng 9, 2024
  • 16 tháng 8 năm 2024
  • 9 tháng 8 năm 2024
  • 2 tháng 8 năm 2024
  • 26 Tháng 7, 2024
  • 12 Tháng 7, 2024
  • 28 tháng 6 năm 2024
  • 14 tháng 6 năm 2024
  • Ngày 31 tháng 5 năm 2024
  • Ngày 17 tháng 5 năm 2024
  • Ngày 10 tháng 5 năm 2024
  • 26 tháng 4, 2024
  • 19 tháng 4, 2024
  • 12 tháng 4, 2024
  • 5 tháng 4, 2024
  • 25 tháng 3 năm 2024
  • 18 tháng 3 năm 2024
  • 11 tháng 3 năm 2024
  • 4 tháng 3 năm 2024
  • 26 tháng 2 năm 2024
  • 19 tháng 2 năm 2024
  • 12 tháng 2 năm 2024
  • 5 tháng 2 năm 2024
  • 29 tháng 1 năm 2024
  • 22 tháng 1 năm 2024
  • 15 tháng 1 năm 2024
  • Tài liệu LLM
    • Tài liệu sẵn sàng LLM của Rememberizer
Powered by GitBook
On this page
  1. API cốt lõi

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ô

PreviousXác thựcNextLấy tài liệu

Last updated 25 days ago

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"

Thay thế YOUR_JWT_TOKEN bằng mã thông báo JWT thực tế của bạn.

const searchDocuments = async (query, numResults = 5, from = null, to = null) => {
  const url = new URL('https://api.rememberizer.ai/api/v1/documents/search/');
  url.searchParams.append('q', query);
  url.searchParams.append('n', numResults);
  
  if (from) {
    url.searchParams.append('from', from);
  }
  
  if (to) {
    url.searchParams.append('to', to);
  }
  
  const response = await fetch(url.toString(), {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_JWT_TOKEN'
    }
  });
  
  const data = await response.json();
  console.log(data);
};

searchDocuments('How to integrate Rememberizer with custom applications', 5);

Thay thế YOUR_JWT_TOKEN bằng mã thông báo JWT thực tế của bạn.

import requests

def search_documents(query, num_results=5, from_date=None, to_date=None):
    headers = {
        "Authorization": "Bearer YOUR_JWT_TOKEN"
    }
    
    params = {
        "q": query,
        "n": num_results
    }
    
    if from_date:
        params["from"] = from_date
    
    if to_date:
        params["to"] = to_date
    
    response = requests.get(
        "https://api.rememberizer.ai/api/v1/documents/search/",
        headers=headers,
        params=params
    )
    
    data = response.json()
    print(data)

search_documents("How to integrate Rememberizer with custom applications", 5)

Thay thế YOUR_JWT_TOKEN bằng mã thông báo JWT thực tế của bạn.

require 'net/http'
require 'uri'
require 'json'

def search_documents(query, num_results=5, from_date=nil, to_date=nil)
  uri = URI('https://api.rememberizer.ai/api/v1/documents/search/')
  params = {
    q: query,
    n: num_results
  }
  
  params[:from] = from_date if from_date
  params[:to] = to_date if to_date
  
  uri.query = URI.encode_www_form(params)
  
  request = Net::HTTP::Get.new(uri)
  request['Authorization'] = 'Bearer YOUR_JWT_TOKEN'
  
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  
  response = http.request(request)
  data = JSON.parse(response.body)
  puts data
end

search_documents("How to integrate Rememberizer with custom applications", 5)

Thay thế YOUR_JWT_TOKEN bằng mã thông báo JWT thực tế của bạn.

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 (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 cao

  • Tăng lên n=10 hoặc cao hơn để có thông tin toàn diện hơn

  • Nế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 đây

  • Phâ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)
/**
 * Thực hiện tìm kiếm theo lô với nhiều truy vấn
 * 
 * @param {string[]} queries - Danh sách các chuỗi truy vấn tìm kiếm
 * @param {number} numResults - Số lượng kết quả trả về cho mỗi truy vấn
 * @param {number} batchSize - Số lượng truy vấn để xử lý song song
 * @param {number} delayBetweenBatches - Số mili giây để chờ giữa các lô
 * @returns {Promise<Array>} - Danh sách kết quả tìm kiếm cho mỗi truy vấn
 */
async function batchSearchDocuments(queries, numResults = 5, batchSize = 10, delayBetweenBatches = 1000) {
  const results = [];
  
  // Xử lý các truy vấn theo lô
  for (let i = 0; i < queries.length; i += batchSize) {
    const batch = queries.slice(i, i + batchSize);
    
    // Tạo một mảng các promise cho các yêu cầu đồng thời
    const batchPromises = batch.map(query => {
      const url = new URL('https://api.rememberizer.ai/api/v1/documents/search/');
      url.searchParams.append('q', query);
      url.searchParams.append('n', numResults);
      
      return fetch(url.toString(), {
        method: 'GET',
        headers: {
          'Authorization': 'Bearer YOUR_JWT_TOKEN'
        }
      }).then(response => response.json());
    });
    
    // Chờ tất cả các yêu cầu trong lô hoàn thành
    const batchResults = await Promise.all(batchPromises);
    results.push(...batchResults);
    
    // 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 + batchSize < queries.length) {
      await new Promise(resolve => setTimeout(resolve, delayBetweenBatches));
    }
  }
  
  return results;
}

// Ví dụ sử dụng
const 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
];

batchSearchDocuments(queries, 3, 5)
  .then(results => console.log(results))
  .catch(error => console.error('Lỗi trong tìm kiếm theo lô:', error));
require 'net/http'
require 'uri'
require 'json'
require 'concurrent'

# Thực hiện tìm kiếm theo lô với nhiều truy vấn
#
# @param queries [Array<String>] Danh sách các chuỗi truy vấn tìm kiếm
# @param num_results [Integer] Số lượng kết quả trả về cho mỗi truy vấn
# @param batch_size [Integer] Số lượng truy vấn để xử lý song song
# @param delay_between_batches [Float] Số giây để chờ giữa các lô
# @return [Array] Danh sách kết quả tìm kiếm cho mỗi truy vấn
def batch_search_documents(queries, num_results = 5, batch_size = 10, delay_between_batches = 1.0)
  results = []
  
  # Xử lý các truy vấn theo lô
  queries.each_slice(batch_size).with_index do |batch, batch_index|
    # Tạo một nhóm luồng cho các yêu cầu đồng thời
    pool = Concurrent::FixedThreadPool.new(batch_size)
    futures = []
    
    batch.each do |query|
      futures << Concurrent::Future.execute(executor: pool) do
        uri = URI('https://api.rememberizer.ai/api/v1/documents/search/')
        params = {
          q: query,
          n: num_results
        }
        
        uri.query = URI.encode_www_form(params)
        
        request = Net::HTTP::Get.new(uri)
        request['Authorization'] = 'Bearer YOUR_JWT_TOKEN'
        
        http = Net::HTTP.new(uri.host, uri.port)
        http.use_ssl = true
        
        response = http.request(request)
        JSON.parse(response.body)
      end
    end
    
    # Thu thập kết quả từ tất cả các luồng
    batch_results = futures.map(&:value)
    results.concat(batch_results)
    
    # Giới hạn tốc độ - tạm dừng giữa các lô để tránh bị giới hạn API
    if batch_index < (queries.length / batch_size.to_f).ceil - 1
      sleep(delay_between_batches)
    end
  end
  
  pool.shutdown
  results
end

# 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",
  "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, 3, 5)
puts results

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:

  1. 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.

  2. 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ô.

  3. 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ô.

  4. 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.

  5. 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.

Để hiểu sâu hơn về cách hoạt động của vector embeddings và tại sao phương pháp tìm kiếm này hiệu quả, hãy xem

Vector Embeddings và Cơ sở Dữ liệu Vector là gì?
get

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.

Query parameters
qstringOptional

Up to 400 words sentence for which you wish to find semantically similar chunks of knowledge.

nintegerOptional

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.

fromstring · date-timeOptional

Start of the time range for documents to be searched, in ISO 8601 format.

tostring · date-timeOptional

End of the time range for documents to be searched, in ISO 8601 format.

Responses
200
Successful retrieval of documents
application/json
400
Bad request
401
Unauthorized
404
Not found
500
Internal server error
get
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-05-23T16:38:28.668Z",
        "modified_time": "2025-05-23T16:38:28.668Z",
        "indexed_on": "2025-05-23T16:38:28.668Z",
        "integration": {
          "id": 1,
          "integration_type": "text"
        }
      },
      "matched_content": "text",
      "distance": 1
    }
  ]
}
  • GET/documents/search/
  • Ví dụ Yêu cầu
  • Tham số truy vấn
  • Định dạng Phản hồi
  • Mẹo Tối Ưu Hóa Tìm Kiếm
  • Đối với Trả Lời Câu Hỏi
  • Điều Chỉnh Số Lượng Kết Quả
  • Lọc Dữ Liệu Theo Thời Gian
  • Các hoạt động theo lô
  • Tìm kiếm theo lô
  • Cân nhắc về Hiệu suất