Cauldron项目依赖包分析报告
📊 总体统计
- 总包数: 153个
 
- 直接依赖: ~50个(pyproject.toml中声明)
 
- 传递依赖: ~103个(自动安装的子依赖)
 
🎯 核心有用依赖分析
1. 🏗️ 核心框架层 (必需)
| 包名 | 
版本 | 
用途 | 
重要性 | 
streamlit | 
1.46.1 | 
主UI框架 | 
⭐⭐⭐⭐⭐ | 
fastapi | 
0.115.14 | 
Web API框架 | 
⭐⭐⭐⭐⭐ | 
uvicorn | 
0.35.0 | 
ASGI服务器 | 
⭐⭐⭐⭐⭐ | 
pydantic | 
2.10.8 | 
数据验证 | 
⭐⭐⭐⭐⭐ | 
2. 📊 数据处理层 (核心)
| 包名 | 
版本 | 
用途 | 
重要性 | 
pandas | 
2.3.1 | 
数据分析 | 
⭐⭐⭐⭐⭐ | 
numpy | 
1.26.4 | 
数值计算 | 
⭐⭐⭐⭐⭐ | 
scipy | 
1.16.1 | 
科学计算 | 
⭐⭐⭐⭐ | 
plotly | 
6.2.0 | 
数据可视化 | 
⭐⭐⭐⭐ | 
3. 🤖 AI/ML层 (Jixia Academy核心)
| 包名 | 
版本 | 
用途 | 
重要性 | 
autogen-agentchat | 
0.6.2 | 
AI辩论系统 | 
⭐⭐⭐⭐⭐ | 
autogen-core | 
0.6.2 | 
AutoGen核心 | 
⭐⭐⭐⭐⭐ | 
autogen-ext | 
0.6.2 | 
AutoGen扩展 | 
⭐⭐⭐⭐⭐ | 
openai | 
1.52.2 | 
OpenAI API | 
⭐⭐⭐⭐⭐ | 
tiktoken | 
0.9.0 | 
Token计算 | 
⭐⭐⭐⭐ | 
4. 💾 数据库层 (重要)
| 包名 | 
版本 | 
用途 | 
重要性 | 
sqlalchemy | 
2.0.42 | 
ORM框架 | 
⭐⭐⭐⭐⭐ | 
sqlmodel | 
0.0.24 | 
SQL模型 | 
⭐⭐⭐⭐ | 
psycopg2-binary | 
2.9.10 | 
PostgreSQL驱动 | 
⭐⭐⭐⭐ | 
asyncpg | 
0.29.0 | 
异步PostgreSQL | 
⭐⭐⭐⭐ | 
alembic | 
1.16.4 | 
数据库迁移 | 
⭐⭐⭐⭐ | 
redis | 
6.2.0 | 
缓存数据库 | 
⭐⭐⭐ | 
5. 💰 金融数据层 (业务核心)
| 包名 | 
版本 | 
用途 | 
重要性 | 
ib-insync | 
0.9.86 | 
Interactive Brokers | 
⭐⭐⭐⭐⭐ | 
yfinance | 
0.2.59 | 
Yahoo Finance | 
⭐⭐⭐⭐ | 
6. 🌐 网络通信层 (必需)
| 包名 | 
版本 | 
用途 | 
重要性 | 
aiohttp | 
3.12.15 | 
异步HTTP客户端 | 
⭐⭐⭐⭐ | 
httpx | 
0.25.2 | 
现代HTTP客户端 | 
⭐⭐⭐⭐ | 
requests | 
2.31.0 | 
同步HTTP客户端 | 
⭐⭐⭐⭐ | 
7. 🔧 工具库层 (有用)
| 包名 | 
版本 | 
用途 | 
重要性 | 
rich | 
14.1.0 | 
终端美化 | 
⭐⭐⭐ | 
click | 
8.1.0 | 
命令行工具 | 
⭐⭐⭐ | 
tqdm | 
4.67.1 | 
进度条 | 
⭐⭐⭐ | 
schedule | 
1.2.2 | 
任务调度 | 
⭐⭐⭐ | 
apscheduler | 
3.11.0 | 
高级调度器 | 
⭐⭐⭐ | 
❓ 可能冗余或低价值依赖
1. 🔄 重复功能包
| 包名 | 
问题 | 
建议 | 
httpx + aiohttp + requests | 
三个HTTP客户端重复 | 
保留httpx和aiohttp,考虑移除requests | 
schedule + apscheduler | 
两个调度器重复 | 
保留功能更强的apscheduler | 
psycopg2-binary + psycopg | 
PostgreSQL驱动重复 | 
保留异步的psycopg | 
2. 📦 传递依赖(自动安装)
这些包是其他包的依赖,通常不需要手动管理:
aiofiles, aiohappyeyeballs, aiosignal 
annotated-types, anyio, async-timeout 
attrs, blinker, certifi 
charset-normalizer, colorama, deprecation 
frozenlist, gitdb, gitpython 
h11, h2, hpack, hyperframe 
idna, jinja2, jsonschema 
markdown-it-py, markupsafe, mdurl 
multidict, packaging, pillow 
protobuf, pyarrow, pydeck 
pygments, python-dateutil, pytz 
referencing, rpds-py, shellingham 
six, smmap, sniffio, soupsieve 
starlette, tenacity, threadpoolctl 
toml, tomli, tomli-w, tornado 
typer, typing-extensions, typing-inspection 
tzdata, tzlocal, urllib3, uvloop 
watchdog, watchfiles, websockets 
yarl, zipp 
3. 🤔 可疑或未使用的包
| 包名 | 
版本 | 
问题 | 
建议 | 
blurhash | 
1.1.4 | 
图像模糊哈希,可能未使用 | 
检查使用情况 | 
gotrue | 
2.9.1 | 
Supabase认证,可能冗余 | 
如果不用Supabase可移除 | 
mastodon-py | 
1.8.1 | 
Mastodon API,使用频率低 | 
考虑按需安装 | 
motor | 
3.1.0 | 
MongoDB异步驱动,项目用PostgreSQL | 
可能不需要 | 
slack-sdk | 
3.36.0 | 
Slack集成,使用频率低 | 
考虑按需安装 | 
storage3 | 
0.7.7 | 
Supabase存储 | 
如果不用Supabase可移除 | 
supabase | 
2.3.4 | 
Supabase客户端 | 
检查实际使用情况 | 
supafunc | 
0.3.3 | 
Supabase函数 | 
如果不用Supabase可移除 | 
4. 🧪 NLP相关包(按需)
| 包名 | 
版本 | 
用途 | 
建议 | 
jieba | 
0.42.1 | 
中文分词 | 
如果Jixia Academy需要则保留 | 
nltk | 
3.8.2 | 
自然语言处理 | 
检查实际使用情况 | 
textblob | 
0.19.0 | 
文本处理 | 
检查实际使用情况 | 
scikit-learn | 
1.7.1 | 
机器学习 | 
检查实际使用情况 | 
🎯 优化建议
立即可移除的包
# 移除重复的HTTP客户端
uv remove requests  # 保留httpx和aiohttp
# 移除重复的调度器
uv remove schedule  # 保留apscheduler
# 移除重复的PostgreSQL驱动
uv remove psycopg2-binary  # 保留psycopg
需要检查使用情况的包
# 搜索代码中的使用情况
grep -r "import motor" src/ app/
grep -r "import supabase" src/ app/
grep -r "import slack_sdk" src/ app/
grep -r "import blurhash" src/ app/
按功能模块化依赖
建议在pyproject.toml中创建可选依赖组:
[project.optional-dependencies]
# 现有的
dev = [...]
production = [...]
nlp = [...]
# 新增的模块化依赖
social = ["mastodon-py", "slack-sdk"]
supabase = ["supabase", "gotrue", "storage3", "supafunc"]
mongodb = ["motor"]
image = ["blurhash"]
📊 依赖健康度评分
| 类别 | 
包数 | 
健康度 | 
说明 | 
| 核心框架 | 
15 | 
🟢 95% | 
都是必需的 | 
| 数据处理 | 
8 | 
🟢 90% | 
核心业务依赖 | 
| AI/ML | 
12 | 
🟢 95% | 
Jixia Academy核心 | 
| 数据库 | 
8 | 
🟡 80% | 
有重复驱动 | 
| 网络通信 | 
6 | 
🟡 75% | 
有重复客户端 | 
| 工具库 | 
25 | 
🟡 70% | 
部分可优化 | 
| 传递依赖 | 
79 | 
🟢 85% | 
自动管理 | 
🎯 总结
✅ 核心有用包 (约100个)
- 所有AutoGen相关包(AI辩论系统核心)
 
- Streamlit和FastAPI(UI和API框架)
 
- Pandas、NumPy(数据处理核心)
 
- SQLAlchemy、PostgreSQL驱动(数据库核心)
 
- IB-Insync、YFinance(金融数据核心)
 
⚠️ 可优化包 (约15个)
- 重复功能包:requests、schedule、psycopg2-binary
 
- 低使用率包:motor、supabase系列、slack-sdk
 
- 可选功能包:blurhash、mastodon-py
 
🔧 优化后预期效果
- 减少约10-15个直接依赖
 
- 减少约20-30个传递依赖
 
- 提升安装速度和环境稳定性
 
- 降低依赖冲突风险
 
建议优先级:
- 🔴 立即移除重复包
 
- 🟡 检查可疑包的使用情况
 
- 🟢 模块化可选依赖