GitHub user Alanxtl closed a discussion: [AI] llm供应商适配器构思

Pixiu AI 网关将输入统一为openai格式,通过一个适配器filter转换成对应的供应商的格式

```mermaid
graph TD
    subgraph "客户端 (Client)"
        UserRequest("👤 用户/客户端")
    end

    subgraph "AI 网关 (AI Gateway)"
        A["入口: 接收标准OpenAI格式请求"]
        B{"选择对应的适配器"}
        
        subgraph "适配层 (Adapter Layer)"
            C1["适配器: OpenAI (透传)"]
            C2["适配器: Anthropic Claude"]
            C3["适配器: Google Gemini"]
            C4["适配器: ...更多"]
        end

        A --> B
        B -- "model: 'gpt-4o'" --> C1
        B -- "model: 'claude-3-opus-20240229'" --> C2
        B -- "model: 'gemini-1.5-pro'" --> C3
    end

    subgraph "LLM 供应商 (LLM Providers)"
        D1[☁️ OpenAI API]
        D2[☁️ Anthropic API]
        D3[☁️ Google AI API]
    end

    C1 --> D1
    C2 --> D2
    C3 --> D3

    %% --- 转换过程示例 (Conversion Example) ---
    subgraph "转换示例: OpenAI -> Anthropic"
        direction LR
        Input("输入请求 (OpenAI 格式): 
        POST /v1/chat/completions 
        { 
        'model': 'claude-3-opus-20240229', 
        'messages': [ 
        { 'role': 'system', 'content': '你是一个乐于助人的助手。' }, 
        { 'role': 'user', 'content': '你好,克劳德!' } ], 
        'max_tokens': 1024 }"
        )

        Output("输出请求 (Anthropic 格式): 
        POST /v1/messages 
        { 
        'model': 'claude-3-opus-20240229', 
        'system': '你是一个乐于助人的助手。', 
        'messages': [ 
        { 'role': 'user', 'content': '你好,克劳德!' } ], 
        'max_tokens': 1024 }"
        )
        
        Input -- "通过 Claude 适配器处理" --> Output
    end

    UserRequest --> A
    
    %% Styling
    style A fill:#D6EAF8,stroke:#3498DB
    style B fill:#E8DAEF,stroke:#8E44AD
    style C2 fill:#D5F5E3,stroke:#2ECC71
    style Input fill:#FEF9E7,stroke:#F1C40F
    style Output fill:#FDEDEC,stroke:#E74C3C
    style C2 fill:#D5F5E3,stroke:#2ECC71
    style A fill:#D6EAF8,stroke:#3498DB
    style B fill:#E8DAEF,stroke:#8E44AD
    style Output fill:#FDEDEC,stroke:#E74C3C



```

GitHub link: https://github.com/apache/dubbo-go-pixiu/discussions/686

----
This is an automatically sent email for notifications@dubbo.apache.org.
To unsubscribe, please send an email to: 
notifications-unsubscr...@dubbo.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org
For additional commands, e-mail: notifications-h...@dubbo.apache.org

Reply via email to