Søg efter Vektorbutik dokumenter efter semantisk lighed
Søg i Vector Store-dokumenter med semantisk lighed og batchoperationer
Eksempelanmodninger
curl -X GET \
"https://api.rememberizer.ai/api/v1/vector-stores/vs_abc123/documents/search?q=Hvordan%20integrerer%20vi%20vores%20produkt%20med%20tredjeparts%20systemer&n=5&prev_chunks=1&next_chunks=1" \
-H "x-api-key: DIN_API_NØGLE"
Sti Parametre
vector-store-id
string
Påkrævet. ID'et på vektorbutikken, der skal søges i.
Forespørgselsparametre
q
string
Påkrævet. Den søgeforespørgselstekst.
n
integer
Antal resultater der skal returneres. Standard: 10.
t
number
Matchende tærskel. Standard: 0.7.
prev_chunks
integer
Antal chunks før den matchede chunk der skal inkluderes. Standard: 0.
next_chunks
integer
Antal chunks efter den matchede chunk der skal inkluderes. Standard: 0.
Responsformat
{
"vector_store": {
"id": "vs_abc123",
"name": "Produktdokumentation"
},
"matched_chunks": [
{
"document": {
"id": 1234,
"name": "Integrationsguide.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": "Vores produkt tilbyder flere integrationsmuligheder for tredjepartssystemer. Den primære metode er gennem vores RESTful API, som understøtter OAuth2-godkendelse. Derudover kan du bruge vores SDK, der er tilgængelig i Python, JavaScript og Java.",
"distance": 0.123
},
// ... flere matchede dele
]
}
Godkendelse
Denne endpoint kræver godkendelse ved hjælp af en API-nøgle i x-api-key
headeren.
Fejlrespons
400
Dårlig anmodning - Manglende nødvendige parametre eller ugyldigt format
401
Uautoriseret - Ugyldig eller manglende API-nøgle
404
Ikke fundet - Vektorbutik ikke fundet
500
Intern serverfejl
Søgeoptimeringstips
Kontekstvinduer
Brug prev_chunks
og next_chunks
parametrene til at styre, hvor meget kontekst der inkluderes med hver match:
Sæt begge til 0 for præcise matches uden kontekst
Sæt begge til 1-2 for matches med minimal kontekst
Sæt begge til 3-5 for matches med betydelig kontekst
Matchende Tærskel
t
parameteret styrer, hvor strengt matches filtreres:
Højere værdier (f.eks. 0.9) returnerer kun meget tætte matches
Lavere værdier (f.eks. 0.5) returnerer flere matches med større variation
Standardværdien (0.7) giver en afbalanceret tilgang
Batch Operationer
For applikationer med høj gennemstrømning understøtter Rememberizer effektive batchoperationer på vektorbutikker. Disse metoder optimerer ydeevnen, når der behandles flere søgeforespørgsler.
Batch Search Implementation
import requests
import time
import concurrent.futures
def batch_search_vector_store(vector_store_id, queries, num_results=5, batch_size=10):
"""
Udfør batch-søgninger mod et vektorlager
Args:
vector_store_id: ID på det vektorlager, der skal søges i
queries: Liste over søgestrenge
num_results: Antal resultater pr. søgning
batch_size: Antal parallelle anmodninger
Returns:
Liste over søgeresultater
"""
headers = {
"x-api-key": "YOUR_API_KEY"
}
results = []
# Behandl i batches for at undgå at overbelaste API'et
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
}
# Indsend anmodningen til trådpoolen
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)
# Indsaml resultater fra alle futures
for future in futures:
response = future.result()
if response.status_code == 200:
results.append(response.json())
else:
results.append({"error": f"Fejl med statuskode: {response.status_code}"})
# Tilføj en forsinkelse mellem batches for at undgå hastighedsbegrænsning
if i + batch_size < len(queries):
time.sleep(1)
return results
# Eksempel på brug
forespørgsler = [
"Integration med REST API'er",
"Godkendelsesprotokoller",
"Hvordan man implementerer i produktion",
"Ydelsesoptimeringsteknikker",
"Bedste praksis for fejlhåndtering"
]
søgeresultater = batch_search_vector_store("vs_abc123", forespørgsler, num_results=3, batch_size=5)
Ydelsesoptimering for Batch-operationer
Når du implementerer batch-operationer til søgninger i vektorbutikker, skal du overveje disse bedste praksisser:
Optimal Batch-størrelse: For de fleste applikationer giver behandling af 5-10 forespørgsler parallelt en god balance mellem gennemløb og ressourceforbrug.
Bevidsthed om Ratebegrænsning: Inkluder forsinkelsesmekanismer mellem batches (typisk 1-2 sekunder) for at undgå at ramme API'ens ratebegrænsninger.
Fejlhåndtering: Implementer robust fejlhåndtering for individuelle forespørgsler, der måtte fejle inden for en batch.
Forbindelsesstyring: For applikationer med høj volumen, implementer forbindelsespulje for at reducere overhead.
Timeout-konfiguration: Sæt passende timeouts for hver anmodning for at forhindre, at langvarige forespørgsler blokerer hele batchen.
Resultatbehandling: Overvej at behandle resultater asynkront, efterhånden som de bliver tilgængelige, i stedet for at vente på alle resultater.
Overvågning: Spor ydelsesmetrikker som gennemsnitlig svartid og succesrater for at identificere optimeringsmuligheder.
For produktionsapplikationer med meget høje forespørgselsvolumener, overvej at implementere et køsystem med arbejdere for effektivt at håndtere store batches.
Denne endpoint giver dig mulighed for at søge i din vektorbutik ved hjælp af semantisk lighed. Den returnerer dokumenter, der er konceptuelt relateret til din forespørgsel, selvom de ikke indeholder de nøjagtige nøgleord. Dette gør det særligt kraftfuldt til naturlige sprogforespørgsler og spørgsmålssvar.
Last updated