Chat with PDF Agents
Learn how to create AI agents that can intelligently chat with PDF documents using vector databases for efficient information retrieval.
A PDF-centric workflow where Chat agents interact with vector databases to store and retrieve information from PDF documents, enabling natural conversations and intelligent question-answering capabilities.
from praisonaiagents import Agent
agent = Agent(
name="researcher",
instructions="Answer questions using the uploaded PDF",
knowledge=True,
)
agent.start("Summarise chapter 2 of the document")The user uploads a PDF and asks questions; answers cite the indexed content.
Quick Start
- Install Package
Install PraisonAI Agents with PDF chat support:
bash pip install "praisonaiagents[knowledge]" - Set API Key
Set your OpenAI API key:
bash export OPENAI_API_KEY="${OPENAI_API_KEY:?Set OPENAI_API_KEY in your shell}" - Create Script
Create a new file
chat_with_pdf.py:python from praisonaiagents import Agent agent = Agent( name="PDF Chat Agent", instructions="You answer questions based on the provided PDF document.", knowledge=["document.pdf"], # PDF Indexing ) agent.start("What is the main topic of this PDF?") # Chat Query
PDF Processing and Chat Agents
The simplest way to create a PDF chat agent is without any configuration:
from praisonaiagents import Agent
agent = Agent(
name="PDF Chat Agent",
instructions="You answer questions based on the provided PDF document.",
knowledge=["document.pdf"] # PDF Indexing
)
agent.start("What are the key points in this document?") # Chat QueryAdvanced Configuration
For more control over the knowledge base, you can specify a configuration:
from praisonaiagents import Agent
config = {
"vector_store": {
"provider": "chroma",
"config": {
"collection_name": "praison",
"path": ".praison",
}
}
}
agent = Agent(
name="PDF Chat Agent",
instructions="You answer questions based on the provided PDF document.",
knowledge={
"sources": ["document.pdf"],
**config
}
)
agent.start("What is the main topic of this PDF?") # Chat QueryMulti-Agent Knowledge System
For more complex scenarios, you can create a knowledge-based system with multiple agents:
from praisonaiagents import Agent, Task, AgentTeam
import logging
import os
# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
# Define the configuration for the Knowledge instance
config = {
"vector_store": {
"provider": "chroma",
"config": {
"collection_name": "praison",
"path": ".praison",
}
}
}
# Create an agent with knowledge capabilities
knowledge_agent = Agent(
name="KnowledgeAgent",
role="Information Specialist",
goal="Store and retrieve knowledge efficiently",
backstory="Expert in managing and utilizing stored knowledge",
knowledge={
"sources": ["sample.pdf"],
**config
}
)
# Define a task for the agent
knowledge_task = Task(
name="knowledge_task",
description="Who is Mervin Praison?",
expected_output="Answer to the question",
agent=knowledge_agent # Agent
)
# Create and start the agents
agents = AgentTeam(
agents=[knowledge_agent],
tasks=[knowledge_task],
process="sequential",
memory={"user_id": "user1"} # User ID
)
# Start execution
result = agents.start() # RetrievalHow It Works
The user uploads a PDF and asks a question; the agent retrieves the most relevant chunks from the vector store and answers from them.
Understanding PDF Chat Agents
What are PDF Chat Agents?PDF Chat agents enable: – Natural conversation with PDF documents – Intelligent information extraction – Context-aware document understanding – Quick answers to document-specific questions
Features
Process and index PDF documents efficiently.
Natural ChatHave natural conversations about PDF content.
Smart RetrievalIntelligently retrieve relevant information from PDFs.
Context AwarenessMaintain context throughout the conversation.
Troubleshooting
If PDF processing isn’t working: – Check PDF file format and encoding – Verify document accessibility – Enable verbose mode for debugging
Chat IssuesIf chat responses aren’t accurate: – Check PDF indexing quality – Verify question clarity – Monitor context retention
Best Practices
Install the knowledge extra
Run pip install "praisonaiagents[knowledge]" before indexing PDFs. Core install alone lacks Chroma and document parsers needed for retrieval.
Use text-searchable PDFs
Scanned image-only PDFs index poorly. Prefer native text PDFs or run OCR upstream so chunking and embedding capture meaningful content.
Pin a persistent vector store path
Set path and collection_name in your Chroma config so re-indexing does not wipe prior embeddings between restarts.
Keep queries specific to the document
Ask about sections, figures, or claims in the PDF rather than open-ended prompts — retrieval quality depends on query–chunk alignment.
Next Steps
Learn about automatically created and managed AI agents
Mini AgentsExplore lightweight, focused AI agents