Example

Install pypdf if needed using this guide

knowledge_base.py
from phi.knowledge.pdf import PDFKnowledgeBase, PDFReader
from phi.vectordb.pgvector import PgVector

from resources import vector_db

pdf_knowledge_base = PDFKnowledgeBase(
    path="data/pdfs",
    # Table name: llm.pdf_documents
    vector_db=PgVector(
        table_name="pdf_documents",
        db_url=vector_db.get_db_connection_local(),
    ),
    reader=PDFReader(chunk=True),
)

PDFKnowledgeBase Params

ParameterTypeDefaultDescription
pathUnion[str, Path]-Path to PDF files. Can point to a single PDF file or a directory of PDF files.
readerUnion[PDFReader, PDFImageReader]PDFReader()A PDFReader or PDFImageReader that converts the PDFs into Documents for the vector database.

AgentKnowledge Params

PDFKnowledgeBase is a subclass of the AgentKnowledge class and has access to the same params

ParameterTypeDefaultDescription
readerOptional[Reader]NoneReader to read the documents
vector_dbOptional[VectorDb]NoneVector db to store the knowledge base
num_documentsint2Number of relevant documents to return on search
optimize_onOptional[int]1000Number of documents to optimize the vector db on
driverstr"knowledge"Driver for the Assistant knowledge