Traditional Rag

Standard RAG pipeline with vector search and retrieval.

  1. Run: ./cookbook/run_pgvector.sh to start a postgres container with pgvector.
1"""
2Traditional Rag
3=============================
4
51. Run: `./cookbook/run_pgvector.sh` to start a postgres container with pgvector.
6"""
7
8from kern.agent import Agent
9from kern.knowledge.embedder.openai import OpenAIEmbedder
10from kern.knowledge.knowledge import Knowledge
11from kern.models.openai import OpenAIResponses
12from kern.vectordb.pgvector import PgVector, SearchType
13
14db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
15
16knowledge = Knowledge(
17 # Use PgVector as the vector database and store embeddings in the `ai.recipes` table
18 vector_db=PgVector(
19 table_name="recipes",
20 db_url=db_url,
21 search_type=SearchType.hybrid,
22 embedder=OpenAIEmbedder(id="text-embedding-3-small"),
23 ),
24)
25
26# ---------------------------------------------------------------------------
27# Create Agent
28# ---------------------------------------------------------------------------
29agent = Agent(
30 model=OpenAIResponses(id="gpt-5.2"),
31 knowledge=knowledge,
32 # Enable RAG by adding context from the `knowledge` to the user prompt.
33 add_knowledge_to_context=True,
34 # Set as False because Agents default to `search_knowledge=True`
35 search_knowledge=False,
36 markdown=True,
37)
38
39# ---------------------------------------------------------------------------
40# Run Agent
41# ---------------------------------------------------------------------------
42if __name__ == "__main__":
43 knowledge.insert(url="https://kern-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf")
44 agent.print_response(
45 "How do I make chicken and galangal in coconut milk soup", stream=True
46 )

Run the Example

1# Clone and setup repo
2git clone https://github.com/kern-ai/kern.git
3cd kern/cookbook/02_agents/07_knowledge
4
5# Create and activate virtual environment
6./scripts/demo_setup.sh
7source .venvs/demo/bin/activate
8
9# Optiona: Run PgVector (needs docker)
10./cookbook/scripts/run_pgvector.sh
11
12python traditional_rag.py