iteks/laravel-openai

一个强大的包,可以将OpenAI的高级AI功能无缝集成到您的Laravel应用程序中。此包提供快速设置和直观配置,以利用AI模型进行聊天、嵌入等功能。

v1.0.3 2024-07-26 16:57 UTC

This package is auto-updated.

Last update: 2024-09-26 17:21:23 UTC


README

Laravel OpenAI

Total Downloads Latest Stable Version License

Laravel OpenAI是一个由社区维护的PHP API客户端,是一个强大且用户友好的包,旨在将OpenAI的高级AI功能无缝集成到您的Laravel应用程序中。此包简化了与OpenAI API的交互,提供了一种优雅的界面,可以快速利用各种AI模型进行聊天、嵌入等。通过环境变量进行直观配置并通过专门的Laravel服务提供商进行平滑集成,Laravel OpenAI确保您可以快速高效地开始使用OpenAI端点。通过使用这个多才多艺且易于使用的客户端,利用OpenAI的AI模型来增强您的Laravel应用程序。

iteks提供,由jeramyhing开发。

开始使用

需要PHP 8.1+

通过Composer包管理器安装 Laravel OpenAI

composer require iteks/laravel-openai

在您的.env文件中设置OpenAI API密钥和基本URI。这些配置是必需的

OPENAI_API_KEY=
OPENAI_BASE_URI=

要探索更多可选配置,请使用以下命令发布包配置文件

php artisan vendor:publish --provider="Iteks\Providers\OpenAiServiceProvider" --tag=config

用法

包含OpenAi门面。

use Iteks\Support\Facades\OpenAi;

对于API调用,应直接将所需参数传递给门面方法,而无需将其包装在数组中。可选参数可以作为关联数组包含在末尾。每个方法的文档都包含一个链接到官方API参考,以获取更多详细信息。

// Example of a required parameter
$response = OpenAi::chat('Your message here');

// Example with optional parameters
$response = OpenAi::chat('Your message here', ['temperature' => 0.7, 'max_tokens' => 150]);

ENDPOINTS

音频

创建语音

从输入文本生成音频。 查看所有选项的官方文档。

OpenAi::audio()->createSpeech('tts-1', 'The quick brown fox jumped over the lazy dog.', 'alloy');

顶部

创建转录

将音频转录为输入语言。 查看所有选项的官方文档。

OpenAi::audio()->createTranscription(fopen('@/path/to/file/audio.mp3', 'r'), 'whisper-1');

顶部

创建翻译

将音频翻译成英文。 查看所有选项的官方文档。

OpenAi::audio()->createTranslation('@/path/to/file/german.m4a', 'whisper-1');

顶部

聊天

创建聊天完成

为给定的聊天会话创建模型响应。 查看所有选项的官方文档。

OpenAi::chat()->create(
    [
        ['role' => 'system', 'content' => 'You are a helpful assistant.',],
        [ 'role' => 'user', 'content' => 'Hello!', ],
    ],
    'gpt-4o'
);

顶部

嵌入

创建嵌入

创建表示输入文本的嵌入向量。 查看所有选项的官方文档。

OpenAi::embeddings()->create(
    'The food was delicious and the waiter...',
    'text-embedding-ada-002',
    ['encoding_format' => 'float']
);

顶部

微调

创建微调作业

创建一个微调作业,该作业从给定的数据集中开始创建新模型的流程。 查看所有选项的官方文档。

OpenAi::fineTuning()->create('gpt-3.5-turbo', 'file-BK7bzQj3FfZFXr7DbL6xJwfo');

顶部

列出微调作业

列出您组织的微调作业。 查看所有选项的官方文档。

OpenAi::fineTuning()->list();

顶部

列出微调事件

获取微调作业的状态更新。 查看所有选项的官方文档。

OpenAi::fineTuning()->listEvents('ftjob-abc123');

顶部

列出微调检查点

列出微调作业的检查点。 查看所有选项的官方文档。

OpenAi::fineTuning()->listCheckpoints('ftjob-abc123');

顶部

检索微调作业

获取微调作业的信息。 查看所有选项的官方文档。

OpenAi::fineTuning()->retrieve('ft-AF1WoRqd3aJAHsqc9NY7iL8F');

顶部

取消微调

立即取消微调作业。 查看所有选项的官方文档。

OpenAi::fineTuning()->cancel('ftjob-abc123');

顶部

批量

创建批量

从上传的请求文件中创建和执行一个批量操作。 查看所有选项的官方文档。

OpenAi::batch()->create('file-abc123', '/v1/chat/completions', '24h');

顶部

检索批量

检索一个批量操作。 查看所有选项的官方文档。

OpenAi::batch()->retrieve('batch_abc123');

顶部

取消批量

取消一个正在进行的批量操作。 查看所有选项的官方文档。

OpenAi::batch()->cancel('batch_abc123');

顶部

列出批量

列出您组织的批量操作。 查看所有选项的官方文档。

OpenAi::batch()->list();

顶部

文件

上传文件

上传一个可以跨各种端点使用的文件。单个文件的大小最多为512 MB,一个组织上传的所有文件的总大小最多为100 GB。 查看所有选项的官方文档。

