php-llm/llm-chain-bundle

php-llm/llm-chain 的 Symfony 集成包

安装: 228

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 1

开放问题: 0

类型:symfony-bundle

0.1 2024-09-22 21:30 UTC

This package is auto-updated.

Last update: 2024-09-23 12:58:46 UTC


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.'
    }
}

分析器

分析器面板提供了对链执行情况的深入了解

Profiler