dmsemenov / openai-attribute
允许从 OpenAi 响应中填充模型属性。
v1.2.3
2023-09-30 17:54 UTC
Requires
- php: ^8.1
- illuminate/support: ^8.0|^9.0|^10.0
- openai-php/client: ^0.6.3
Requires (Dev)
- orchestra/testbench: ~8
- phpunit/phpunit: ~9.0
README
Laravel 扩展包,允许为 Laravel 模型定义 ChatGPT 生成的属性,如描述或其他 "文本" 属性。
安装
- 安装包
composer require dmsemenov/openai-attribute
- 将您的 OpenAI api 密钥
OPENAI_API_KEY
添加到.env
文件中。密钥可以在以下位置找到:[https://platform.openai.com/account/api-keys](https://platform.openai.com/account/api-keys)
配置
如有需要,发布配置
php artisan vendor:publish --provider="Dmsemenov\OpenaiAttribute\OpenaiAttributeServiceProvider"
可以在发布的配置或模型中的 generatedAttributes()
方法中指定请求选项。
可用的请求选项请参阅 OpenApi 文档页面。
// OpenAI api key 'api_key' => env('OPENAI_API_KEY'), // Queue name for generate attributes jobs 'queue_name' => env('OPENAI_QUEUE_NMAE', 'openai_generate'), // Default options for api chat completions requests. 'default_options' => [ 'model' => env('OPENAI_API_MODEL', 'gpt-3.5-turbo'), 'temperature' => 0.3, 'max_tokens' => 100, 'top_p' => 1.0, 'frequency_penalty' => 0.0, 'presence_penalty' => 0.0 ],
用法
将 traits HasGeneratedAttributes
添加到模型中。它包含具有提示和选项(如果需要,请参阅 default_options)的模型属性列表。
public function generatedAttributes(): array { return [ 'description' => [ 'prompt' => 'Tell info about [model:name]". Wrap each paragraph to tag <p>', 'max_tokens' => 1000 ], 'slug' => [ 'prompt' => 'Generate slug from [model:name]', 'max_tokens' => 10 ], ]; }
符合 [MyModel]->NeedsGenerateAttributes()
中条件的模型将被选中进行属性生成。默认:所有。
用于生成属性的 Artisan 命令
php artisan openai:generate App\\Models\\[MyModel] --queued
或立即生成,无需队列选项
php artisan openai:generate App\\Models\\[MyModel]
或指定模型 ID 列表
php artisan openai:generate App\\Models\\[MyModel] --ids=1 --ids=2
其他有用的命令
Display queue size:
php artisan queue:monitor openai_generate
Remove jobs from queue:
php artisan queue:clear --queue=openai_generate
Run workers:
php artisan queue:work --queue=openai_generate
变更日志
请参阅变更日志,了解最近发生了什么变化。
测试
$ composer test
贡献
请参阅 contributing.md 以获取详细信息和一个待办事项列表。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 dimitr.semenov@gmail.com 联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT。有关更多信息,请参阅 许可证文件。