ChatGPT PHP SDK | 软件包
官方和反向工程的PHP版ChatGPT API。
基于 @acheong08 的 ChatGPT 重构
安装
composer require haozi-team/chatgpt-php
V1 网络版 ChatGPT
使用
chat.openai.com
- 免费
- 速率限制
- 需要绕过Cloudflare
默认api端点是 @pengzhile 提供的
https://ai.fakeopen.com/api/
OpenAI速率限制:免费账户每小时50次请求。您可以使用多个账户轮换来绕过限制
Plus账户每小时大约150次请求速率限制
Arkose Token:最近,OpenAI开始要求Arkose Token用于绕过Cloudflare请求对话API,通常SDK可以通过 @pengzhile 的API自动获取它
配置
- 在 OpenAI的ChatGPT 上创建账户
- 保存您的电子邮件和密码
认证
- 访问令牌
登录OpenAI账户并访问 https://chat.openai.com/api/auth/session 以获取您的 access_token。
{
"access_token": "<access_token>"
}
access_token 有效期为30天。
开发者API
基本示例
<?php
use HaoZiTeam\ChatGPT\V1 as ChatGPTV1;
$chatGPT = new ChatGPTV1();
$chatGPT->addAccount('<your_access_token>');
$answers = $chatGPT->ask('你好,你怎么样?');
foreach ($answers as $item) {
print_r($item);
}
//Array(
// 'answer' => '我很好,谢谢。',
// 'conversation_id' => '<uuid>',
// 'parent_id' => '<uuid>',
// 'model' => 'text-davinci-002-render-sha',
// 'account' => '0',
//)
高级示例
您可以传递 "baseUrl" 给第一个参数来设置自定义的API端点。
<?php
use HaoZiTeam\ChatGPT\V1 as ChatGPTV1;
$chatGPT = new ChatGPTV1('https://chat.openai.com/backend-api/');
更多高级开发者用法请参考 wiki。
V2 官方版 ChatGPT
最近由OpenAI发布
- 费用自理
从 https://platform.openai.com/account/api-keys 获取API密钥
开发者API
基本示例
<?php
use HaoZiTeam\ChatGPT\V2 as ChatGPTV2;
$chatGPT = new ChatGPTV2('sk-<your_api_key>');
$chatGPT->addMessage('你是ChatGPT,一个由OpenAI训练的庞大语言模型。尽量简洁地回答。', 'system');
$answers = $chatGPT->ask('你好,你怎么样?');
foreach ($answers as $item) {
print_r($item);
}
高级示例
您可以传递 "baseUrl" 给第二个参数来设置自定义的API端点。
<?php
use HaoZiTeam\ChatGPT\V2 as ChatGPTV2;
$chatGPT = new ChatGPTV2('sk-<your_api_key>', 'https://api.openai.com/');
您可以使用 addMessage
向对话中添加消息。
<?php
use HaoZiTeam\ChatGPT\V2 as ChatGPTV2;
$chatGPT = new ChatGPTV2('sk-<your_api_key>');
$chatGPT->addMessage('你是ChatGPT,一个由OpenAI训练的庞大语言模型。尽量简洁地回答。', 'system');
$chatGPT->addMessage('你好,你怎么样?', 'user');
$chatGPT->addMessage('我很好,谢谢。', 'assistant');
$answers = $chatGPT->ask('之前我问了你什么?');
foreach ($answers as $item) {
print_r($item);
}
//Array(
// 'answer' => '你好,你怎么样?',
// 'id' => 'cmpl-xxxxx',
// 'model' => 'gpt-3.5-turbo',
// 'usage' => [
// "prompt_tokens": 9,
// "completion_tokens": 12,
// "total_tokens": 21,
// ],
//)
您可以设置 stream
参数为 true
以获得生成答案时的流式输出。
<?php
use HaoZiTeam\ChatGPT\V2 as ChatGPTV2;
$chatGPT = new ChatGPTV2('sk-<your_api_key>');
$chatGPT->addMessage('你是ChatGPT,一个由OpenAI训练的庞大语言模型。尽量简洁地回答。', 'system');
$answers = $chatGPT->ask('你好,你怎么样?', null, true);// 一个生成器
foreach ($answers as $item) {
print_r($item);
}
免责声明
这不是一个官方的OpenAI产品。这是一个个人项目,与OpenAI无任何关联。请不要起诉我。
致谢
- acheong08 - Python ChatGPT API