takaaki-mizuno / llm-json-适配器
0.1.0
2024-04-28 02:52 UTC
Requires
- php: ^8.2
- aws/aws-sdk-php: ^3.305
- guzzlehttp/guzzle: ^7.8
- orhanerday/open-ai: ^5.1
- swaggest/json-schema: ^0.12.42
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.54
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
- vlucas/phpdotenv: ^5.6
This package is auto-updated.
Last update: 2024-08-28 04:24:47 UTC
README
这是什么?
当使用系统中的LLM时,你通常希望以JSON格式获取输出结果:OpenAPI的GPT API有一个名为函数调用的机制,可以返回JSON,但谷歌的Gemini似乎没有这个功能。
因此,我创建了一个包装库来切换LLM并获取JSON格式的结果。这个库可以做到以下几点。
- 允许你定义在JSON Schema中你想要获取的结果
- 在LLM之间切换(目前支持OpenAI的GPT和谷歌的Gemini)。
- 如果JSON检索失败,则重试指定次数
安装
composer require takaaki-mizuno/llm-json-adapter
如何使用
使用以下代码获取JSON格式的结果。
OpenAI
$instance = new LLMJsonAdapter( providerName: "openai", attributes: [ "api_key" => "[API-KEY]", "model" => "gpt-3.5-turbo", ], maximumRetryCount: 3, model: "gpt-3.5-turbo", defaultLanguage: "en" ); $response = new \TakaakiMizuno\LLMJsonAdapter\Models\Response( name: "response data name", description: "response data description", schema: [JSON SCHEMA] );
谷歌Gemini
$instance = new LLMJsonAdapter( providerName: "google", attributes: [ "api_key" => "[API-KEY]", "model" => "gemini-1.5-pro-latest", ], maximumRetryCount: 3, defaultLanguage: "en" ); $response = new \TakaakiMizuno\LLMJsonAdapter\Models\Response( name: "response data name", description: "response data description", schema: [JSON SCHEMA] );
BedRock
$instance = new LLMJsonAdapter( providerName: "bedrock", attributes: [ 'accessKeyId' => '[ACCESS-KEY]', 'secretAccessKey' => '[SECRET-KEY]', 'model' => 'anthropic.claude-3-haiku-20240307-v1:0', ], maximumRetryCount: 3, defaultLanguage: "en" ); $response = new \TakaakiMizuno\LLMJsonAdapter\Models\Response( name: "response data name", description: "response data description", schema: [JSON SCHEMA] );
Ollama
$instance = new LLMJsonAdapter( providerName: "ollama", attributes: [ 'url' => "https://:11434", 'model' => 'llama3', ], maximumRetryCount: 3, defaultLanguage: "en" ); $response = new \TakaakiMizuno\LLMJsonAdapter\Models\Response( name: "response data name", description: "response data description", schema: [JSON SCHEMA] );