Nach Dokumenten im Vektor-Speicher anhand semantischer Ähnlichkeit suchen
Durchsuchen Sie Vector Store-Dokumente mit semantischer Ähnlichkeit und Batch-Operationen
Initiate a search operation with a query text and receive most semantically similar responses from the vector store.
The ID of the vector store.
The search query text.
Number of chunks to return.
Matching threshold.
Number of chunks before the matched chunk to include.
Number of chunks after the matched chunk to include.
The API key for authentication.
GET /api/v1/vector-stores/{vector-store-id}/documents/search HTTP/1.1
Host: api.rememberizer.ai
x-api-key: text
Accept: */*
Search results retrieved successfully.
{
"vector_store": {
"id": "text",
"name": "text"
},
"matched_chunks": [
{
"document": {
"id": 1,
"name": "text",
"type": "text",
"size": 1,
"indexed_on": "2025-06-29T11:23:41.029Z",
"vector_store": "text",
"created": "2025-06-29T11:23:41.029Z",
"modified": "2025-06-29T11:23:41.029Z"
},
"matched_content": "text",
"distance": 1
}
]
}
Beispielanfragen
curl -X GET \
"https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/search?q=Wie%20integrieren%20wir%20unser%20Produkt%20mit%20Drittanbieter-Systemen&n=5&prev_chunks=1&next_chunks=1" \
-H "x-api-key: YOUR_API_KEY"
Pfadparameter
vector-store-id
string
Erforderlich. Die ID des Vektor-Speichers, in dem gesucht werden soll.
Abfrageparameter
q
Zeichenfolge
Erforderlich. Der Suchabfragetext.
n
Ganzzahl
Anzahl der zurückzugebenden Ergebnisse. Standard: 10.
t
Zahl
Übereinstimmungsschwelle. Standard: 0.7.
prev_chunks
Ganzzahl
Anzahl der Chunks vor dem übereinstimmenden Chunk, die einbezogen werden sollen. Standard: 0.
next_chunks
Ganzzahl
Anzahl der Chunks nach dem übereinstimmenden Chunk, die einbezogen werden sollen. Standard: 0.
Antwortformat
{
"vector_store": {
"id": "vs_abc123",
"name": "Produktdokumentation"
},
"matched_chunks": [
{
"document": {
"id": 1234,
"name": "Integrationshandbuch.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": "Unser Produkt bietet mehrere Integrationsmöglichkeiten für Drittanbietersysteme. Die primäre Methode erfolgt über unsere RESTful API, die OAuth2-Authentifizierung unterstützt. Darüber hinaus können Sie unser SDK verwenden, das in Python, JavaScript und Java verfügbar ist.",
"distance": 0.123
},
// ... weitere übereinstimmende Abschnitte
]
}
Authentifizierung
Dieser Endpunkt erfordert eine Authentifizierung mit einem API-Schlüssel im x-api-key
-Header.
Fehlerantworten
400
Ungültige Anfrage - Fehlende erforderliche Parameter oder ungültiges Format
401
Nicht autorisiert - Ungültiger oder fehlender API-Schlüssel
404
Nicht gefunden - Vektor-Speicher nicht gefunden
500
Interner Serverfehler
Tipps zur Suchoptimierung
Kontextfenster
Verwenden Sie die Parameter prev_chunks
und next_chunks
, um zu steuern, wie viel Kontext mit jedem Treffer einbezogen wird:
Setzen Sie beide auf 0 für präzise Übereinstimmungen ohne Kontext
Setzen Sie beide auf 1-2 für Übereinstimmungen mit minimalem Kontext
Setzen Sie beide auf 3-5 für Übereinstimmungen mit erheblichem Kontext
Übereinstimmungsgrenze
Der t
-Parameter steuert, wie streng Übereinstimmungen gefiltert werden:
Höhere Werte (z. B. 0,9) geben nur sehr enge Übereinstimmungen zurück
Niedrigere Werte (z. B. 0,5) geben mehr Übereinstimmungen mit größerer Vielfalt zurück
Der Standardwert (0,7) bietet einen ausgewogenen Ansatz
Batch-Operationen
Für Anwendungen mit hohem Durchsatz unterstützt Rememberizer effiziente Batch-Operationen auf Vektorspeichern. Diese Methoden optimieren die Leistung bei der Verarbeitung mehrerer Suchanfragen.
Batch-Suchimplementierung
import requests
import time
import concurrent.futures
def batch_search_vector_store(vector_store_id, queries, num_results=5, batch_size=10):
"""
Führen Sie Batch-Suchen gegen einen Vektorstore durch
Args:
vector_store_id: ID des Vektorstores, der durchsucht werden soll
queries: Liste von Suchanfragen
num_results: Anzahl der Ergebnisse pro Anfrage
batch_size: Anzahl der parallelen Anfragen
Returns:
Liste der Suchergebnisse
"""
headers = {
"x-api-key": "YOUR_API_KEY"
}
results = []
# In Batches verarbeiten, um die API nicht zu überlasten
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
}
# Die Anfrage an den Thread-Pool übermitteln
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)
# Ergebnisse von allen Futures sammeln
for future in futures:
response = future.result()
if response.status_code == 200:
results.append(response.json())
else:
results.append({"error": f"Fehlgeschlagen mit Statuscode: {response.status_code}"})
# Eine Verzögerung zwischen den Batches hinzufügen, um eine Ratenbegrenzung zu vermeiden
if i + batch_size < len(queries):
time.sleep(1)
return results
# Beispielverwendung
queries = [
"Integration mit REST-APIs",
"Authentifizierungsprotokolle",
"Wie man in die Produktion deployt",
"Techniken zur Leistungsoptimierung",
"Best Practices für die Fehlerbehandlung"
]
search_results = batch_search_vector_store("vs_abc123", queries, num_results=3, batch_size=5)
Leistungsoptimierung für Batch-Operationen
Bei der Implementierung von Batch-Operationen für Suchen im Vektor-Store sollten Sie diese Best Practices berücksichtigen:
Optimale Batch-Größe: Für die meisten Anwendungen bietet die Verarbeitung von 5-10 Abfragen parallel ein gutes Gleichgewicht zwischen Durchsatz und Ressourcennutzung.
Bewusstsein für Ratenbegrenzung: Fügen Sie Verzögerungsmechanismen zwischen den Batches (typischerweise 1-2 Sekunden) hinzu, um zu vermeiden, dass die API-Ratenlimits überschritten werden.
Fehlerbehandlung: Implementieren Sie eine robuste Fehlerbehandlung für einzelne Abfragen, die innerhalb eines Batches fehlschlagen können.
Verbindungsmanagement: Für Anwendungen mit hohem Volumen implementieren Sie Connection Pooling, um den Overhead zu reduzieren.
Timeout-Konfiguration: Setzen Sie angemessene Timeouts für jede Anfrage, um zu verhindern, dass lang laufende Abfragen das gesamte Batch blockieren.
Ergebnisverarbeitung: Ziehen Sie in Betracht, Ergebnisse asynchron zu verarbeiten, sobald sie verfügbar sind, anstatt auf alle Ergebnisse zu warten.
Überwachung: Verfolgen Sie Leistungskennzahlen wie die durchschnittliche Antwortzeit und Erfolgsquoten, um Optimierungsmöglichkeiten zu identifizieren.
Für Produktionsanwendungen mit sehr hohen Abfragevolumina sollten Sie in Betracht ziehen, ein Warteschlangensystem mit Arbeitsprozessen zu implementieren, um große Batches effizient zu verwalten.
Dieser Endpunkt ermöglicht es Ihnen, Ihren Vektor-Store mithilfe von semantischer Ähnlichkeit zu durchsuchen. Er gibt Dokumente zurück, die konzeptionell mit Ihrer Abfrage verwandt sind, auch wenn sie nicht die genauen Schlüsselwörter enthalten. Dies macht ihn besonders leistungsfähig für natürliche Sprachabfragen und Fragenbeantwortung.
Last updated