Chat with PDF Agents

Learn how to create AI agents that can intelligently chat with PDF documents using vector databases for efficient information retrieval.

Diagram

Query

PDF Document

PDF Chat Agent

Vector DB

Chat Interface

Response

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.

Quick Start

  1. Install Package

    Install PraisonAI Agents with PDF chat support:

    bash
    pip install "praisonaiagents[knowledge]"
  2. Set API Key

    Set your OpenAI API key:

    bash
    export OPENAI_API_KEY=xxxxx
  3. 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

Diagram

Chat Agents

Vector Store

Vector DB

Input

PDF Documents

Chat Agent 1

Chat Agent 2

Chat Agent 3

The simplest way to create a PDF chat agent is without any configuration:

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 are the key points in this document?") # Chat Query

Advanced Configuration

For more control over the knowledge base, you can specify a configuration:

python
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 Query

Multi-Agent Knowledge System

For more complex scenarios, you can create a knowledge-based system with multiple agents:

python
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() # Retrieval

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

Troubleshooting

Next Steps