0Pricing
AI Agents · Lección

Crear un RAG ingenuo con FAISS o Chroma

Escriba 40 líneas de Python: genere el embedding de la consulta, obtenga los fragmentos más cercanos, insértelos en el prompt y pregunte al LLM.

Crear un RAG ingenuo con FAISS o Chroma es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Un RAG de 40 líneas

Ahora ya tiene todas las piezas. Las ensamblaremos en un RAG ingenuo funcional sobre un conjunto pequeño de documentos.

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)

Alternativa con FAISS

Si quiere una solución totalmente local y sin servidor de base de datos, FAISS es aún más sencillo:

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]]

Limitaciones de este RAG ingenuo

  • Sin fragmentación: solo funciona con documentos cortos
  • Sin re-ranking
  • Sin filtrado por metadatos
  • Sin evaluación

Solucionaremos todo esto en cursos posteriores.

Coste por consulta

Por cada consulta que realice:

  • 1 llamada para generar el embedding (~0,00002 $)
  • 1 chat completion con ~500 tokens de contexto (~0,0001 $)

Total: aproximadamente una centésima de centavo por pregunta.

Ponga esto en producción e itere

Este RAG de 40 líneas ya supera a la mayoría de los chatbots sin contexto en preguntas y respuestas basadas en datos factuales sobre sus datos. Póngalo en producción, observe cómo los usuarios encuentran sus fallos y añada técnicas avanzadas donde más aporten.

Top-K del RAG ingenuo

¿Qué significa la recuperación «top-K»?

Resumen

Ha creado un RAG. A continuación, veremos las bases de datos vectoriales que permiten escalarlo más allá de un solo portátil.

Preguntas frecuentes

¿La lección «Crear un RAG ingenuo con FAISS o Chroma» es gratis?

Sí — el texto completo de «Crear un RAG ingenuo con FAISS o Chroma» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.

¿Qué aprenderé en «Crear un RAG ingenuo con FAISS o Chroma»?

Escriba 40 líneas de Python: genere el embedding de la consulta, obtenga los fragmentos más cercanos, insértelos en el prompt y pregunte al LLM. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Agents?

No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Crear un RAG ingenuo con FAISS o Chroma»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Agents?

Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Qué resuelve RAG (fecha de corte del conocimiento y alucinaciones)
  2. Estrategias de segmentación (fija, por frases y semántica)
  3. Indexar un conjunto de documentos
  4. Crear un RAG ingenuo con FAISS o Chroma
← Volver a AI Agents