本地模型管理
Local Model Management
本地 LLM 模型的下载、注册、选择和推理后端管理
子问题
1.多源下载(HuggingFace/ModelScope)
2.量化格式自动选择
3.推理后端适配
4.模型清单管理
5.同步后端到异步框架的桥接(线程池 + asyncio.Queue)
6.本地模型输出标签解析(<think>/<tool_call>)
7.MLX 目录结构完整性校验
8.Provider 系统与本地模型清单的双向同步
各项目的解法1 solutions
Signals
横向对比
| 维度 | CoPaw |
|---|---|
| 下载源 | HuggingFace + ModelScope 双源,延迟导入按需安装 |
| 量化选择 | 自动优先 Q4_K_M,fallback 到第一个 GGUF 文件 |
| 后端架构 | LocalBackend ABC 策略模式,llamacpp + MLX 双后端 |
| 模型注册 | manifest.json + Pydantic 校验,支持按后端过滤 |
| 资源管理 | threading.Lock 单例工厂,切换时自动 unload 释放 VRAM |
| 框架集成 | ChatModelBase 适配器 + tag_parser 标签解析桥接 agentscope |
| API 暴露 | CLI(Click) + FastAPI 异步下载任务 + 取消支持 |
最佳实践
1.manifest.json 注册表追踪已下载模型元数据
2.单例工厂 + threading.Lock 保证同时只加载一个模型避免 OOM
3.延迟导入可选依赖(huggingface_hub/modelscope/llama_cpp/mlx_lm)通过 pip extras 按需安装
4.后端输出统一为 OpenAI 兼容格式实现上层无感切换