Vektordatabaser: Pinecone, Weaviate og pgvector · leksjon

Teknikker for spørringstransformasjon

Utforsk metoder for å omformulere eller utvide brukerspørringer for mer effektiv gjenfinning fra vektordatabasen.

Leksjon 1 av 412 trinn

Teknikker for spørringstransformasjon er en gratis leksjon i Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Vektordatabaser: Pinecone, Weaviate og pgvector, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.

Hva er spørringstransformasjon?

I Retrieval Augmented Generation (RAG) påvirker kvaliteten på informasjonen som hentes fra vektordatabasen, LLM-ens svar direkte. Noen ganger er den rå brukerforespørselen ikke ideell for informasjonsinnhenting.

Spørringstransformasjon er prosessen med å endre brukerens opprinnelige spørring slik at den blir mer effektiv ved søk i vektordatabasen.

Hvorfor opprinnelige spørringer ikke strekker til

Brukerspørringer kan være:

  • For korte eller vage: De mangler nok detaljer til presis informasjonsinnhenting.
  • Tvetydige: De kan tolkes på flere måter.
  • Dagligdagse: De bruker uformelt språk som ikke samsvarer med dokumentrepresentasjonene.
  • Komplekse: De stiller flere spørsmål samtidig.

Disse problemene fører til at irrelevant kontekst hentes, noe som påvirker kvaliteten på RAG.

Å bygge bro over det semantiske gapet

Vektordatabasen lagrer informasjon som numeriske vektorer (vektorreprasentasjoner). For effektiv informasjonsinnhenting må spørringens representasjon være semantisk lik representasjonene til relevante dokumenter.

Spørringstransformasjon hjelper ved å:

  • Legge til mer kontekst.
  • Presisere hensikten.
  • Tilpasse spørringstermer til dokumentenes ordforråd.

Dette «bygger bro over det semantiske gapet» og gir bedre treff.

Teknikk 1: Spørringsutvidelse

Spørringsutvidelse innebærer å legge til flere termer eller uttrykk i den opprinnelige spørringen. Dette gjør søket bredere og øker sjansen for å finne relevante dokumenter.

Vanlige metoder omfatter:

  • Å legge til synonymer.
  • Å inkludere relaterte konsepter.
  • Å bruke domenespesifikk fagsjargong.

Denne teknikken er spesielt nyttig for korte og vage spørringer.

Enkel nøkkelordsutvidelse

Her er et grunnleggende Python-eksempel der vi utvider en spørring manuelt med relaterte termer. I virkelige systemer kan en LLM generere disse utvidelsene automatisk.

def expand_query_keywords(query):
    expansion_map = {
        "AI": ["artificial intelligence", "machine learning", "deep learning"],
        "vector DB": ["vector database", "embedding store", "Pinecone", "Weaviate"]
    }
    expanded_terms = []
    for keyword, additions in expansion_map.items():
        if keyword.lower() in query.lower():
            expanded_terms.extend(additions)
    
    return query + " " + " ".join(expanded_terms)

# Example usage
user_query = "What is AI?"
transformed_query = expand_query_keywords(user_query)
print(f"Original: {user_query}")
print(f"Transformed: {transformed_query}")

Teknikk 2: Omskriving og omformulering av spørringer

Omskriving av spørringer (eller omformulering) bruker en LLM til å generere en helt ny spørring som er tydeligere, mer spesifikk eller bedre tilpasset det forventede innholdet i dokumentene.

Dette er særlig effektivt for:

  • Tvetydige spørsmål.
  • Samtalebaserte spørringer.
  • Spørringer som indirekte viser til tidligere innlegg i en samtale.

Omskriving med en LLM

Dette Python-utdraget viser hvordan De kan bruke en LLM til å omformulere en brukerspørring. I en virkelig applikasjon ville llm_api_call kommunisere med modeller som OpenAI GPT eller en lokal LLM.

import os

# Placeholder for an actual LLM API call
def llm_api_call(prompt):
    # For demonstration, we'll simulate a response.
    if "rephrase" in prompt.lower() and "vector databases" in prompt.lower():
        return "Explain the core components and function of vector databases."
    return "Could not rephrase query effectively."

