from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.knowledge.embedder.ollama import OllamaEmbedder
from agno.knowledge.knowledge import Knowledge
from agno.models.ollama import Ollama
from agno.vectordb.lancedb import LanceDb
# Define the database URL where the vector database will be stored
db_url = "/tmp/lancedb"
# Configure the language model
model = Ollama(id="llama3.1:8b")
# Create Ollama embedder
embedder = OllamaEmbedder(id="nomic-embed-text", dimensions=768)
# Create the vector database
vector_db = LanceDb(
table_name="recipes", # Table name in the vector database
uri=db_url, # Location to initiate/create the vector database
embedder=embedder, # Without using this, it will use OpenAIChat embeddings by default
)
knowledge = Knowledge(
vector_db=vector_db,
)
knowledge.add_content(
name="Recipes", url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
)
db = SqliteDb(db_file="data.db")
agent = Agent(
session_id="session_id",
user_id="user",
model=model,
knowledge=knowledge,
db=db,
)
agent.print_response(
"What is the first step of making Gluai Buat Chi from the knowledge base?",
markdown=True,
)
Create a virtual environment
Terminal
and create a python virtual environment.python3 -m venv .venv
source .venv/bin/activate
Install Ollama
Install libraries
pip install -U lancedb sqlalchemy agno
Run Agent
python cookbook/agents/rag/rag_with_lance_db_and_sqlite.py