# EzVibe AI 桌宠系统 — 依赖清单
# 安装: pip install -r requirements.txt
# Python >= 3.10
# 推荐: conda create -n ezvibe python=3.12 && conda activate ezvibe

# ─────────────────────────────────────────────────────────────────
# 核心依赖（必须安装）
# ─────────────────────────────────────────────────────────────────

# 数值计算
numpy>=1.26.0

# ── 向量记忆 / 语义检索 ──
# sklearn 提供 TF-IDF（DummyEmbedder 开发/测试用）
# 生产环境请替换为真实 embedding 服务（Ollama / OpenAI / HuggingFace）
scikit-learn>=1.5.0

# ── 异步 HTTP 客户端 ──
# aiohttp: AgentBrain.OllamaBackend 调用本地 LLM 服务
aiohttp>=3.10.0

# ── API 服务 ──
# FastAPI: HTTP REST + WebSocket 服务端
# uvicorn[standard]: ASGI 服务器（asyncio 高性能）
# sse-starlette: Server-Sent Events（可选，备选 WebSocket）
# starlette: FastAPI 底层框架
fastapi>=0.115.0
uvicorn[standard]>=0.30.0
sse-starlette>=2.1.0
starlette>=0.40.0

# ── 数据验证 ──
# pydantic: API 请求/响应模型（BaseModel）
pydantic>=2.9.0

# ── 测试 ──
pytest>=8.3.0


# ─────────────────────────────────────────────────────────────────
# 可选依赖（按需安装）
# ─────────────────────────────────────────────────────────────────

# ── LLM 后端 ──
# OpenAI SDK: OpenAIBackend（生产环境推荐）
# openai>=1.50.0

# Ollama: 本地运行 LLM（推荐！免费、私密）
# 下载: https://ollama.com/download
# 运行: ollama serve  # 启动服务
# 推荐模型: ollama pull qwen2.5  /  ollama pull llama3.2
# ollama-python>=0.3.0  # 可选，当前使用原生 aiohttp 调用


# ── 大规模向量检索（可选，进阶优化） ──
# FAISS: Facebook 高性能向量索引（>10k 条记忆时推荐）
# pip install faiss-cpu  # CPU 版本
# pip install faiss-gpu  # GPU 版本（如果有 NVIDIA GPU）

# ChromaDB: 独立向量数据库（多用户场景）
# pip install chromadb


# ── 表现层（UI） ──
# PyQt6: Qt6 Python 绑定（推荐，正式项目）
# PySide6: Qt6 Python 绑定（PySide 公司官方，LGPL 许可）
# 两者 API 基本兼容，二选一安装
PyQt6>=6.8.0
# PySide6-Essentials>=6.8.0


# ── 音频（感知层） ──
# 用于语音输入 / 语音合成（TTS）
# pip install sounddevice soundfile  # 音频录制
# gtts>=2.5.0  # Google TTS（需要网络）
# edge-tts>=7.0.0  # 微软 Edge TTS（无需 API key，效果好）


# ─────────────────────────────────────────────────────────────────
# 开发工具
# ─────────────────────────────────────────────────────────────────

# 类型检查
mypy>=1.13.0

# 代码格式化
ruff>=0.7.0

# 依赖锁定（生产环境推荐）
# pip-compile  # from pip-tools


# ─────────────────────────────────────────────────────────────────
# 快速安装命令
# ─────────────────────────────────────────────────────────────────

# 最小安装（仅核心功能，不含 UI）
# pip install numpy scikit-learn aiohttp fastapi 'uvicorn[standard]' pydantic pytest

# 完整安装（含 UI）
# pip install numpy scikit-learn aiohttp fastapi 'uvicorn[standard]' pydantic pytest PyQt6

# 仅 API 服务（无本地 LLM）
# pip install fastapi 'uvicorn[standard]' sse-starlette pydantic numpy
