PHP SDK 集成教程
快速集成 LLM API 到您的 PHP 应用,支持 Laravel、Symfony 等主流框架
Composer安装
一行命令完成
简单配置
开箱即用
高性能
异步并发支持
框架集成
Laravel/Symfony
一、安装与配置
Composer安装
# 使用 Composer 安装
composer require n1n/llm-api-php
# 或者在 composer.json 中添加
{
"require": {
"n1n/llm-api-php": "^1.0"
}
}
# 如果使用 Guzzle HTTP 客户端
composer require guzzlehttp/guzzle系统要求
- • PHP >= 7.4
- • Composer 2.0+
- • ext-json 扩展
- • ext-curl 或 Guzzle HTTP 客户端
二、基础使用
快速开始
<?php
require_once 'vendor/autoload.php';
use N1N\LLMClient;
use N1N\Models\ChatMessage;
// 初始化客户端
$client = new LLMClient([
'api_key' => 'your-api-key',
'base_url' => 'https://api.n1n.ai/v1'
]);
try {
// 基础对话
$response = $client->chat()->create([
'model' => 'gpt-3.5-turbo',
'messages' => [
['role' => 'system', 'content' => '你是一个有帮助的助手'],
['role' => 'user', 'content' => '介绍一下PHP语言']
],
'temperature' => 0.7,
'max_tokens' => 500
]);
echo $response->choices[0]->message->content;
// 使用消息对象
$messages = [
new ChatMessage('system', '你是一个PHP专家'),
new ChatMessage('user', '如何使用PHP连接数据库?')
];
$response = $client->chat()->create([
'model' => 'gpt-4o-mini',
'messages' => $messages
]);
// 获取使用统计
echo "使用Token数: " . $response->usage->total_tokens . "\n";
echo "成本: $" . $response->usage->cost . "\n";
} catch (Exception $e) {
echo "错误: " . $e->getMessage();
}三、流式响应
实时输出
<?php
use N1N\LLMClient;
$client = new LLMClient(['api_key' => 'your-api-key']);
// 流式响应
$stream = $client->chat()->createStream([
'model' => 'gpt-3.5-turbo',
'messages' => [
['role' => 'user', 'content' => '写一个长篇故事']
],
'stream' => true
]);
// 处理流式数据
foreach ($stream as $chunk) {
if (isset($chunk->choices[0]->delta->content)) {
echo $chunk->choices[0]->delta->content;
ob_flush(); // 立即输出到浏览器
flush();
}
}
// 使用回调处理流
$client->chat()->streamWithCallback(
[
'model' => 'gpt-3.5-turbo',
'messages' => [['role' => 'user', 'content' => '你好']]
],
function($chunk) {
// 处理每个数据块
if ($content = $chunk->choices[0]->delta->content ?? null) {
echo $content;
}
},
function($error) {
// 错误处理
echo "流错误: " . $error->getMessage();
}
);💡 流式响应提示
- • 使用 ob_flush() 和 flush() 确保实时输出
- • 设置 set_time_limit(0) 避免脚本超时
- • 禁用输出缓冲:ob_end_flush()
- • Nginx配置:proxy_buffering off;
四、框架集成
Laravel 集成
- ✅ Service Provider 自动注册
- ✅ Facade 门面支持
- ✅ 队列任务集成
- ✅ 缓存响应支持
- ✅ 日志记录集成
Symfony 集成
- ✅ Bundle 配置
- ✅ 依赖注入容器
- ✅ Event Dispatcher
- ✅ Monolog 日志集成
- ✅ 缓存组件支持
五、错误处理
认证错误 (401)
检查 API Key 是否正确配置
限流错误 (429)
实施重试机制,遵守 Retry-After 头
请求错误 (400)
验证请求参数格式和模型名称
服务器错误 (500)
实施指数退避重试策略
六、高级功能
Function Calling
调用自定义函数,扩展AI能力
批量处理
并发处理多个请求,提升效率
会话管理
维护对话上下文,智能对话
响应缓存
Redis/Memcached缓存优化
异步处理
ReactPHP异步非阻塞调用
队列任务
后台处理长时间运行任务
七、最佳实践
🔒 安全建议
- ✅ 使用环境变量存储API Key
- ✅ 实施请求签名验证
- ✅ 设置IP白名单
- ✅ 加密敏感数据传输
- ✅ 定期轮换API密钥
⚡ 性能优化
- ✅ 使用Redis缓存响应
- ✅ 实施连接池
- ✅ 异步并发请求
- ✅ 合理设置超时时间
- ✅ 使用队列处理批量任务
📦 推荐包
- • guzzlehttp/guzzle - HTTP客户端
- • predis/predis - Redis缓存
- • react/event-loop - 异步处理
- • symfony/cache - 缓存组件