LuoguAgent
这是一个编程竞赛辅助Agent的项目,目前已完成基本功能。我将在这里记录我是如何完成这个项目的。
✨ 功能特性
- 题目爬取: 输入洛谷题目 URL,自动抓取题目正文、输入输出、样例数据。
- 题解分析: 自动爬取该题目的现有题解,并将其提交给 LLM(大语言模型)进行分析。
- 智能辅导: LLM 基于对题目和现有题解的分析,生成一份更详细、更具启发性的全新题解和代码实现。
- Web 界面: 使用 Streamlit 搭建的交互式前端,方便输入 URL 并查看结果。
🛠️ 技术栈
- 核心: Python 3.12
- 前端: Streamlit
- 爬虫: crawl4ai
- LLM / Agent: glm-4.6, deepseek-chat
⚡云端体验
点击链接即可直接访问LuoguAgent!
🚀 本地部署
1. 克隆仓库
git clone https://github.com/你的用户名/LuoguAgent.git
cd LuoguAgent
2. 安装依赖
建议使用虚拟环境。
# (可选) 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # on Windows, use `venv\Scripts\activate`
# 安装所有必需的库
pip install -r requirements.txt
3. 配置环境变量(可选)
目前api_key和base_url从前端输入,不需要配置!
在项目根目录(与 app.py 同级)创建一个 .env 文件。这是你的 constant.py 脚本加载 API 密钥的地方。
# .env
ZHIPU_API_KEY=sk-你的智谱API密钥
DMX_API_KEY=你的DMX-API密钥
4. 运行应用
确保你在项目根目录。
streamlit run app.py
启动后,在浏览器中打开 http://localhost:8501 即可开始使用。
📂 项目结构
.
├── .env # (你需要自己创建) 存放 API 密钥
├── .gitignore
├── app.py # 👈 Streamlit 应用入口
├── requirements.txt # 依赖列表
├── packages.txt # 给 streamlit cloud 使用的所需依赖
│
├── luogu_agent/ # 📦 核心逻辑包
│ ├── __init__.py
│ ├── analysis.py # 分析 Agent (LLM)
│ ├── crawler.py # 爬虫 Agent
│ │
│ └── core/ # 🧬 核心定义 (配置、数据结构)
│ ├── __init__.py
│ ├── constant.py # 常量
│ ├── prompts.py # 提示词
│ ├── schema.py # Pydantic 数据模型
│ └── strategy.py # 爬虫解析策略
│
├── tests/ # 🧪 测试脚本
│ ├── test_agent.ipynb
│ └── ...
│
├── luogu_cache/ # (自动生成) 爬虫缓存
└── analysis_cache/ # (自动生成) 分析缓存
📄 许可证
本项目采用 MIT 许可证。