4mesolutions/php-auto-prompt

PHPAutoPrompt是一个使用OpenAI API或Anthropic API生成提示的PHP类。

dev-main 2024-10-01 07:10 UTC

This package is auto-updated.

Last update: 2024-10-01 07:10:24 UTC


README

OpenAIPromptDataGenerator是一个PHP库,用于根据提供的配置和提示,使用AI语言模型(OpenAI GPT或Anthropic Claude)生成数据示例。此工具用于创建数据集、测试提示以及为各种自然语言处理任务生成多样化的示例。

目录

  1. 功能
  2. 要求
  3. 安装
  4. 使用
  5. 配置
  6. 类概述
  7. 示例

功能

  • 使用OpenAI GPT或Anthropic Claude模型生成示例
  • 可配置示例数量、模型和输出格式
  • 支持单次和多次生成
  • 可选多样化生成的示例
  • API请求自动重试,使用指数退避
  • 进度条跟踪生成过程
  • 输出为序列化PHP数组或CSV文件

要求

  • PHP 7.4或更高版本
  • Composer(用于管理依赖项)
  • OpenAI API密钥或Anthropic API密钥

安装

  1. 克隆存储库

    git clone https://github.com/yourusername/OpenAIPromptDataGenerator.git
    
  2. 安装依赖项

    composer install
    
  3. 设置API密钥

    • 对于OpenAI:设置OPENAI_API_KEY环境变量
    • 对于Anthropic:设置ANTHROPIC_API_KEY环境变量

使用

  1. 创建一个包含所需设置的配置数组。
  2. 使用配置实例化Config类。
  3. 使用配置创建OpenAIPromptDataGenerator实例。
  4. 调用generateExamples()方法生成数据。

配置

Config类接受以下选项的关联数组

  • api_key:您的API密钥(如果已作为环境变量设置,则为可选)
  • prompt:用于生成的提示
  • input_function:描述输入函数及其参数的数组
  • number_of_examples:要生成的示例数量(默认:5)
  • model_name:要使用的AI模型名称(默认:'gpt-3.5-turbo')
  • output_path:保存序列化输出的路径(可选)
  • output_csv_path:保存CSV输出的路径(可选)
  • single_shot:是否使用单次生成(默认:false)
  • diversify:是否多样化生成的示例(默认:false)
  • expected_param_name:输出中期望的参数名称
  • fixed_input:添加到所有生成的示例中的固定输入(可选)
  • api_type:要使用的API类型('openai'或'anthropic',默认:'openai')

类概述

  1. OpenAIPromptDataGenerator:协调示例生成过程的主要类。
  2. Config:处理生成器的配置设置。
  3. APIClient:管理与OpenAI或Anthropic的API交互,包括错误处理和重试。
  4. DataProcessor:准备API请求的消息并处理输出。
  5. Utilities:提供用于将数据保存到文件的实用函数。
  6. Example:表示单个生成的示例。
  7. ProgressBar:在生成过程中显示进度条。

示例

<?php

require_once 'vendor/autoload.php';

$config = new Config([
    'prompt' => 'Generate a random person's name and age.',
    'input_function' => [
        'name' => 'generate_person',
        'parameters' => [
            'min_age' => 'int',
            'max_age' => 'int',
        ],
    ],
    'number_of_examples' => 10,
    'model_name' => 'gpt-3.5-turbo',
    'output_csv_path' => 'output.csv',
    'expected_param_name' => 'person',
    'api_type' => 'openai',
]);

$generator = new OpenAIPromptDataGenerator($config);
$examples = $generator->generateExamples();

print_r($examples);

此示例将使用OpenAI GPT-3.5-turbo模型生成10个随机的姓名和年龄,并将结果保存到output.csv中。