Dokumente nach semantischer Ähnlichkeit suchen
Semantischer Suchendpunkt mit Batch-Verarbeitungsfunktionen
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-06T02:18:52.177Z",
"modified_time": "2025-07-06T02:18:52.177Z",
"indexed_on": "2025-07-06T02:18:52.177Z",
"integration": {
"id": 1,
"integration_type": "text"
}
},
"matched_content": "text",
"distance": 1
}
]
}
Beispielanfragen
curl -X GET \
"https://api.rememberizer.ai/api/v1/documents/search/?q=Wie%20man%20Rememberizer%20mit%20benutzerdefinierten%20Anwendungen%20integriert&n=5&from=2023-01-01T00:00:00Z&to=2023-12-31T23:59:59Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Abfrageparameter
q
string
Erforderlich. Der Suchanfragetext (bis zu 400 Wörter).
n
integer
Anzahl der zurückzugebenden Ergebnisse. Standard: 3. Verwenden Sie höhere Werte (z. B. 10) für umfassendere Ergebnisse.
from
string
Beginn des Zeitraums für die zu durchsuchenden Dokumente im ISO 8601-Format.
to
string
Ende des Zeitraums für die zu durchsuchenden Dokumente im ISO 8601-Format.
prev_chunks
integer
Anzahl der vorhergehenden Abschnitte, die für den Kontext einbezogen werden sollen. Standard: 2.
next_chunks
integer
Anzahl der folgenden Abschnitte, die für den Kontext einbezogen werden sollen. Standard: 2.
Antwortformat
{
"data_sources": [
{
"name": "Google Drive",
"documents": 3
},
{
"name": "Slack",
"documents": 2
}
],
"matched_chunks": [
{
"document": {
"id": 12345,
"document_id": "1aBcD2efGhIjK3lMnOpQrStUvWxYz",
"name": "Rememberizer API Dokumentation.pdf",
"type": "application/pdf",
"path": "/Documents/Rememberizer/API Dokumentation.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": "Um Rememberizer mit benutzerdefinierten Anwendungen zu integrieren, können Sie den OAuth2-Authentifizierungsfluss verwenden, um Ihre Anwendung zu autorisieren, auf die Daten eines Benutzers von Rememberizer zuzugreifen. Nach der Autorisierung kann Ihre Anwendung die Rememberizer-APIs verwenden, um nach Dokumenten zu suchen, Inhalte abzurufen und mehr.",
"distance": 0.123
},
// ... weitere übereinstimmende Abschnitte
],
"message": "Suche erfolgreich abgeschlossen",
"code": "success"
}
Tipps zur Suchoptimierung
Für die Beantwortung von Fragen
Wenn Sie nach einer Antwort auf eine Frage suchen, versuchen Sie, Ihre Anfrage so zu formulieren, als wäre sie die ideale Antwort. Zum Beispiel:
Statt: "Was ist Vektor-Embedding?" Versuchen Sie: "Vektor-Embedding ist eine Technik, die Text in numerische Vektoren in einem hochdimensionalen Raum umwandelt."
Anpassung der Ergebnisanzahl
Beginnen Sie mit
n=3
für schnelle, hochrelevante ErgebnisseErhöhen Sie auf
n=10
oder höher für umfassendere InformationenWenn die Suche unzureichende Informationen zurückgibt, versuchen Sie, den
n
-Parameter zu erhöhen
Zeitbasierte Filterung
Verwenden Sie die Parameter from
und to
, um sich auf Dokumente aus bestimmten Zeiträumen zu konzentrieren:
Aktuelle Dokumente: Setzen Sie
from
auf ein aktuelles DatumHistorische Analyse: Geben Sie einen bestimmten Datumsbereich an
Ausschluss veralteter Informationen: Setzen Sie ein angemessenes
to
Datum
Batch-Operationen
Um große Mengen von Suchanfragen effizient zu bearbeiten, unterstützt Rememberizer Batch-Operationen, um die Leistung zu optimieren und die API-Aufrufkosten zu reduzieren.
Batch-Suche
import requests
import time
import json
from concurrent.futures import ThreadPoolExecutor
def batch_search_documents(queries, num_results=5, batch_size=10):
"""
Führen Sie Batch-Suchen mit mehreren Abfragen durch
Args:
queries: Liste von Suchabfrage-Strings
num_results: Anzahl der Ergebnisse, die pro Abfrage zurückgegeben werden sollen
batch_size: Anzahl der Abfragen, die parallel verarbeitet werden sollen
Returns:
Liste der Suchergebnisse für jede Abfrage
"""
headers = {
"Authorization": "Bearer YOUR_JWT_TOKEN",
"Content-Type": "application/json"
}
results = []
# Verarbeiten Sie Abfragen in Batches
for i in range(0, len(queries), batch_size):
batch = queries[i:i+batch_size]
# Erstellen Sie einen Thread-Pool, um Anfragen parallel zu senden
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)
# Ergebnisse sammeln, während sie abgeschlossen werden
for future in futures:
response = future.result()
results.append(response.json())
# Ratenbegrenzung - Pause zwischen Batches, um API-Drosselung zu vermeiden
if i + batch_size < len(queries):
time.sleep(1)
return results
# Beispielverwendung
queries = [
"Wie man OAuth mit Rememberizer verwendet",
"Konfigurationsoptionen für Vektordatenbanken",
"Best Practices für die semantische Suche",
# Fügen Sie bei Bedarf weitere Abfragen hinzu
]
results = batch_search_documents(queries, num_results=3, batch_size=5)
Leistungsüberlegungen
Bei der Implementierung von Batch-Operationen sollten Sie diese Best Practices berücksichtigen:
Optimale Batch-Größe: Beginnen Sie mit Batch-Größen von 5-10 Abfragen und passen Sie diese basierend auf den Leistungsmerkmalen Ihrer Anwendung an.
Ratenbegrenzung: Fügen Sie zwischen den Batches Verzögerungen ein, um API-Drosselung zu verhindern. Ein guter Ausgangspunkt sind 1 Sekunde zwischen den Batches.
Fehlerbehandlung: Implementieren Sie eine robuste Fehlerbehandlung, um fehlgeschlagene Anfragen innerhalb der Batches zu verwalten.
Ressourcenmanagement: Überwachen Sie die clientseitige Ressourcennutzung, insbesondere bei großen Batch-Größen, um übermäßigen Speicherverbrauch zu vermeiden.
Antwortverarbeitung: Verarbeiten Sie Batch-Ergebnisse asynchron, wenn möglich, um die Benutzererfahrung zu verbessern.
Für Anwendungen mit hohem Volumen sollten Sie in Betracht ziehen, ein Warteschlangensystem zu implementieren, um eine große Anzahl von Suchanfragen effizient zu verwalten.
Dieser Endpunkt bietet leistungsstarke semantische Suchfunktionen für Ihre gesamte Wissensdatenbank. Er verwendet Vektor-Embeddings, um Inhalte basierend auf der Bedeutung und nicht auf genauen Schlüsselwortübereinstimmungen zu finden.
Last updated