def rephrase_query_with_llm(original_query):
    prompt = f"Rephrase the following user query to be more effective for searching a technical documentation database about vector databases: '{original_query}'"
    rephrased_query = llm_api_call(prompt)
    return rephrased_query

# Example usage
user_query = "Tell me about vector DBs."
transformed_query = rephrase_query_with_llm(user_query)
print(f"Original: {user_query}")
print(f"Transformed: {transformed_query}")

Teknikk 3: Generering av delspørringer

Når en bruker stiller et komplekst spørsmål som omfatter flere aspekter, kan én enkelt spørring være utilstrekkelig til å hente all nødvendig informasjon. Generering av delspørringer deler en kompleks spørring opp i flere enklere og mer fokuserte spørringer.

Hver delspørring kan deretter brukes til å hente bestemte kontekstbiter, som så kombineres for LLM-en.

Generering av delspørringer

Her er et konseptuelt Python-eksempel på generering av delspørringer. En LLM brukes ofte til å analysere den opprinnelige spørringen og identifisere separate spørsmål.

import os

# Placeholder for an actual LLM API call
def llm_api_call_sub_query(prompt):
    if "break down" in prompt.lower() and "Pinecone" in prompt.lower():
        return ["What is Pinecone?", "How do I upsert data into Pinecone?", "What is a Pinecone index?"]
    return ["Could not break down query."]

def generate_sub_queries(original_query):
    prompt = f"Break down the following complex user query into a list of simpler, distinct questions for retrieving information from a vector database: '{original_query}'"
    sub_queries = llm_api_call_sub_query(prompt)
    return sub_queries

# Example usage
user_query = "How do I use Pinecone for storing and querying embeddings?"
transformed_queries = generate_sub_queries(user_query)
print(f"Original: {user_query}")
print(f"Sub-queries: {transformed_queries}")

Hybride og kontekstuelle transformasjoner

Effektiv RAG kombinerer ofte disse teknikkene. De kan først omformulere en spørring og deretter utvide den. Vurder også samtalekonteksten.

  • Bevissthet om flere samtalerunder: Bruk tidligere innlegg til å berike den gjeldende spørringen.
  • Hybride tilnærminger: Kombiner transformasjoner med tradisjonelt nøkkelordsøk.

Eksperimentering er avgjørende for å finne ut hva som fungerer best for dataene Deres!

Forstå spørringstransformasjon

Hvilket av scenarioene nedenfor vil ha STØRST nytte av å bruke spørringsutvidelse som transformasjonsteknikk?

Oppsummering: Transformasjon av spørringer

De har lært at spørringstransformasjon er avgjørende for å forbedre RAG-ytelsen ved å gjøre brukerspørringer mer effektive for innhenting fra vektordatabasen.

  • Spørringsutvidelse: Legger til termer for å utvide søket.
  • Omskriving av spørringer: Omformulerer spørringer for tydelighet og spesifisitet.
  • Generering av delspørringer: Deler opp komplekse spørringer.

Når De behersker disse teknikkene, vil De forbedre kvaliteten på RAG-applikasjonene Deres betydelig!

Gratis å komme i gang

Lær deg Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Teknikker for spørringstransformasjon» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Vektordatabaser: Pinecone, Weaviate og pgvector, inkludert «Teknikker for spørringstransformasjon», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.

Hva lærer jeg i «Teknikker for spørringstransformasjon»?

Utforsk metoder for å omformulere eller utvide brukerspørringer for mer effektiv gjenfinning fra vektordatabasen. Du øver på Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Vektordatabaser: Pinecone, Weaviate og pgvector?

Ingen tidligere erfaring er nødvendig. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Teknikker for spørringstransformasjon»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Vektordatabaser: Pinecone, Weaviate og pgvector-leksjonen?

Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Teknikker for spørringstransformasjon
  2. RAG-pipelines i flere trinn
  3. Evaluere RAG-systemytelse
  4. Omrangere hentede resultater
← Tilbake til Vektordatabaser: Pinecone, Weaviate og pgvector