Rag Custom Embeddings

This cookbook is an implementation of Agentic RAG using Sentence Transformer Reranker with multilingual data.

1"""
2Rag Custom Embeddings
3=============================
4
5This cookbook is an implementation of Agentic RAG using Sentence Transformer Reranker with multilingual data.
6"""
7
8from kern.agent import Agent
9from kern.knowledge.embedder.sentence_transformer import SentenceTransformerEmbedder
10from kern.knowledge.knowledge import Knowledge
11from kern.knowledge.reranker.sentence_transformer import SentenceTransformerReranker
12from kern.models.openai import OpenAIResponses
13from kern.vectordb.pgvector import PgVector
14
15search_results = [
16 "Organic skincare for sensitive skin with aloe vera and chamomile.",
17 "New makeup trends focus on bold colors and innovative techniques",
18 "Bio-Hautpflege für empfindliche Haut mit Aloe Vera und Kamille",
19 "Neue Make-up-Trends setzen auf kräftige Farben und innovative Techniken",
20 "Cuidado de la piel orgánico para piel sensible con aloe vera y manzanilla",
21 "Las nuevas tendencias de maquillaje se centran en colores vivos y técnicas innovadoras",
22 "针对敏感肌专门设计的天然有机护肤产品",
23 "新的化妆趋势注重鲜艳的颜色和创新的技巧",
24 "敏感肌のために特別に設計された天然有機スキンケア製品",
25 "新しいメイクのトレンドは鮮やかな色と革新的な技術に焦点を当てています",
26]
27
28knowledge = Knowledge(
29 vector_db=PgVector(
30 db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
31 table_name="sentence_transformer_rerank_docs",
32 embedder=SentenceTransformerEmbedder(
33 id="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2"
34 ),
35 reranker=SentenceTransformerReranker(model="BAAI/bge-reranker-v2-m3"),
36 ),
37)
38
39for result in search_results:
40 knowledge.insert(
41 text_content=result,
42 metadata={
43 "source": "search_results",
44 },
45 )
46
47
48# ---------------------------------------------------------------------------
49# Create Agent
50# ---------------------------------------------------------------------------
51agent = Agent(
52 model=OpenAIResponses(id="gpt-5.2"),
53 knowledge=knowledge,
54 search_knowledge=True,
55 instructions=[
56 "Include sources in your response.",
57 "Always search your knowledge before answering the question.",
58 ],
59 markdown=True,
60)
61
62
63# ---------------------------------------------------------------------------
64# Run Agent
65# ---------------------------------------------------------------------------
66if __name__ == "__main__":
67 test_queries = [
68 "What organic skincare products are good for sensitive skin?",
69 "Tell me about makeup trends in different languages",
70 "Compare skincare and makeup information across languages",
71 ]
72
73 for query in test_queries:
74 agent.print_response(
75 query,
76 stream=True,
77 show_full_reasoning=True,
78 )

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 rag_custom_embeddings.py