1. 项目概述:AI驱动的公共资源交易数据分析平台
在公共资源交易领域,数据分析一直面临着数据量大、维度复杂、分析门槛高的挑战。传统的数据分析方式需要专业人员编写SQL查询或使用BI工具,这对非技术背景的用户极不友好。我们基于LangGraph和LangChain构建的AI代理系统,通过自然语言交互的方式,让用户能够像与专家对话一样获取所需的分析结果。
这个系统的核心价值在于:
- 降低使用门槛:普通业务人员无需学习SQL或数据分析工具,用自然语言即可获取专业分析
- 提升分析效率:自动完成从数据查询到报告生成的全流程,将原本需要数小时的工作缩短至分钟级
- 深度分析能力:不仅提供基础统计,还能进行招标人行为分析、投标人画像等专业分析
系统目前支持四大核心功能模块:
- 智能数据查询:支持多条件组合查询,如"查询2023年北京市住建领域超过1000万的市政工程项目"
- 多维统计分析:自动计算总量、分布、趋势等关键指标
- 专项主体分析:对招标人、投标人等主体进行深度行为分析
- 自动化报告生成:一键生成包含图表和文字分析的半年度报告
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计与技术选型
2.1 整体架构设计
系统采用分层架构设计,各层职责明确:
code复制前端展示层 → API网关层 → AI代理层 → 工具执行层 → 数据存储层
前端展示层:提供Web界面和API接口,支持同步和流式响应
API网关层:基于FastAPI实现,处理请求路由、认证和限流
AI代理层:核心智能中枢,理解用户意图并调度工具
工具执行层:具体功能的实现模块
数据存储层:MySQL关系型数据库 + S3对象存储
提示:流式响应设计特别适合长时间运行的分析任务,可以让用户实时看到处理进度,避免长时间等待的焦虑感。
2.2 核心技术栈解析
LangChain与LangGraph的协同工作:
- LangChain负责工具集成和记忆管理
- LangGraph实现复杂的工作流编排
- 两者结合既保持了灵活性,又能处理复杂的分析流程
数据库选型考虑:
- 使用SQLAlchemy作为ORM,支持多种数据库后端
- 生产环境推荐PostgreSQL,因其在复杂查询和分析场景下性能更优
- 对大型文件(如原始招标文件)使用S3存储,避免数据库膨胀
模型选择依据:
- 选用doubao-seed-1-6-251015模型,因其在结构化数据理解和生成方面表现优异
- 温度参数设为0.7,平衡创造性和稳定性
- 最大令牌数10000,确保长报告生成的完整性
3. 核心模块实现细节
3.1 AI代理的智能调度机制
代理系统的核心是agent.py中的智能调度逻辑:
python复制async def dispatch_tool(tool_name, params):
# 检查工具可用性
if tool_name not in registered_tools:
raise ValueError(f"Tool {tool_name} not available")
# 获取工具实例
tool = get_tool(tool_na
