RAG početni paket: odgovori iz dokumenata uz hibridnu pretragu i provjerene izvore

Od ovog početnog paketa krećemo kada izrađujemo sisteme koji odgovaraju na pitanja iz dokumenata i asistente za interno znanje. Obuhvata unos dokumenata, hibridnu pretragu, agenta koji odgovara samo iz vaših dokumenata i provjeru izvora koja odbija odgovor čim nešto ne može potvrditi.

Šta sadrži.

Kako dijelovi rade zajedno.

  1. 01

    Otpremanje

    Next.js front end šalje datoteku FastAPI back endu, koji je sprema u R2 i stavlja posao unosa u red.

  2. 02

    Unos

    Celery worker izvlači tekst, dijeli ga na dijelove uz njihovu poziciju u dokumentu, pravi embeddinge i upisuje ih u Postgres s full-text indeksom.

  3. 03

    Pretraga i odgovor

    Za svako pitanje agent poziva hibridnu pretragu, koja paralelno pokreće vektorsku pretragu i pretragu po ključnim riječima, spaja rangiranja i dodaje susjedne dijelove za kontekst.

  4. 04

    Provjera

    Prije nego što se odgovor vrati, validator provjerava svaki navedeni izvor prema dijelovima pronađenim u tom koraku. Neuspjele provjere se bilježe, a odgovor se zamjenjuje sigurnim.

Pogled u kod.

Pojednostavljena provjera izvora: svaki navedeni izvor koji se ne može povezati s pronađenim tekstom odbacuje cijeli odgovor.

Python
import re
from dataclasses import dataclass

MARKER = re.compile(r"\[(\d+)\]")

@dataclass
class Citation:
    index: int
    chunk_id: str
    excerpt: str

def normalise(text: str) -> str:
    return " ".join(text.split()).lower()

def validate(answer: str, citations: list[Citation], retrieved: dict[str, str]) -> bool:
    """Fail closed: no citations, or one we cannot verify, rejects the answer."""
    used = {int(n) for n in MARKER.findall(answer)}
    by_index = {c.index: c for c in citations}
    for n in used:
        c = by_index.get(n)
        if c is None or c.chunk_id not in retrieved:
            return False
        if normalise(c.excerpt) not in normalise(retrieved[c.chunk_id]):
            return False
    return bool(used)

Tehnologije.

Sve tehnologije

Saznajte kada ga objavimo.

Pripremamo za objavu: RAG početni paket. Poslat ćemo vam jedan e-mail kada bude dostupan, uz naše povremene bilješke.

Povremeni e-mailovi, odjava u bilo kojem trenutku. Pogledajte našu politiku privatnosti.

Započnite saradnju s Vantionom.