Håndtering og filtrering af metadata
Lær at udtrække og anvende dokumentmetadata til mere præcis filtrering og målrettet hentning i Deres RAG-system.
Håndtering og filtrering af metadata er en gratis LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i LLM-applikationer i produktion (RAG + vektordatabase + caching), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset indeholder 4 lektioner i alt.
Styrk RAG med metadata
Når du bygger Retrieval Augmented Generation-systemer (RAG), handler det ikke kun om selve tekstindholdet. Information om indholdet, kaldet metadata, er utroligt effektiv.
Metadata hjælper os med at finde præcis det, vi har brug for, så vores RAG-svar bliver mere nøjagtige og bedre tilpasset brugerens hensigt.
Forstå metadata for dokumenter
Metadata er data, der giver oplysninger om andre data. I RAG-sammenhæng er det beskrivende oplysninger om dine dokumenter eller de mindre tekststykker, der er udledt af dem.
- Kilde: Hvor stammer dette dokument fra (f.eks. "internal-wiki", "news-feed")?
- Dato: Hvornår blev det oprettet eller senest opdateret?
- Forfatter: Hvem skrev det?
- Emne/kategori: Hvilket emne omhandler det?
- Sikkerhedsniveau: Er det offentligt, fortroligt eller internt?
Sådan forbedrer metadata informationssøgningen
Forestil dig, at du søger i et enormt bibliotek. I stedet for kun at søge efter nøgleord i *alle* bøger vil du måske søge efter "bøger udgivet efter 2020" eller "bøger af forfatter X inden for science fiction-genren."
Med metadatafiltrering kan dit RAG-system gøre det samme. Det begrænser søgeområdet til kun de mest relevante dokumenter, før den store sprogmodel (LLM) ser dem, hvilket forbedrer præcisionen og effektiviteten.
Udtræk metadata under indlæsning
Metadata følger ofte naturligt med dine dokumenter. En PDF-fil kan f.eks. indeholde en forfatter og en oprettelsesdato. Websider har URL-adresser og udgivelsesdatoer.
Du kan automatisk udtrække disse oplysninger under fasen for dataindlæsning. Nogle gange kan du endda generere nye metadata ud fra selve indholdet (f.eks. ved at bruge en LLM til at klassificere emnet).
Gem metadata sammen med vektorer
Når du opdeler dine dokumenter i tekststykker og opretter vektorindlejringer (numeriske repræsentationer), gemmer du disse vektorer i en vektordatabase.
Vektordatabaser giver dig også mulighed for at gemme de tilknyttede metadata lige ved siden af hver vektor. Denne forbindelse er afgørende for at kombinere semantisk søgning med præcis filtrering.
Kode: Enkel udtrækning af metadata
Her er et grundlæggende Python-eksempel, der viser, hvordan du kan udtrække simple metadata fra en ordbog, som repræsenterer et dokument.
I et virkeligt RAG-system ville dette ske som en del af din pipeline til dataindlæsning og forbehandling.
def extract_metadata(doc_content):
# Simulate extracting from a document object
# In a real-world scenario, you'd parse
# PDFs, HTML, etc., to get this info.
metadata = {
"source": doc_content.get("source", "unknown"),
"author": doc_content.get("author", "anonymous"),
"length_chars": len(doc_content.get("text", ""))
}
return metadata
if __name__ == "__main__":
document_data = {
"text": "This is a report about Q3 earnings.",
"source": "Financial Reports",
"author": "Jane Doe",
"date": "2023-10-26"
}
meta = extract_metadata(document_data)
print(f"Extracted Metadata: {meta}")Brug metadata til filtrering
Metadatafiltrering kan foregå på to primære måder i din RAG-pipeline:
- Forfiltrering: Filtrér dokumenter *før* en vektorsimilæritetssøgning. Det reducerer søgeområdet, så søgningen bliver hurtigere og mere relevant.
- Efterfiltrering: Udfør en bred vektorsøgning, og filtrér derefter *resultaterne* baseret på metadata. Det er nyttigt, når du først har brug for et bredt udvalg og derefter et forfinet resultat.
Kode: Forespørgsler med filtre
Denne konceptuelle Python-kode viser, hvordan en forespørgsel til en vektordatabase kan indeholde metadatafiltre. Ordbogen `filters` angiver betingelser, f.eks. at 'source' er lig med 'HR Policy'.
Vektordatabasen håndterer kombinationen af den semantiske søgning (via `query_vector`) og disse metadatabetingelser for at returnere præcise resultater.
# Simulate a vector database client
class VectorDBClient:
def query(self, query_vector, top_k, filters=None):
print(f"Searching for top {top_k} vectors...")
if filters:
print(f"Applying metadata filters: {filters}")
# In a real DB, this combines semantic search
# with metadata conditions to retrieve documents.
return ["doc_id_1", "doc_id_2"] # Simulated results
if __name__ == "__main__":
db_client = VectorDBClient()
user_query_vector = [0.1, 0.2, 0.3] # Placeholder embedding
# Example: Find documents from 'HR Policy' source
# and published after a certain date.
search_filters = {
"source": {"$eq": "HR Policy"},
"date": {"$gt": "2023-01-01"}
}
results = db_client.query(
query_vector=user_query_vector,
top_k=5,
filters=search_filters
)
print(f"Retrieved documents: {results}")Fordele ved metadatafiltrering
Ved at bruge metadatafiltrering effektivt opnår dit RAG-system betydelige fordele:
- Større relevans: Sikrer, at kun reelt relevante dokumenter tages i betragtning i LLM-modellens kontekst.
- Færre hallucinationer: LLM-modellen arbejder med en mere fokuseret og nøjagtig kontekst, hvilket fører til færre opdigtede svar.
- Lavere omkostninger: LLM-modellen behandler mindre irrelevante data, hvilket reducerer API-omkostningerne.
- Større kontrol: Implementér adgangskontrol (f.eks. "vis kun interne dokumenter til autoriserede brugere").
Hurtigt tjek af metadata
Du bygger et RAG-system til en virksomheds interne vidensbase. En bruger stiller et spørgsmål, og du vil sikre, at LLM-modellen kun bruger oplysninger fra dokumenter, der er markeret som "public" og udgivet inden for det seneste år.
Hvilken tilgang beskriver bedst, hvordan metadata hjælper med at opnå dette?
Opsummering: Få styr på metadata
Tillykke! Du har lært, hvordan metadata fungerer som et effektivt værktøj til at forbedre dit RAG-system.
- Metadata giver vigtig beskrivende kontekst om dine data.
- Det muliggør præcis filtrering, enten før eller efter vektorsøgningen.
- Det er afgørende for effektiv filtrering at gemme metadata sammen med vektorerne i din database.
- Effektiv håndtering af metadata fører til mere relevante, effektive og kontrollerede RAG-svar.
Dernæst kan du undersøge, hvordan du evaluerer og tester disse avancerede RAG-systemer for at opnå optimal ydeevne!
Lær LLM-applikationer i produktion (RAG + vektordatabase + caching) med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Håndtering og filtrering af metadata” gratis?
Ja — hele teksten til “Håndtering og filtrering af metadata” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset, skal du opgradere til CoddyKit PRO. LLM-applikationer i produktion (RAG + vektordatabase + caching)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Håndtering og filtrering af metadata”?
Lær at udtrække og anvende dokumentmetadata til mere præcis filtrering og målrettet hentning i Deres RAG-system. Du øver dig i LLM-applikationer i produktion (RAG + vektordatabase + caching) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på LLM-applikationer i produktion (RAG + vektordatabase + caching)?
Der kræves ingen tidligere erfaring. LLM-applikationer i produktion (RAG + vektordatabase + caching) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Håndtering og filtrering af metadata”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektion?
Ja. Alle LLM-applikationer i produktion (RAG + vektordatabase + caching)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Indlæsning af forskellige dokumentformater
- Kontekstbevidste strategier for tekstopdeling
- Håndtering og filtrering af metadata
- Rensning og deduplikering af kildedata