Pesquisar documentos por similaridade semântica
Endpoint de busca semântica com capacidades de processamento em lote
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-01T19:35:55.627Z",
"modified_time": "2025-07-01T19:35:55.627Z",
"indexed_on": "2025-07-01T19:35:55.627Z",
"integration": {
"id": 1,
"integration_type": "text"
}
},
"matched_content": "text",
"distance": 1
}
]
}
Exemplo de Solicitações
curl -X GET \
"https://api.rememberizer.ai/api/v1/documents/search/?q=Como%20integrar%20o%20Rememberizer%20com%20aplicações%20personalizadas&n=5&from=2023-01-01T00:00:00Z&to=2023-12-31T23:59:59Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Parâmetros da Consulta
q
string
Obrigatório. O texto da consulta de pesquisa (até 400 palavras).
n
integer
Número de resultados a retornar. Padrão: 3. Use valores mais altos (por exemplo, 10) para resultados mais abrangentes.
from
string
Início do intervalo de tempo para os documentos a serem pesquisados, no formato ISO 8601.
to
string
Fim do intervalo de tempo para os documentos a serem pesquisados, no formato ISO 8601.
prev_chunks
integer
Número de partes anteriores a incluir para contexto. Padrão: 2.
next_chunks
integer
Número de partes seguintes a incluir para contexto. Padrão: 2.
Formato de Resposta
{
"data_sources": [
{
"name": "Google Drive",
"documents": 3
},
{
"name": "Slack",
"documents": 2
}
],
"matched_chunks": [
{
"document": {
"id": 12345,
"document_id": "1aBcD2efGhIjK3lMnOpQrStUvWxYz",
"name": "Documentação da API Rememberizer.pdf",
"type": "application/pdf",
"path": "/Documents/Rememberizer/Documentação da 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": "Para integrar o Rememberizer com aplicativos personalizados, você pode usar o fluxo de autenticação OAuth2 para autorizar seu aplicativo a acessar os dados do Rememberizer de um usuário. Uma vez autorizado, seu aplicativo pode usar as APIs do Rememberizer para buscar documentos, recuperar conteúdo e mais.",
"distance": 0.123
},
// ... mais partes correspondentes
],
"message": "Busca concluída com sucesso",
"code": "success"
}
Dicas de Otimização de Busca
Para Respostas a Perguntas
Ao procurar uma resposta para uma pergunta, tente formular sua consulta como se fosse uma resposta ideal. Por exemplo:
Em vez de: "O que é incorporação vetorial?" Tente: "Incorporação vetorial é uma técnica que converte texto em vetores numéricos em um espaço de alta dimensão."
Ajustando a Contagem de Resultados
Comece com
n=3
para resultados rápidos e de alta relevânciaAumente para
n=10
ou mais para informações mais abrangentesSe a pesquisa retornar informações insuficientes, tente aumentar o parâmetro
n
Filtragem Baseada em Tempo
Use os parâmetros from
e to
para focar em documentos de períodos específicos:
Documentos recentes: Defina
from
para uma data recenteAnálise histórica: Especifique um intervalo de datas específico
Excluindo informações desatualizadas: Defina uma data
to
apropriada
Operações em Lote
Para lidar de forma eficiente com grandes volumes de consultas de pesquisa, o Rememberizer suporta operações em lote para otimizar o desempenho e reduzir a sobrecarga de chamadas à API.
Pesquisa em Lote
import requests
import time
import json
from concurrent.futures import ThreadPoolExecutor
def batch_search_documents(queries, num_results=5, batch_size=10):
"""
Realiza pesquisas em lote com várias consultas
Args:
queries: Lista de strings de consulta de pesquisa
num_results: Número de resultados a retornar por consulta
batch_size: Número de consultas a processar em paralelo
Returns:
Lista de resultados de pesquisa para cada consulta
"""
headers = {
"Authorization": "Bearer YOUR_JWT_TOKEN",
"Content-Type": "application/json"
}
results = []
# Processar consultas em lotes
for i in range(0, len(queries), batch_size):
batch = queries[i:i+batch_size]
# Criar um pool de threads para enviar solicitações em paralelo
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)
# Coletar resultados à medida que são concluídos
for future in futures:
response = future.result()
results.append(response.json())
# Limitação de taxa - pausar entre lotes para evitar estrangulamento da API
if i + batch_size < len(queries):
time.sleep(1)
return results
# Exemplo de uso
queries = [
"Como usar OAuth com Rememberizer",
"Opções de configuração do banco de dados vetorial",
"Melhores práticas para busca semântica",
# Adicione mais consultas conforme necessário
]
results = batch_search_documents(queries, num_results=3, batch_size=5)
Considerações de Desempenho
Ao implementar operações em lote, considere estas melhores práticas:
Tamanho de Lote Ideal: Comece com tamanhos de lote de 5-10 consultas e ajuste com base nas características de desempenho do seu aplicativo.
Limitação de Taxa: Inclua atrasos entre os lotes para evitar a limitação da API. Um bom ponto de partida é 1 segundo entre os lotes.
Tratamento de Erros: Implemente um tratamento de erros robusto para gerenciar solicitações falhadas dentro dos lotes.
Gerenciamento de Recursos: Monitore o uso de recursos do lado do cliente, particularmente com tamanhos de lote grandes, para evitar consumo excessivo de memória.
Processamento de Respostas: Processar os resultados do lote de forma assíncrona quando possível para melhorar a experiência do usuário.
Para aplicativos de alto volume, considere implementar um sistema de fila para gerenciar grandes números de solicitações de busca de forma eficiente.
Este endpoint fornece poderosas capacidades de busca semântica em toda a sua base de conhecimento. Ele utiliza embeddings vetoriais para encontrar conteúdo com base no significado, em vez de correspondências exatas de palavras-chave.
Last updated