sourceability/openai-client
最新稳定版本:0.3.6
Composer 安装命令:
composer require sourceability/openai-client
包简介
PHP 8.0+ OpenAI API client with fully typed/documented requests+responses models, guzzle and symfony/http-client support and async/parallel requests.
README 文档
README
PHP 8.0+ OpenAI API client with fully typed/documented requests+responses models,
guzzlehttp/guzzle + symfony/http-client support through HTTPPug, and async/parallel requests.
The client is generated using openai's OpenAPI with jane-php.
Features:
- The requests models are typed and include descriptions from the OpenAPI documentation.
- Uses HTTPPug as the HTTP Abstraction
- Async/parallel requests.
This is a community-maintained/unofficial library.
Installation
composer require sourceability/openai-client
Getting started
require __DIR__ . '/vendor/autoload.php'; use Sourceability\OpenAIClient\Client; use Sourceability\OpenAIClient\Generated\Model\CreateCompletionRequest; $apiClient = Client::create( apiKey: getenv('OPENAI_API_KEY') ); $requests = [ (new CreateCompletionRequest()) ->setModel('text-davinci-003') ->setTemperature(0) ->setMaxTokens(512) ->setPrompt('The jane php library is very useful because'), new CreateCompletionRequest( model: 'text-davinci-003', temperature: 0, maxTokens: 512, prompt: 'Symfony symfony symfony is like sourceability on a' ), ]; $completionResponses = $apiClient->createCompletions($requests); var_dump($completionResponses);
ChatGPT with /v1/chat/completions:
<?php require __DIR__ . '/vendor/autoload.php'; use Sourceability\OpenAIClient\Client; use Sourceability\OpenAIClient\Generated\Model\ChatCompletionRequestMessage; use Sourceability\OpenAIClient\Generated\Model\CreateChatCompletionRequest; $apiClient = Client::create( apiKey: getenv('OPENAI_API_KEY') ); $requests = [ new CreateChatCompletionRequest( model: 'gpt-3.5-turbo', temperature: 0, messages: [ new ChatCompletionRequestMessage( role: 'user', content: 'The jane php library is very useful because' ) ], ), new CreateChatCompletionRequest( model: 'gpt-3.5-turbo', temperature: 0, messages: [ new ChatCompletionRequestMessage( role: 'user', content: 'Symfony symfony symfony is like sourceability on a' ) ], ), ]; $completionResponses = $apiClient->createChatCompletions($requests); var_dump($completionResponses);
Cost calculator
You can use ResponseCostCalculator, which relies on brick/money, to calculate the cost of a response:
use Sourceability\OpenAIClient\Pricing\ResponseCostCalculator; $responseCostCalculator = new ResponseCostCalculator(); $responseCost = $responseCostCalculator->calculate($myCompletionResponse); var_dump([ 'total' => $responseCost->getTotal()->formatTo('en_US'), 'prompt' => $responseCost->getPrompt()->formatTo('en_US'), 'completion' => $responseCost->getCompletion()->formatTo('en_US'), ]); array(3) { ["total"]=> string(10) "$0.0001280" ["prompt"]=> string(10) "$0.0000980" ["completion"]=> string(10) "$0.0000300" }
统计信息
- 总下载量: 8.72k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 18
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-02-16