OpenAi::files()->create(fopen('@mydata.jsonl', 'r'), 'fine-tune');

顶部

列出文件

返回属于用户组织的文件列表。 查看所有选项的官方文档。

OpenAi::files()->list();

顶部

检索文件

返回有关特定文件的信息。 查看所有选项的官方文档。

OpenAi::files()->retrieve('file-abc123');

顶部

删除文件

删除文件。查看官方文档了解所有选项。

OpenAi::files()->delete('file-abc123');

顶部

检索文件内容

返回指定文件的文件内容。查看官方文档了解所有选项。

OpenAi::files()->retrieveContents('file-abc123');

顶部

图片

创建图片

根据提示创建图像。查看官方文档了解所有选项。

OpenAi::images()->create(
    'A cute baby sea otter',
    [
        'model' => 'dall-e-3',
        'n' => 1,
        'size' => '1024x1024',
    ]
);

顶部

创建图片编辑

根据原始图像和提示创建编辑后的或扩展的图像。查看官方文档了解所有选项。

OpenAi::images()->createEdit(
    'fopen('@otter.png', 'r')',
    'A cute baby sea otter wearing a beret',
    [
        'mask' => '@mask.png',
        'n' => 2,
        'size' => '1024x1024',
    ]
);

顶部

创建图片变体

创建给定图像的变体。查看官方文档了解所有选项。

OpenAi::images()->createVariation(
    'fopen('@otter.png', 'r')',
    [
        'n' => 2,
        'size' => '1024x1024',
    ]
);

顶部

模型

列出模型

列出当前可用的模型,并提供有关每个模型的基本信息,例如所有者和可用性。查看官方文档了解所有选项。

OpenAi::models()->list();

顶部

检索模型

检索模型实例,提供有关模型的基本信息,例如所有者和权限。查看官方文档了解所有选项。

OpenAi::models()->retrieve('gpt-3.5-turbo-instruct');

顶部

删除微调模型

删除微调模型。您必须拥有组织中的所有者角色才能删除模型。查看官方文档了解所有选项。

OpenAi::models()->delete('ft:gpt-3.5-turbo:acemeco:suffix:abc123');

顶部

审查

创建审查

判断文本是否可能有害。查看官方文档了解所有选项。

OpenAi::moderations()->create('I want to kill them.');

顶部

助手

助手

创建助手

使用模型和指令创建助手。查看官方文档了解所有选项。

OpenAi::assistants()->create(
    'gpt-4-turbo',
    [
        'instructions' => 'You are a personal math tutor. When asked a question, write and run Python code to answer the question.',
        'name' => 'Math Tutor',
        'tools' => [['type' => 'code_interpreter']],
    ]
);

顶部

列出助手

返回助手列表。查看官方文档了解所有选项。

OpenAi::assistants()->list();

顶部

检索助手

检索助手。查看官方文档了解所有选项。

OpenAi::assistants()->retrieve('asst_abc123');

顶部

修改助手

修改助手。查看官方文档了解所有选项。

OpenAi::assistants()->modify(
    'asst_idcmCPkquyQbqOpdJOEb6wCO',
    [
        'instructions' => 'You are an HR bot, and you have access to files to answer employee questions about company policies. Always response with info from either of the files.',
        'tools' => [['type' => 'file_search']],
        'model' => 'gpt-4-turbo',
    ]
);

顶部

删除助手

删除助手。查看官方文档了解所有选项。

OpenAi::assistants()->delete('asst_abc123');

顶部

线程

创建线程

创建线程。查看官方文档了解所有选项。

OpenAi::threads()->create();

顶部

检索线程

检索线程。查看官方文档了解所有选项。

OpenAi::threads()->retrieve('thread_abc123');

顶部

修改线程

修改线程。查看官方文档了解所有选项。

OpenAi::threads()->modify(
    'thread_abc123',
    [
        'metadata' => [
            'modified' => 'true',
            'user' => 'abc123',
        ],
    ]
);

顶部

删除线程

删除线程。查看官方文档了解所有选项。

OpenAi::threads()->delete('thread_abc123');

顶部

消息

创建消息

创建消息。查看官方文档了解所有选项。

OpenAi::messages()->create(
    'thread_abc123',
    'user',
    'How does AI work? Explain it in simple terms.'
);

顶部

列出消息

返回给定线程的消息列表。查看官方文档了解所有选项。

OpenAi::messages()->list('thread_abc123');

顶部

检索消息

检索消息。查看官方文档了解所有选项。

OpenAi::messages()->retrieve('thread_abc123', 'msg_abc123');

顶部

修改消息

修改消息。查看官方文档了解所有选项。

OpenAi::messages()->modify(
    'thread_abc123',
    'msg_abc123',
    [
        'metadata' => [
            'modified' => 'true',
            'user' => 'abc123',
        ],
    ]
);

顶部

删除消息

删除消息。查看官方文档了解所有选项。

OpenAi::messages()->delete('thread_abc123', 'msg_abc123');

顶部

运行

创建运行

