feat: 初始化自动控制原理AI+数智平台项目

- 添加时域分析、频域分析、根轨迹分析功能
- 集成 AI 智能问答(DeepSeek/Gemini API)
- 现代化 UI 设计,支持 LaTeX 公式渲染
- 完整的项目文档和配置文件
This commit is contained in:
2025-10-15 20:37:30 +08:00
parent 9b4b3072a5
commit 7edbda02f6
8 changed files with 979 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
# AutoControl - 自动控制原理AI+数智平台
.DS_Store
*.pyc
__pycache__/
*.py[cod]
*$py.class
# 虚拟环境
venv/
env/
ENV/
.venv
.conda/
# IDE 配置
.vscode/
.idea/
*.swp
*.swo
*~
# Jupyter Notebook
.ipynb_checkpoints
# 环境变量文件
.env
.env.local
# 日志文件
*.log
# 临时文件
*.tmp
*.bak
# 系统文件
Thumbs.db
Desktop.ini
# 打包文件
dist/
build/
*.egg-info/
# API 密钥配置(如果单独管理)
config.json
secrets.json
api_keys.txt
+201
View File
@@ -0,0 +1,201 @@
# API 配置指南
本文档详细说明如何配置 DeepSeek 和 Gemini API。
## 📋 目录
- [DeepSeek API 配置](#deepseek-api-配置)
- [Gemini API 配置](#gemini-api-配置)
- [常见问题](#常见问题)
---
## 🚀 DeepSeek API 配置
### 1. 获取 API 密钥
1. 访问 [DeepSeek 平台](https://platform.deepseek.com/)
2. 注册账号并登录
3. 进入 [API Keys 页面](https://platform.deepseek.com/api_keys)
4. 点击"创建新密钥"
5. 复制生成的 API 密钥(格式:`sk-xxxxxxxxxxxxxxxx`
### 2. 配置到应用
编辑 `app.py` 文件的配置区域(第 7-28 行):
```python
# ==================== API 配置 ====================
API_KEY = "sk-your-api-key-here" # 粘贴您的 DeepSeek API 密钥
API_BASE_URL = "https://api.deepseek.com/v1"
API_MODEL = "deepseek-chat" # 或 "deepseek-coder"
API_TYPE = "deepseek"
# ==================================================
```
### 3. 可用模型
| 模型名称 | 适用场景 | 特点 |
|---------|---------|------|
| `deepseek-chat` | 通用对话 | 平衡性能,推荐使用 |
| `deepseek-coder` | 代码相关 | 代码理解和生成能力强 |
### 4. 费用说明
- 新用户通常有免费额度
- 按 token 计费,价格实惠
- 详见 [定价页面](https://platform.deepseek.com/pricing)
---
## 🌐 Gemini API 配置
### 1. 获取 API 密钥
1. 访问 [Google AI Studio](https://aistudio.google.com/app/apikey)
2. 使用 Google 账号登录
3. 点击"Get API Key"
4. 创建或选择项目
5. 复制生成的 API 密钥
### 2. 配置到应用
编辑 `app.py` 文件的配置区域:
```python
# ==================== API 配置 ====================
API_KEY = "AIzaSy-your-gemini-api-key-here"
API_BASE_URL = "https://generativelanguage.googleapis.com/v1beta"
API_MODEL = "gemini-1.5-flash" # 或其他可用模型
API_TYPE = "gemini"
# ==================================================
```
### 3. 可用模型
| 模型名称 | 特点 |
|---------|------|
| `gemini-1.5-flash` | 快速响应,适合实时交互 |
| `gemini-1.5-pro` | 更强大的理解和生成能力 |
| `gemini-pro` | 经典版本 |
### 4. 注意事项
- Gemini API 在某些地区可能需要网络代理
- 中国大陆用户推荐使用 DeepSeek API
---
## 🔒 安全建议
### 方法 1:环境变量(推荐)
不要直接在代码中硬编码 API 密钥,使用环境变量:
**Windows PowerShell**
```powershell
$env:DEEPSEEK_API_KEY="sk-your-key"
python app.py
```
**Linux/Mac**
```bash
export DEEPSEEK_API_KEY="sk-your-key"
python app.py
```
然后在代码中读取:
```python
import os
API_KEY = os.environ.get("DEEPSEEK_API_KEY", "")
```
### 方法 2:配置文件
创建 `config.json`(不要提交到 Git):
```json
{
"api_key": "sk-your-key",
"api_base_url": "https://api.deepseek.com/v1",
"api_model": "deepseek-chat",
"api_type": "deepseek"
}
```
在代码中加载:
```python
import json
with open('config.json', 'r') as f:
config = json.load(f)
API_KEY = config['api_key']
API_BASE_URL = config['api_base_url']
# ...
```
---
## ❓ 常见问题
### Q1: API 请求失败,显示 401 错误
**原因**API 密钥无效或未配置
**解决**
1. 检查 API 密钥是否正确复制(无多余空格)
2. 确认密钥未过期或被删除
3. 重新生成密钥并更新配置
### Q2: 网络连接错误
**原因**:网络问题或 API 服务不可达
**解决**
1. DeepSeek 用户:检查国内网络连接
2. Gemini 用户:可能需要配置网络代理
3. 尝试切换到 DeepSeek API(国内友好)
### Q3: 回复速度慢或超时
**原因**:网络延迟或 API 负载高
**解决**
1. 检查网络连接速度
2. 调整超时设置(app.py 中的 `ClientTimeout`
3. 尝试切换模型(如 flash 版本)
### Q4: 公式不渲染
**原因**Chatbot 未启用 LaTeX 支持
**解决**
确认 `gr.Chatbot` 包含 `latex_delimiters` 参数:
```python
chatbot = gr.Chatbot(
latex_delimiters=[
{"left": "$$", "right": "$$", "display": True},
{"left": "$", "right": "$", "display": False}
]
)
```
### Q5: 如何限制 API 调用成本?
**建议**
1. 在 API 平台设置使用限额
2. 代码中添加 `max_tokens` 限制
3. 监控 API 使用情况
4. 使用轻量级模型(如 flash 版本)
---
## 📞 获取帮助
- **DeepSeek 文档**https://platform.deepseek.com/docs
- **Gemini 文档**https://ai.google.dev/docs
- **项目 Issues**[GitHub Issues 链接]
---
最后更新:2025年10月15日
+60
View File
@@ -0,0 +1,60 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-10-15
### Added
- ✨ 时域分析功能(阶跃响应、脉冲响应、性能指标计算)
- ✨ 频域分析功能(Bode 图、Nyquist 图、稳定裕度)
- ✨ 根轨迹分析功能(动态轨迹绘制、增益调节、极点跟踪)
- ✨ AI 智能问答功能(支持 DeepSeek 和 Gemini API
- 🎨 现代化 UI 设计(渐变色、卡片布局、可滚动知识区)
- 📚 详细的知识卡片(时域、频域、根轨迹理论)
- 🔧 对数增益滑块(精确调节 0.1 到 1000 范围)
- 💬 LaTeX 公式渲染(聊天机器人内数学公式支持)
- 📊 英文图表标签(避免中文显示问题)
### Features
- 支持任意阶次线性时不变(LTI)系统分析
- 实时参数调节和图表更新
- 流式 AI 对话响应
- 标签页切换自动加载数据
- 可折叠的知识点章节
### Documentation
- 📄 完整的 README.md
- 📄 API 配置指南(API_CONFIG.md
- 📄 快速上手指南(QUICK_START.md
- 📄 依赖列表(requirements.txt
- 📄 .gitignore 配置
- 📄 MIT 开源许可证
## [Unreleased]
### Planned
- [ ] 状态空间分析模块
- [ ] 离散系统分析支持
- [ ] 更多控制器设计工具(PID 调优、极点配置)
- [ ] 系统对比功能(多个传递函数对比)
- [ ] 导出分析报告(PDF/Word
- [ ] 历史记录保存
- [ ] 更多 AI 模型支持
- [ ] 多语言界面(英文版)
- [ ] 移动端适配
---
## Version History
### v1.0.0 (2025-10-15)
- 🎉 首次正式发布
- 包含四大核心功能模块
- 完整的文档和配置文件
---
**Note**: For detailed commit history, see the [Git log](https://github.com/your-repo/commits).
+171
View File
@@ -0,0 +1,171 @@
# 贡献指南
感谢您对本项目的关注!我们欢迎任何形式的贡献。
## 🤝 如何贡献
### 报告 Bug
如果您发现了 Bug,请:
1. 在 [Issues](https://github.com/your-repo/issues) 中搜索是否已有相同问题
2. 如果没有,创建新 Issue,包含:
- 清晰的标题
- Bug 复现步骤
- 预期行为 vs 实际行为
- 系统环境(操作系统、Python 版本等)
- 错误截图或日志(如果有)
### 提出新功能
如果您有新功能建议:
1. 创建 Feature Request Issue
2. 描述功能的用途和价值
3. 提供可能的实现思路(可选)
### 提交代码
#### 准备工作
1. Fork 本仓库
2. 克隆到本地:
```bash
git clone https://github.com/your-username/AutoControl.git
cd AutoControl
```
3. 创建新分支:
```bash
git checkout -b feature/your-feature-name
```
#### 开发规范
**代码风格**
- 遵循 PEP 8 Python 代码规范
- 使用有意义的变量名和函数名
- 添加必要的注释和文档字符串
**提交信息**
```
<type>(<scope>): <subject>
<body>
<footer>
```
类型(type):
- `feat`: 新功能
- `fix`: Bug 修复
- `docs`: 文档更新
- `style`: 代码格式调整
- `refactor`: 重构
- `test`: 测试相关
- `chore`: 构建/工具链相关
示例:
```
feat(analysis): 添加状态空间分析模块
- 实现状态空间表示转换
- 添加可控性和可观测性判断
- 集成到主界面标签页
Closes #123
```
#### 测试
在提交前确保:
- 代码能正常运行
- 没有破坏现有功能
- 新功能经过测试
#### 提交 Pull Request
1. 推送到您的 Fork
```bash
git push origin feature/your-feature-name
```
2. 在 GitHub 上创建 Pull Request
3. 填写 PR 描述:
- 做了什么改动
- 为什么需要这个改动
- 如何测试
4. 等待代码审查
## 📋 开发任务
### 当前优先级
#### 高优先级
- [ ] 修复已知 Bug
- [ ] 改进性能(大系统分析优化)
- [ ] 移动端适配
#### 中优先级
- [ ] 状态空间分析模块
- [ ] PID 控制器调优工具
- [ ] 系统对比功能
#### 低优先级
- [ ] 导出分析报告
- [ ] 多语言支持
- [ ] 主题切换(暗色模式)
### 适合新手的任务
标记为 `good first issue` 的 Issue 适合新手参与:
- 文档改进
- UI 微调
- 小功能添加
## 🎨 UI/UX 贡献
我们欢迎设计相关的贡献:
- 界面美化
- 交互优化
- 图标设计
- 配色方案
## 📚 文档贡献
文档同样重要:
- 修正错别字
- 改进说明
- 添加示例
- 翻译文档
## 💬 社区
- GitHub Issues: 技术讨论
- [讨论区](https://github.com/your-repo/discussions): 一般交流
## ⚖️ 行为准则
### 我们的承诺
为建设开放友好的环境,我们贡献者和维护者承诺:
- 使用友好和包容的语言
- 尊重不同的观点和经验
- 优雅地接受建设性批评
- 关注对社区最有利的事情
### 不可接受的行为
- 使用性暗示语言或图像
- 挑衅、侮辱性评论,人身攻击
- 公开或私下骚扰
- 未经许可发布他人隐私信息
## 📄 许可证
贡献代码即表示您同意将您的贡献以 MIT 许可证授权。
---
**感谢您的贡献!** 🎉
如有任何问题,请随时联系维护者。
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 AutoControl Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+121
View File
@@ -0,0 +1,121 @@
# 🚀 5分钟快速上手指南
本指南帮助您快速配置并运行自动控制原理AI+数智平台。
## ⚡ 快速开始(3 步完成)
### 步骤 1:安装依赖
```bash
pip install gradio numpy control matplotlib aiohttp
```
### 步骤 2:配置 API
编辑 `app.py` 第 24 行,填入您的 DeepSeek API 密钥:
```python
API_KEY = "sk-your-api-key-here" # 替换为您的密钥
```
**获取密钥**:访问 https://platform.deepseek.com/api_keys
### 步骤 3:运行应用
```bash
python app.py
```
浏览器会自动打开 http://localhost:7860
---
## 🎯 第一次使用
### 试试时域分析
1. 在"时域分析"标签页
2. 输入传递函数:
- 分子:`1`
- 分母:`1,2,1`
3. 点击"开始分析"
4. 观察阶跃响应曲线和性能指标
### 试试 AI 问答
1. 切换到"智能问答"标签页
2. 输入问题:`什么是 PID 控制器?`
3. 点击"发送"
4. AI 会实时回复并渲染数学公式
---
## 💡 常用传递函数示例
### 一阶系统
```
分子: 1
分母: 1,1
G(s) = 1/(s+1)
```
### 二阶欠阻尼系统
```
分子: 4
分母: 1,2,4
G(s) = 4/(s²+2s+4)
阻尼比 ζ = 0.5,超调量约 16%
```
### 三阶系统
```
分子: 1
分母: 1,6,11,6
G(s) = 1/[(s+1)(s+2)(s+3)]
```
---
## 🔧 故障排查
### 问题 1:模块导入错误
```
ModuleNotFoundError: No module named 'gradio'
```
**解决**:重新安装依赖
```bash
pip install -r requirements.txt
```
### 问题 2API 密钥错误
```
❌ 错误:API_KEY 未配置
```
**解决**:确认 `app.py` 第 24 行已填入有效密钥
### 问题 3:中文乱码
**解决**:确保终端支持 UTF-8 编码
```powershell
# Windows PowerShell
chcp 65001
```
---
## 📚 下一步
- 阅读完整 [README.md](README.md)
- 查看 [API 配置详细说明](API_CONFIG.md)
- 探索四大功能模块
- 调整系统增益观察变化
---
**需要帮助?** 查看 [常见问题](API_CONFIG.md#常见问题) 或提交 Issue。
祝学习愉快!🎓
+336
View File
@@ -0,0 +1,336 @@
# 🎛️ 自动控制原理AI+数智平台
> 交互式控制系统分析与设计工具 | 时域·频域·根轨迹·AI问答
一个基于 Gradio 构建的现代化自动控制原理学习平台,集成了系统分析工具和 AI 智能问答功能。
## ✨ 核心功能
### 📊 1. 时域分析 (Time Domain Analysis)
- **阶跃响应分析**:观察系统对单位阶跃输入的响应
- **脉冲响应分析**:观察系统对单位脉冲输入的响应
- **性能指标计算**
- 上升时间 (Rise Time)
- 峰值时间 (Peak Time)
- 超调量 (Overshoot)
- 调节时间 (Settling Time)
- 稳态值 (Steady State Value)
**知识要点**
- 二阶系统标准形式
- 阻尼比与自然频率参数说明
- 时域性能指标公式
- 稳态误差分析
### 🌊 2. 频域分析 (Frequency Domain Analysis)
- **Bode 图绘制**:幅频特性和相频特性
- **Nyquist 图绘制**:极坐标频率响应
- **稳定裕度计算**
- 增益裕度 (Gain Margin, GM)
- 相位裕度 (Phase Margin, PM)
- 增益交越频率
- 相角交越频率
- **稳定性评估**:自动判断系统稳定性
**知识要点**
- 增益裕度与相位裕度定义
- 稳定性判断准则
- 频域指标与时域性能的关系
- Bode 图读数技巧
### 🎯 3. 根轨迹分析 (Root Locus Analysis)
- **根轨迹绘制**:自动绘制完整根轨迹图
- **增益调节**:对数滑块精确调节增益 K
- **极点跟踪**:实时显示当前增益下的闭环极点位置
- **动态视角**:自动调整坐标范围,聚焦关键区域
**知识要点**
- 根轨迹法基本原理
- 幅值条件与相角条件
- 根轨迹的基本性质(起点、终点、渐近线、分离点)
- s 平面稳定性区域
- 阻尼比等值线
### 🤖 4. AI 智能问答 (Q&A)
- **专业教学助手**:精通自动控制原理的 AI 教授
- **流式响应**:实时显示 AI 回复过程
- **LaTeX 公式渲染**:完美支持数学公式显示
- **上下文记忆**:支持多轮对话
**支持的 API**
- DeepSeek API(推荐,国内网络友好)
- Google Gemini API
## 🚀 快速开始
### 环境要求
- Python 3.8+
- pip 包管理器
### 安装步骤
1. **克隆项目**
```bash
git clone <your-repo-url>
cd AutoControl
```
2. **安装依赖**
```bash
pip install gradio numpy control matplotlib aiohttp
```
或使用 conda
```bash
conda create -n autocontrol python=3.9
conda activate autocontrol
pip install gradio numpy control matplotlib aiohttp
```
3. **配置 API 密钥**
编辑 `app.py` 文件开头的配置区域:
```python
# ==================== API 配置 ====================
API_KEY = "your-api-key-here" # 填入您的 DeepSeek API 密钥
API_BASE_URL = "https://api.deepseek.com/v1"
API_MODEL = "deepseek-chat"
API_TYPE = "deepseek" # 或 "gemini"
# ==================================================
```
**获取 DeepSeek API 密钥**
- 访问 https://platform.deepseek.com/api_keys
- 注册并创建 API 密钥
- 复制密钥到配置文件
4. **运行应用**
```bash
python app.py
```
或使用 conda 环境:
```bash
conda run -n autocontrol python app.py
```
5. **访问应用**
浏览器自动打开,或手动访问:
```
http://localhost:7860
```
## 📖 使用指南
### 输入系统传递函数
在任意标签页的输入框中输入传递函数的分子和分母系数:
**示例 1:一阶系统**
```
分子: 1
分母: 1,1
传递函数: G(s) = 1/(s+1)
```
**示例 2:二阶系统**
```
分子: 4
分母: 1,2,4
传递函数: G(s) = 4/(s²+2s+4)
```
**示例 3:三阶系统**
```
分子: 1
分母: 1,6,11,6
传递函数: G(s) = 1/(s³+6s²+11s+6)
```
**输入格式**
- 系数从最高次项到常数项
- 用逗号分隔(支持中文或英文逗号)
- 支持小数和负数
- 例如:`1, 2.5, -3, 4` 表示 s³ + 2.5s² - 3s + 4
### 调节系统增益
频域分析和根轨迹分析都支持增益调节:
- **对数滑块**log₁₀(K) 范围 -1 到 3
- -1 对应 K = 0.1
- 0 对应 K = 1
- 1 对应 K = 10
- 2 对应 K = 100
- 3 对应 K = 1000
- **实时显示**:下方数字框显示实际增益值
- **松开更新**:滑块松开后才更新图表,避免卡顿
### AI 问答技巧
**高效提问方式**
**好的问题**
- "请解释 PID 控制器的三个参数如何影响系统性能?"
- "如何根据 Bode 图判断系统的稳定裕度?"
- "为什么阻尼比为 0.707 时系统响应最佳?"
- "推导二阶系统的超调量公式"
**避免的问题**
- "帮我做作业"(太模糊)
- "这个对吗?"(缺少上下文)
- "答案是什么?"(没有提供问题描述)
**公式显示**
AI 回复中的数学公式会自动渲染,支持以下格式:
- 行内公式:`$公式$``\(公式\)`
- 块级公式:`$$公式$$``\[公式\]`
## 🎨 界面特色
### 现代化设计
- **渐变色标题**:紫色渐变视觉效果
- **卡片式布局**:分组清晰,层次分明
- **可滚动知识卡片**:长文档不占据过多空间
- **可折叠章节**:按需展开知识点
### 响应式交互
- **实时更新**:参数改变即时反映在图表上
- **流式对话**:AI 回复逐字显示
- **标签页联动**:切换标签自动加载数据
- **平滑动画**:按钮悬停、卡片滚动效果
### 知识可视化
- **嵌入式公式**:页面内直接显示 LaTeX 公式
- **表格对比**:性能指标、稳定准则表格化
- **颜色编码**:稳定/不稳定用绿/红色标识
- **图标辅助**:emoji 增强视觉识别
## 🛠️ 技术栈
### 前端框架
- **Gradio 4.x**:快速构建机器学习 Web 界面
- **Custom CSS**:现代化样式定制
### 计算库
- **NumPy**:数值计算
- **python-control**:控制系统分析
- **Matplotlib**:图表绘制
### AI 集成
- **aiohttp**:异步 HTTP 请求
- **DeepSeek API**:智能问答后端
- **流式响应**:提升用户体验
## 📁 项目结构
```
AutoControl/
├── app.py # 主应用程序
├── README.md # 项目文档
├── API_CONFIG.md # API 配置详细说明(可选)
├── QUICK_START.md # 快速入门指南(可选)
└── requirements.txt # 依赖列表(可选)
```
## 🔧 高级配置
### 切换到 Gemini API
如果您想使用 Google Gemini API
```python
API_KEY = "your-gemini-api-key"
API_BASE_URL = "https://generativelanguage.googleapis.com/v1beta"
API_MODEL = "gemini-1.5-flash"
API_TYPE = "gemini"
```
### 自定义系统提示词
修改 `chat_with_ai` 函数中的 `system_prompt`
```python
system_prompt = """
你是一位[角色定义]。
请用[语言风格]来回答有关[领域]的问题。
[其他要求...]
"""
```
### 调整图表样式
`matplotlib` 绘图代码中修改:
```python
# 修改图表大小
fig, ax = plt.subplots(figsize=(12, 6))
# 修改颜色主题
ax.plot(x, y, color='#667eea', linewidth=2)
# 修改网格样式
ax.grid(True, alpha=0.3, linestyle='--')
```
## 📚 参考资料
### 经典教材
- 《自动控制原理》- 胡寿松
- 《现代控制工程》- Katsuhiko Ogata
- 《反馈控制理论》- John Doyle
### 在线资源
- [python-control 官方文档](https://python-control.readthedocs.io/)
- [DeepSeek API 文档](https://platform.deepseek.com/docs)
- [Gradio 官方文档](https://www.gradio.app/docs)
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request
### 贡献方向
- 🐛 修复 Bug
- ✨ 添加新功能(如状态空间分析)
- 📝 改进文档
- 🎨 优化界面设计
- 🧪 添加测试用例
## 📄 许可证
本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- **Gradio**:提供优秀的 Web 界面框架
- **python-control**:强大的控制系统分析库
- **DeepSeek**:高质量的 AI 服务
- 所有贡献者和使用者
## 📞 联系方式
- 项目地址:[GitHub Repository URL]
- 问题反馈:[Issues URL]
- 邮箱:[your-email@example.com]
---
**⭐ 如果这个项目对您有帮助,请给它一个 Star!**
最后更新:2025年10月15日
+20
View File
@@ -0,0 +1,20 @@
# 自动控制原理AI+数智平台 - 依赖包列表
# Python 版本要求: Python 3.8+
# Web 界面框架
gradio>=4.0.0
# 科学计算库
numpy>=1.21.0
# 控制系统分析库
control>=0.9.0
# 绘图库
matplotlib>=3.5.0
# 异步 HTTP 客户端(用于 AI 问答)
aiohttp>=3.8.0
# 可选:数据处理
scipy>=1.7.0