项目 01:智能文档问答 Agent

难度:⭐⭐ | 限时:4-6 小时

题目描述

设计并实现一个 AI Agent,能够接收用户上传的文档(PDF/TXT),对文档内容进行问答,并生成摘要。

核心要求

1. 文档处理

  • 支持至少一种文档格式(PDF 或 TXT)

  • 提取文本内容

  • 实现文本分割(chunking)策略

2. 知识库构建

  • 将文档文本存储为可检索的知识库

  • 使用向量数据库(ChromaDB / FAISS / LanceDB)

3. 问答功能

  • 接收自然语言问题,基于文档内容回答

  • 答案应引用文档中的相关段落

  • 文档未提及的问题给出恰当提示

4. 摘要功能

  • 为整个文档或指定部分生成摘要

5. Agent 架构

  • 清晰定义 Agent 目标和能力

  • 基本的记忆/上下文管理(多轮对话)

  • 规划能力:决定何时检索、何时生成

加分项

  • 多文档支持

  • 工具调用(Function Calling)— 文档不够时自动搜索

  • 错误处理与鲁棒性

  • Web 界面或 CLI 交互

  • 评估机制(测试用例)

  • 成本优化策略

推荐技术栈

  • 语言:Python / TypeScript

  • 框架:LangChain / LlamaIndex

  • 向量库:ChromaDB / FAISS / LanceDB

  • PDF 处理:PyPDF2 / pdf-parse

  • LLM:OpenAI / Claude / Gemini API

评估标准

维度 权重 说明
功能完整性 30% 是否满足核心要求
Agent 设计 25% 规划、记忆、工具使用是否合理
代码质量 20% 可读性、模块化、错误处理
文档 15% README、设计决策说明
创新性 10% 加分项表现

提交物

  • 完整源代码(GitHub 仓库)

  • README(含设计决策、技术选型理由、挑战与解决方案)

  • 可运行的 demo