之前写的《ChatApI 本地如何调用》是直接下载ChatGPT SDK当做单独项目开发使用的,这次写的是整合到当前项目中使用ChatGPT 合并为一个项目去使用;具体操作方法也有一定区别。
目录
1.安装ChatGPT SDK
2.加载ChatGPT类库
3.安装guzzlehttp
4.代码实操
总结
1.安装ChatGPT SDK
安装命令:
composer require tectalic/openai
2.加载ChatGPT类库
查看ChatGPT类库配置
tectalic/openai - Packagist
添加ChatGPT类库配置到composer.json相应位置
即:
require
require-dev
在require、require-dev原来信息的基础上添加这些类库
我使用的是laravel框架,默认是有phpunit类库的,所以不需要在加上去。
如果没有请安装。
命令:
composer require phpunit/phpunit
也可以直接添加到require属性的最后一个
"phpunit/phpunit": "^8.5.14 || ^9.5"
然后执行composer update
3.安装guzzlehttp
按理说不用安装的,不过发现vendor/guzzlehttp中没有guzzle/promises,
只有psr7,所以需要安装
命令
composer require guzzlehttp/guzzle
安装完成,vendor/guzzlehttp下多出两个文件夹
4.代码实操
设置路由
// 测试chatGPT
Route::post('productGPT', 'ApiProductOrderController@index');
控制器方法
public function index()
{
require '../vendor/autoload.php';
$text = request()->input('text');
$open_api_key = '你的Open Ai key';
$openaiClient = \Tectalic\OpenAi\Manager::build(
new \GuzzleHttp\Client(),
new \Tectalic\OpenAi\Authentication($open_api_key)
);
/** @var \Tectalic\OpenAi\Models\Completions\CreateResponse $response */
$response = $openaiClient->completions()->create(
new \Tectalic\OpenAi\Models\Completions\CreateRequest([
'model' => 'text-davinci-003',
'prompt' => $text, // 设置问题
'max_tokens' => 500, // 设置答案长度 不设置只显示部分字符
])
)->toModel();
print_r($response->choices[0]->text);die;
}
测试请求
总结
基本上完成了,实际使用中,还需要对用户提交的文本进行验证和敏感词处理。
并对输出数据进行业务处理后,设置好相应的格式输出。