Symfony AI组件提供标准化方式集成大模型,支持统一平台接口、智能路由、Agent工具调用及结构化输出,无需手动处理API细节。

在 Symfony 项目中集成大模型实现智能客服,核心不是写一堆 HTTP 请求,而是用标准化、可配置、可切换的方式把 AI 能力变成业务逻辑的一部分。Symfony AI 组件从 v1.0 开始就为此类场景提供了原生支持,无需手动拼接 API、管理密钥或处理不同厂商的响应格式。
统一接入:用 PlatformInterface 屏蔽模型差异
所有主流平台(OpenAI、Gemini、Ollama、Azure、Mistral 等)都通过同一个 PlatformInterface 暴露能力。你只需配置一次,就能在开发、测试、生产环境自由切换模型,不改一行业务代码。
- 安装组件:
composer require symfony/ai-bundle - 配置平台(
config/packages/ai.yaml):ai:<br> platform: 'openai'<br> openai:<br> api_key: '%env(OPENAI_API_KEY)%'
- 在服务中注入并调用:
public function __construct(private PlatformInterface $platform) {}<br>$response = $this->platform->generate('用户问:今天营业时间是几点?');
智能路由:让客服自动选模型,兼顾质量与成本
真实客服场景中,并非所有问题都需要 GPT-4。简单查询用轻量模型,复杂咨询才升档——Symfony 的 FailoverPlatform 和多平台配置天然支持这种策略。
将小说章节转换为电影分镜剧本。用户上传txt/md/docx文本,AI分析场景、角色、情绪、镜头语言,输出专业分镜脚本。适用于用户提及“分镜”“storyboard”“小说转分镜”“影视改编”“镜头脚本”或需要将小说改编为分镜的场景。
- 定义主备平台:
primary_openai: openai: ...<br>backup_ollama: ollama: model: 'llama3.2'
- 组合故障转移链:
production_mix:<br> failover:<br> platforms: ['primary_openai', 'backup_ollama']
- 在客服服务中指定使用该混合策略:
$this->platform = $container->get('ai.platform.production_mix');
增强执行:Agent 自动调用数据库或订单 API
纯文本生成无法查订单、改状态、发通知。Symfony Agent 组件能让 AI 主动判断是否需要工具,并调用你写的 PHP 方法完成真实操作。
- 写一个工具类,比如
OrderStatusTool,实现ToolInterface,在execute()中用 Doctrine 查询订单 - 注册为 AI 工具:
services:<br> App\Service\OrderStatusTool:<br> tags: [ai.tool]
- 在客服控制器中运行 Agent:
$agent = new Agent($platform, [$orderTool]);<br>$result = $agent->run('帮我查一下订单 #12345 的当前状态');
结构化输出:让 AI 返回可直接用的 PHP 对象
客服返回“已发货”不如返回一个带 status、tracking_number、estimated_delivery 的数组或 DTO。Symfony AI 支持 Schema 强约束:
- 定义结构:
$schema = ['type' => 'object', 'properties' => ['status' => ['type' => 'string'], 'tracking_number' => ['type' => 'string']]]; - 传入生成请求:
$platform->generate('根据订单号返回物流状态', schema: $schema); - 结果自动解码为关联数组,可直接赋值给 Symfony 表单或序列化为 JSON 响应
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










