php-llm / llm-chain-bundle
php-llm/llm-chain 的 Symfony 集成包
0.1
2024-09-22 21:30 UTC
Requires
- php: >=8.2
- php-llm/llm-chain: dev-main
- symfony/config: ^6.4 || ^7.0
- symfony/dependency-injection: ^6.4 || ^7.0
- symfony/framework-bundle: ^6.4 || ^7.0
Requires (Dev)
- php-cs-fixer/shim: ^3.64
- phpstan/phpstan: ^1.12
README
为 php-llm/llm-chain 库提供 Symfony 集成包。
安装
composer require php-llm/llm-chain-bundle
配置
# config/packages/llm_chain.yaml llm_chain: runtimes: azure_gpt: type: 'azure' base_url: '%env(AZURE_OPENAI_BASEURL)%' deployment: '%env(AZURE_OPENAI_GPT)%' api_key: '%env(AZURE_OPENAI_KEY)%' version: '%env(AZURE_OPENAI_VERSION)%' azure_embeddings: type: 'azure' base_url: '%env(AZURE_OPENAI_BASEURL)%' deployment: '%env(AZURE_OPENAI_EMBEDDINGS)%' api_key: '%env(AZURE_OPENAI_KEY)%' version: '%env(AZURE_OPENAI_VERSION)%' openai: type: 'openai' api_key: '%env(OPENAI_API_KEY)%' llms: azure_gpt: runtime: 'azure_gpt' original_gpt: runtime: 'openai' embeddings: azure_embeddings: runtime: 'azure_embeddings' original_embeddings: runtime: 'openai' stores: chroma_db: engine: 'chroma-db' collection_name: '%env(CHROMA_COLLECTION)%' azure_search: engine: 'azure-search' api_key: '%env(AZURE_SEARCH_KEY)%' endpoint: '%env(AZURE_SEARCH_ENDPOINT)%' index_name: '%env(AZURE_SEARCH_INDEX)%' api_version: '2024-07-01'
使用
链服务
使用链服务来利用 GPT
use PhpLlm\LlmChain\Chat; final readonly class MyService { public function __construct( private Chain $chain, ) { } public function submit(string $message): string { $messages = new MessageBag(); $messages[] = Message::forSystem('Speak like a pirate.'); $messages[] = Message::ofUser($message); return $this->chain->call($messages); } }
注册工具
要使用现有工具,可以将它们注册为服务
services: _defaults: autowire: true autoconfigure: true PhpLlm\LlmChain\ToolBox\Tool\Clock: ~ PhpLlm\LlmChain\ToolBox\Tool\OpenMeteo: ~ PhpLlm\LlmChain\ToolBox\Tool\SerpApi: $apiKey: '%env(SERP_API_KEY)%' PhpLlm\LlmChain\ToolBox\Tool\SimilaritySearch: ~ PhpLlm\LlmChain\ToolBox\Tool\Wikipedia: ~ PhpLlm\LlmChain\ToolBox\Tool\YouTubeTranscriber: ~
使用 #[AsTool]
属性注册自定义工具
use PhpLlm\LlmChain\ToolBox\AsTool; #[AsTool('company_name', 'Provides the name of your company')] final class CompanyName { public function __invoke(): string { return 'ACME Corp.' } }
分析器
分析器面板提供了对链执行情况的深入了解