php不运行大模型,而是作为调度中枢通过本地api网关调用已部署的ollama等模型服务;关键在于独立部署后端模型服务,php仅负责安全、稳定、可维护地调用。

PHP本身不运行大模型,而是作为“调度中枢”,通过本地API网关对接已部署的开源大模型服务。真正实现本地化、私有化、离线可用的关键,在于后端模型服务(如Ollama、vLLM、llama.cpp)的独立部署,PHP只负责安全、稳定、可维护地调用它。
一、先搭好本地模型服务(PHP不参与编译)
这是整个流程的前提,PHP只是客户端,不是执行体。推荐优先使用 Ollama —— 它开箱即用、支持x86_64/aarch64、一键拉取Llama 3、Qwen2、Phi-3等主流模型,且默认监听 http://127.0.0.1:11434,天然适配PHP调用。
- 在私有服务器上安装Ollama(Linux示例):
curl -fsSL https://ollama.com/install.sh | sh - 拉取一个轻量模型供测试:
ollama run qwen2:1.5b或ollama pull llama3:8b - 验证服务是否就绪:
curl http://127.0.0.1:11434/api/tags应返回JSON格式的已安装模型列表
二、PHP端接入:用ollama-php SDK(非手写cURL)
直接写cURL容易出错、难维护、不支持流式响应和对话上下文。推荐使用专为PHP设计的 ollama-php SDK,它把REST接口封装成面向对象方法,与Laravel/Symfony等框架无缝集成。
将小说章节转换为电影分镜剧本。用户上传txt/md/docx文本,AI分析场景、角色、情绪、镜头语言,输出专业分镜脚本。适用于用户提及“分镜”“storyboard”“小说转分镜”“影视改编”“镜头脚本”或需要将小说改编为分镜的场景。
- 安装SDK:
composer require ardagnsrn/ollama-php - 初始化客户端(自动识别本地Ollama):
$ollama = new Ollama();(默认连接http://127.0.0.1:11434) - 单次文本生成:
$response = $ollama->generate('qwen2:1.5b', '用PHP写一个计算斐波那契数列的函数'); - 多轮对话(带历史上下文):
$chat = $ollama->chat('qwen2:1.5b', [['role' => 'user', 'content' => '你好']]);
三、生产级加固:权限、超时与错误兜底
私有服务器≠绝对安全。需限制PHP进程对Ollama的访问行为,防止资源耗尽或异常阻塞:
- 设置请求超时(避免模型卡死拖垮Web服务):
$ollama = new Ollama(['timeout' => 30, 'connect_timeout' => 10]); - 禁用危险操作(如禁止PHP代码删除模型):
不在生产环境调用$ollama->delete()或$ollama->pull(),这些应由运维通过脚本或CI统一管理 - 添加简单熔断逻辑:
连续3次请求失败(HTTP 503/0响应)后,暂停调用5秒,并记录告警日志
四、可选增强:让PHP更“懂”模型能力
不同模型支持的功能差异大(比如是否支持system角色、最大上下文长度、是否返回token统计)。可在PHP中做一层轻量元数据管理:
- 建立
model_profiles.php配置文件,按模型名声明能力:['qwen2:1.5b' => ['supports_system' => true, 'max_context' => 32768, 'streaming' => true]] - 调用前动态校验:
若用户请求含system消息,但当前模型不支持,PHP主动降级为user+assistant组合,避免Ollama报错 - 响应后解析
eval_count和prompt_eval_count字段,用于内部Token用量审计
整个流程不依赖外网API密钥,所有推理发生在内网,模型权重存于本地磁盘,PHP仅承担轻量HTTP调度职责——这才是真正可控、可审计、可下线的私有AI集成方式。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










