dejury/gptfaker

一个与 FakerPHP 集成的软件包,用于生成基于 AI 的文本

v1.3.0 2023-07-25 07:36 UTC

This package is auto-updated.

Last update: 2024-09-05 11:06:10 UTC


README

此软件包增加了使用 GPT 生成假文本的可能性。它完全与 Laravel 及其工厂集成。

安装

使用 composer 安装此软件包

composer require dejury/gptfaker --dev

将其添加到您的 .env 文件中

FAKERGPT_OPENAI_API_KEY=<your-api-key>

配置

可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Motivo\GptFaker\GptFakerServiceProvider"

用法

在您的 Laravel 工厂中使用它

<?php

declare(strict_types=1);

namespace Database\Factories;

use App\Models\Page;
use Illuminate\Support\Str;
use Illuminate\Database\Eloquent\Factories\Factory;

class PageFactory extends Factory
{

    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Page::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition(): array
    {
        return [
            'name'    => $this->faker->unique()->gpt('Create an title for the page'),
            'slug'    => $this->faker->slug,
            'content' => $this->faker->gpt('Create a short paragraph for the page'),
            'visible' => true,
        ];
    }
}

后备

如果 ChatGPT 无法创建响应,API 密钥未设置或 FakerGPT 不应在给定环境中执行,则可以提供后备。默认情况下,此值设置为 null,因此强烈建议提供有效的后备。

$this->faker->gpt(
    'Create a short paragraph for the page', 
    $this->faker->paragraph
),

多语言

ChatGPT 理解的任何语言中的提示都受接受。结果将翻译成您配置的 faker 本地化。

多个提示

可以提供一个提示数组

$choices = $this->faker->unique()->gpt(
    prompt: [
        "Maak een functietitel binnen de zorg aan",
        "Maak een korte titel over het werken in de zorg",
        "Maak een korte quote over het werken in de zorg",
        "Maak een korte alinea over het werken in de zorg",
    ],
    returnArray: true
);

return [
    'overview_pretitle' => Str::of($choices[0]?->text)->trim(),
];

环境

可以配置 FakerGPT 应在哪些环境中执行。默认情况下,这仅适用于 local 环境。可以通过发布配置文件(如上所述)并覆盖 environment 配置来更改此设置。

修剪引号

ChatGPT 有可能在句子开头和结尾使用引号,尤其是在请求标题时,这通常是不希望的。可以按照以下方式修剪这些引号

$this->faker->unique()->gpt(
    prompt: "Maak een functietitel binnen de zorg aan",
    trimQuotes: true
);

性能模式

可以通过启用性能模式来显着提高工厂/种子进程的速度。这将同时执行相同的提示几次,而不是进行多次请求,并缓存结果。每个结果只会使用一次。当缓存为空时,将获取新的一批。这是一个可选功能,因为它可能耗尽令牌以缓存可能永远不会使用的结果,因此使用成本更高。

可以通过向您的 .env 文件中添加以下行来启用此功能

FAKERGPT_PERFORMANCE_MODE=true

持久缓存

通常只需要生成一次假数据,而不是每次执行种子进程时都生成,这对于成本和执行速度都很有利。在这种情况下,可以启用持久缓存。这将提示及其结果缓存在 .fakergpt_cache.php 中。

FAKERGPT_PERSISTENT_CACHE=true

持久缓存的一个副作用(以及潜在的好处)是生成的内容是可预测的。

与大多数缓存文档不同,当启用此功能时,强烈建议提交 .fakergpt_cache.php