Usage
LangChain
Load a document into a Chroma vectorstore with LangChain, then search it through Agno Knowledge.
Prepare the sample input files in the directory where you will run the Python example:
mkdir -p data
curl --fail --location https://raw.githubusercontent.com/agno-agi/agno/8f36eaf2d18e91afa7b327eec66a3cd3685dcb87/cookbook/07_knowledge/testing_resources/state_of_the_union.txt --output data/state_of_the_union.txtCode
import pathlib
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.langchaindb import LangChainVectorDb
from langchain_text_splitters import CharacterTextSplitter
from langchain_chroma import Chroma
from langchain_community.document_loaders import TextLoader
from langchain_openai import OpenAIEmbeddings
chroma_db_dir = pathlib.Path("./chroma_db")
state_of_the_union = pathlib.Path("data/state_of_the_union.txt")
# Load, split, and embed the document with LangChain
raw_documents = TextLoader(str(state_of_the_union), encoding="utf-8").load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
documents = text_splitter.split_documents(raw_documents)
Chroma.from_documents(
documents, OpenAIEmbeddings(), persist_directory=str(chroma_db_dir)
)
# Point Agno at the existing vectorstore
db = Chroma(embedding_function=OpenAIEmbeddings(), persist_directory=str(chroma_db_dir))
knowledge_retriever = db.as_retriever()
knowledge = Knowledge(
vector_db=LangChainVectorDb(knowledge_retriever=knowledge_retriever)
)
agent = Agent(knowledge=knowledge)
agent.print_response("What did the president say?", markdown=True)Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U langchain langchain-community langchain-openai langchain-chroma openai agnoSet environment variables
export OPENAI_API_KEY=xxxRun Agent
python langchain_db.py