创建一个运行。 查看官方文档了解所有选项。

OpenAi::runs()->create('thread_abc123', 'asst_abc123');

顶部

创建线程和运行

创建一个线程并在一个请求中运行它。 查看官方文档了解所有选项。

OpenAi::runs()->createThreadAndRun(
    'asst_abc123',
    [
        'messages' => [
            [
                'role' => 'user',
                'content' => 'Explain deep learning to a 5 year old.',
            ],
        ],
    ]
);

顶部

列出运行

返回属于一个线程的运行列表。 查看官方文档了解所有选项。

OpenAi::runs()->list('thread_abc123');

顶部

检索运行

检索一个运行。 查看官方文档了解所有选项。

OpenAi::runs()->retrieve('thread_abc123', 'run_abc123');

顶部

修改运行

修改一个运行。 查看官方文档了解所有选项。

OpenAi::runs()->modify(
    'thread_abc123',
    'run_abc123',
    [
        'metadata' => [
            'user' => 'user_abc123',
        ],
    ]
);

顶部

将工具输出提交到运行

当运行状态为:"requires_action" 且 required_action.type 为 submit_tool_outputs 时,此端点可用于提交工具调用的输出,一旦所有输出都已完成。 查看官方文档了解所有选项。

OpenAi::runs()->submitToolOutputs(
    'thread_abc123',
    'run_abc123',
    [
        0 => [
            'tool_call_id' => 'call_001',
            'output' => '70 degrees and sunny.',
        ],
    ]
);

顶部

取消运行

取消正在进行的运行。 查看官方文档了解所有选项。

OpenAi::runs()->cancel('thread_abc123', 'run_abc123');

顶部

运行步骤

列出运行步骤

返回属于一个运行的运行步骤列表。 查看官方文档了解所有选项。

OpenAi::runSteps()->list('thread_abc123', 'run_abc123');

顶部

检索运行步骤

检索一个运行步骤。 查看官方文档了解所有选项。

OpenAi::runSteps()->retrieve('thread_abc123', 'run_abc123', 'step_abc123');

顶部

向量存储

创建矢量存储

创建一个向量存储。 查看官方文档了解所有选项。

OpenAi::vectorStores()->create(['name' => 'Support FAQ']);

顶部

列出矢量存储

返回向量存储列表。 查看官方文档了解所有选项。

OpenAi::vectorStores()->list();

顶部

检索矢量存储

检索一个向量存储。 查看官方文档了解所有选项。

OpenAi::vectorStores()->retrieve('vs_abc123');

顶部

修改矢量存储

修改一个向量存储。 查看官方文档了解所有选项。

OpenAi::vectorStores()->modify('vs_abc123', ['name' => 'Support FAQ']);

顶部

删除矢量存储

删除一个向量存储。 查看官方文档了解所有选项。

OpenAi::vectorStores()->delete('vs_abc123');

顶部

向量存储文件

创建矢量存储文件

通过将文件附加到向量存储来创建一个向量存储文件。 查看官方文档了解所有选项。

OpenAi::vectorStoreFiles()->create('vs_abc123', 'file-abc123');

顶部

列出矢量存储文件

返回向量存储文件列表。 查看官方文档了解所有选项。

OpenAi::vectorStoreFiles()->list('vs_abc123');

顶部

检索矢量存储文件

检索一个向量存储文件。 查看官方文档了解所有选项。

OpenAi::vectorStoreFiles()->retrieve('vs_abc123', 'file-abc123');

顶部

删除矢量存储文件

删除一个向量存储文件。这将从向量存储中删除文件,但文件本身不会被删除。要删除文件,请使用删除文件端点。 查看官方文档了解所有选项。

OpenAi::vectorStoreFiles()->delete('vs_abc123', 'file-abc123');

顶部

向量存储文件批量处理

创建矢量存储文件批量操作

创建一个向量存储文件批量处理。 查看官方文档了解所有选项。

OpenAi::vectorStoreFileBatches()->create(
    'vs_abc123',
    [
        'file_ids' => [
            'file-abc123',
            'file-abc456',
        ],
    ]
);

顶部

检索矢量存储文件批量操作

检索一个向量存储文件批量处理。 查看官方文档了解所有选项。

OpenAi::vectorStoreFileBatches()->retrieve('vs_abc123', 'vsfb_abc123');

顶部

取消矢量存储文件批量操作

取消向量存储文件批量操作。这尝试尽快取消该批次的文件处理。查看官方文档了解所有选项。

OpenAi::vectorStoreFileBatches()->cancel('vs_abc123', 'vsfb_abc123');

顶部

列出批量操作中的矢量存储文件

返回批次中向量存储文件的列表。查看官方文档了解所有选项。

OpenAi::vectorStoreFileBatches()->list('vs_abc123', 'vsfb_abc123');

顶部

旧版

补全

创建补全

为提供的提示和参数创建一个完成项。查看官方文档了解所有选项。

OpenAi::completions()->create(
    'gpt-3.5-turbo-instruct',
    'Say this is a test',
    [
        'max_tokens' => 7,
        'temperature' => 0,
    ]
);

顶部