提示:不要相信任何“自动安全加固”的第三方 wrapper。我们测试过 7 个号称“开箱即用”的 Local Agent 框架,其中 5 个在默认配置下会开启 debug 日志并监听公网地址。安全不是功能开关,而是每行代码的意图确认。2.2 Ollama 与 LangGraph 的耦合逻辑:为什么非得是这对组合?
注意:不要在 LangGraph 的 node 里直接调用 OCR。我们曾因在 DocumentParserNode 中嵌入 pytesseract.image_to_string ,导致每次 OCR 调用都 fork 新进程,内存泄漏累积 4 小时后达 18GB。正确做法是预处理作为独立服务,输出 JSON 结构化结果,LangGraph 只消费该 JSON。3.2 法律条款抽取模块:Prompt 工程的物理约束
实操心得:RAG 适合广度,LoRA 适合深度。我们给客户交付的 Legal Sentinel 系统中,RAG 库每月更新一次法规,LoRA 适配器每季度根据新签合同迭代一次,形成“法规层稳定、客户层进化”的双轨机制。3.4 合规检查模块:规则引擎与大模型的协同边界
| 组件 | 最低要求 | 推荐配置 | 关键原因 |
| CPU | 16 核 | 32 核 (AMD EPYC 7763) | PDF 解析、OCR、文本预处理均为 CPU 密集型,多核并行提升 3.2x 吞吐 |
| 内存 | 64GB | 128GB DDR4 ECC | Ollama 加载 70B 模型需 ~45GB,LangGraph state + OS 缓冲需 ≥30GB,ECC 内存防 bit-flip 导致法律文本错字 |
| GPU | 1×A100 40GB | 2×A100 40GB | 单卡处理 70B 模型时, OLLAMA_GPU_LAYERS=40 会吃满显存,双卡可启用 OLLAMA_NUM_GPU=2 实现模型层分片,降低单卡压力 |
| 存储 | 2TB NVMe SSD | 4TB RAID1 NVMe | 模型文件(70B GGUF 约 42GB)、向量库(10GB)、日志(日均 5GB)需高 IOPS,RAID1 防止单盘故障导致合同解析中断 |
注意:不要在虚拟机中部署。我们测试过 VMware ESXi 7.0,其 CPU 虚拟化开销导致 OCR 步骤耗时增加 22%,且 cpupower 命令在 VM 中无效。Legal Sentinel 必须裸金属部署。4.2 Ollama 安装与模型定制
| 并发用户数 | 平均响应时间 | 95% 响应时间 | 错误率 | CPU 平均利用率 | GPU 显存占用 |
| 1 | 42.3s | 45.1s | 0% | 48% | 38.2GB |
| 5 | 43.7s | 48.9s | 0% | 62% | 38.2GB |
| 10 | 45.2s | 52.4s | 0.3% | 79% | 38.2GB |
| 20 | 58.6s | 73.1s | 12.7% | 98% | 38.2GB |
| 问题现象 | 根本原因 | 排查命令 | 解决方案 |
| ollama list 显示模型但 ollama run legal-sentinel 报错 model not found | Ollama 服务未加载自定义模型,或 Modelfile 中 FROM URL 不可达 | journalctl -u ollama -n 50 --no-pager | 检查 journal 日志中的 pulling model 行;若失败,手动 curl -I 测试 URL 可达性;改用本地文件 `FROM ./models/llama-3.Q5_K_M |
| 欢迎光临 AI创想 (https://llms-ai.com/) | Powered by Discuz! X3.4 |