0Pricing
AI Agents · Lekcja

Budowanie prostego RAG z FAISS lub Chroma

Napisz 40 wierszy kodu w Pythonie: utwórz embedding zapytania, pobierz K najbliższych fragmentów, umieść je w prompcie i zapytaj LLM.

Budowanie prostego RAG z FAISS lub Chroma to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

RAG w 40 wierszach

Ma Pan już wszystkie elementy. Połączymy je w działający, naiwny system RAG dla niewielkiego zbioru dokumentów.

Step 1: Install

# pip install openai chromadb

Step 2: Sample Corpus

docs = [
    'Python is a high-level interpreted programming language created by Guido van Rossum in 1991.',
    'Pizza is a savory dish of Italian origin consisting of a round flat base of dough.',
    'The Eiffel Tower is a wrought-iron lattice tower in Paris, France, completed in 1889.',
    'NumPy is a Python library used for working with arrays and numerical computing.',
    'The Great Wall of China is a series of fortifications built across northern China.'
]
print(f"Loaded {len(docs)} documents")
for i, d in enumerate(docs):
    print(f"{i+1}. {d[:50]}...")

Step 3: Set Up Chroma

import chromadb
from openai import OpenAI

client = chromadb.Client()
collection = client.create_collection('demo')
openai_client = OpenAI()

Step 4: Embed and Store

embed_response = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=docs
)
vectors = [d.embedding for d in embed_response.data]

collection.add(
    ids=[f'd{i}' for i in range(len(docs))],
    embeddings=vectors,
    documents=docs
)

Step 5: Embed the Query

query = 'Tell me about Python programming'
query_vec = openai_client.embeddings.create(
    model='text-embedding-3-small',
    input=query
).data[0].embedding

Step 6: Retrieve Top-K

results = collection.query(
    query_embeddings=[query_vec],
    n_results=2
)
retrieved = results['documents'][0]
print(retrieved)
# ['Python is a high-level...', 'NumPy is a Python library...']

Step 7: Build the RAG Prompt

context = '\n'.join(f'- {chunk}' for chunk in retrieved)
prompt = f'''
Using only the context below, answer the question. If unknown, say so.

Context:
{context}

Question: {query}
'''

Step 8: Call the LLM

response = openai_client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[{'role': 'user', 'content': prompt}],
    temperature=0,
)
print(response.choices[0].message.content)

Alternatywa dla FAISS

Jeśli chce Pan korzystać wyłącznie z rozwiązania lokalnego, bez serwera bazy danych, FAISS jest jeszcze prostszy:

import faiss
import numpy as np

index = faiss.IndexFlatIP(1536)  # inner product, normalised vectors
index.add(np.array(vectors).astype('float32'))

D, I = index.search(np.array([query_vec]).astype('float32'), k=2)
retrieved = [docs[i] for i in I[0]]

Ograniczenia tego naiwnego RAG

  • Brak dzielenia na fragmenty — działa tylko w przypadku krótkich dokumentów
  • Brak ponownego sortowania
  • Brak filtrowania metadanych
  • Brak ewaluacji

Wszystkie te elementy naprawimy w kolejnych kursach.

Koszt zapytania

Dla każdego wysłanego zapytania:

  • 1 wywołanie tworzące osadzenie (około 0,00002 USD)
  • 1 uzupełnienie czatu z około 500 tokenami kontekstu (około 0,0001 USD)

Łącznie: około 1/100 centa za pytanie.

Wdróż to i iteruj

Ten 40-wierszowy RAG już przewyższa większość chatbotów bez kontekstu w odpowiadaniu na pytania faktograficzne dotyczące Państwa danych. Wdróż go, obserwuj, jak użytkownicy doprowadzają go do granic możliwości, a następnie dodawaj zaawansowane techniki tam, gdzie przyniosą największą korzyść.

Naiwny RAG Top-K

Co oznacza wyszukiwanie „top-K”?

Podsumowanie

Zbudowali Państwo system RAG. Teraz przyjrzymy się wektorowym bazom danych, które pozwalają skalować to rozwiązanie poza pojedynczy laptop.

Często zadawane pytania

Czy lekcja „Budowanie prostego RAG z FAISS lub Chroma” jest bezpłatna?

Tak — pełny tekst „Budowanie prostego RAG z FAISS lub Chroma” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Budowanie prostego RAG z FAISS lub Chroma”?

Napisz 40 wierszy kodu w Pythonie: utwórz embedding zapytania, pobierz K najbliższych fragmentów, umieść je w prompcie i zapytaj LLM. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Budowanie prostego RAG z FAISS lub Chroma”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Co rozwiązuje RAG (odcięcie wiedzy, halucynacje)
  2. Strategie dzielenia na fragmenty (stałe, zdaniowe, semantyczne)
  3. Indeksowanie zbioru dokumentów
  4. Budowanie prostego RAG z FAISS lub Chroma
← Powrót do AI Agents