capevace / laravel-gpt
一个用于与 OpenAI 的 GPT-3 交互的 Laravel 扩展包。
v1.0.1
2022-12-13 18:04 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- orhanerday/open-ai: ^3.2
- spatie/laravel-package-tools: ^1.13.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 17:02:01 UTC
README

laravel-gpt
此扩展包提供了一个 类型安全的 接口,用于向 GPT-3 API 发送请求。
use Capevace\GPT\Facades\GPT; $response = GPT::generate( 'Name a thing that is blue.', model: 'text-davinci-003', maxTokens: 400, frequencyPenalty: 1.0, ); echo $response->first(); // "The sky"
安装
您可以通过 composer 安装此扩展包。
composer require capevace/laravel-gpt
配置
您需要 OpenAI GPT-3 API 的 API 密钥。一旦您获得了 API 密钥,您可以在 .env 文件中配置它,添加以下行
OPENAI_API_KEY=your-api-key-here
您也可以直接发布配置文件,但这可能并不是必要的
php artisan vendor:publish --tag="laravel-gpt-config"
用法
Capevace\GPT\GPTService
类提供了向 GPT-3 API 发送请求的方法。您可以将它注入到控制器中或使用外观来访问容器。
# Access via injection use Capevace\GPT\GPTService; class MyController extends Controller { protected GPTService $gpt; public function __construct(GPTService $gpt) { $this->gpt = $gpt; } public function index() { $this->gpt->generate( // .. ); } } # Access via Facade use Capevace\GPT\Facades\GPT; GPT::generate(/* .. */);
GPT::generate(<prompt>, [...options])
generate
方法返回一个包含 GPT-3 API 响应的 GPTResponse
对象。如果没有返回文本(空字符串),该方法将抛出错误。
generate
方法接受以下参数
prompt
(必需): 要发送到 GPT-3 API 的提示model
: 要使用的 GPT-3 模型(默认为 text-davinci-003)temperature
: 一个介于 0 和 1 之间的值,用于确定响应的“创意”程度(默认为 0.83)maxTokens
: 响应中返回的最大标记数(即单词数)(默认为 1200)stop
: 当在响应中遇到时将导致响应结束的字符串(默认为 null)frequencyPenalty
: 一个介于 0 和 1 之间的值,用于确定模型将如何惩罚频繁出现的单词(默认为 0.11)presencePenalty
: 一个介于 0 和 1 之间的值,用于确定模型将如何惩罚不在提示中出现的单词(默认为 0.03)
示例
use Capevace\GPT\Facades\GPT; $response = GPT::generate( 'Generate a list of things that are blue.', model: 'text-davinci-003', maxTokens: 400, frequencyPenalty: 1.0, );
处理响应
generate
方法返回一个包含 GPT-3 API 响应的 GPTResponse
对象。
它有两个方法
$response->first()
(string): 返回 GPT-3 建议的第一个文本$response->all()
(array): 返回 GPT-3 建议的所有文本选项
示例
use Capevace\GPT\Facades\GPT; $response = GPT::generate( 'Name a thing that is blue.', model: 'text-davinci-003', maxTokens: 400, frequencyPenalty: 1.0, ); $firstChoice = $response->first(); // "the sky" $allChoices = $response->all(); // ["the sky", "the ocean" ...]
错误处理
如果在请求 GPT-3 API 时发生错误,generate()
方法将抛出 Capevace\GPT\Support\GPTException
异常。
如果响应不包含任何文本(空字符串),laravel-gpt
也会抛出错误。
示例
use Capevace\GPT\Facades\GPT; use Capevace\GPT\Support\GPTException; use Exception; try { $response = GPT::generate('Do nothing.'); } catch (GPTException $e) { // Exception will be thrown, as the response text is "" } catch (Exception $e) { // Catch connectivity errors etc. }
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。