dmsemenov/openai-attribute

允许从 OpenAi 响应中填充模型属性。

v1.2.3 2023-09-30 17:54 UTC

This package is auto-updated.

Last update: 2024-09-30 02:08:04 UTC


README

GitHub license Latest Version on Packagist Total Downloads

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。有关更多信息,请参阅 许可证文件