iteks / laravel-openai
一个强大的包,可以将OpenAI的高级AI功能无缝集成到您的Laravel应用程序中。此包提供快速设置和直观配置,以利用AI模型进行聊天、嵌入等功能。
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
- laravel/framework: ^9.46|^10.10|^11.0
Requires (Dev)
- laravel/pint: ^1.14
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- phpstan/phpstan: ^1.10
- symfony/var-dumper: ^6.4
This package is auto-updated.
Last update: 2024-09-26 17:21:23 UTC
README
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
- 助手
- 旧版
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, ] );