Skip to main content

Overview

ParallelDocQA processes large documents in parallel by splitting them into chunks, analyzing each chunk concurrently, and then synthesizing results using RAG retrieval.

Class Signature

from qwen_agent.agents import ParallelDocQA

class ParallelDocQA(Assistant):
    def __init__(
        self,
        function_list: Optional[List[Union[str, Dict, BaseTool]]] = None,
        llm: Optional[Union[Dict, BaseChatModel]]] = None,
        system_message: Optional[str] = DEFAULT_SYSTEM_MESSAGE,
        name: Optional[str] = DEFAULT_NAME,
        description: Optional[str] = DEFAULT_DESC,
        files: Optional[List[str]] = None
    )

How It Works

  1. Parse & Chunk: Documents are split into chunks (~1000 tokens each)
  2. Parallel Analysis: Multiple agents process chunks concurrently
  3. RAG Retrieval: Relevant content is retrieved from all responses
  4. Final Synthesis: Summary agent generates final answer

Usage Example

from qwen_agent.agents import ParallelDocQA
from qwen_agent.llm.schema import Message

# For large documents
agent = ParallelDocQA(
    llm={'model': 'qwen-max', 'api_key': 'your-api-key'},
    files=['large_research_paper.pdf']  # 100+ pages
)

messages = [
    Message(role='user', content='Summarize the key findings')
]

for response in agent.run(messages):
    print(response[-1].content)

See Also

Build docs developers (and LLMs) love