项目 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