Amux

快速开始

在 5 分钟内构建您的第一个 Amux 桥接

本指南将引导您创建第一个桥接。您将学习如何在几分钟内在 OpenAI 和 Anthropic 格式之间进行转换。

步骤 1:安装包

pnpm add @amux.ai/llm-bridge @amux.ai/adapter-openai @amux.ai/adapter-anthropic

步骤 2:设置 API 密钥

创建一个 .env 文件:

ANTHROPIC_API_KEY=your_key_here

永远不要将 .env 文件提交到版本控制。将其添加到 .gitignore

步骤 3:创建您的第一个桥接

创建 bridge.ts

import { createBridge } from '@amux.ai/llm-bridge'
import { openaiAdapter } from '@amux.ai/adapter-openai'
import { anthropicAdapter } from '@amux.ai/adapter-anthropic'

// 创建一个桥接:OpenAI 格式输入 → Anthropic API 输出
const bridge = createBridge({
  inbound: openaiAdapter,
  outbound: anthropicAdapter,
  config: {
    apiKey: process.env.ANTHROPIC_API_KEY
  }
})

// 发送 OpenAI 格式的请求
const response = await bridge.chat({
  model: 'gpt-4',
  messages: [
    { role: 'user', content: '说你好!' }
  ]
})

console.log(response.choices[0].message.content)

发生了什么:

  1. 您发送了一个 OpenAI 格式的请求
  2. Amux 将其转换为 Anthropic 格式
  3. 调用 Claude API
  4. 响应被转换回 OpenAI 格式

步骤 4:运行它

tsx bridge.ts

您应该会看到来自 Claude 的响应,但格式是 OpenAI 的!

尝试流式传输

为了更好的用户体验,使用流式传输:

import { createBridge } from '@amux.ai/llm-bridge'
import { openaiAdapter } from '@amux.ai/adapter-openai'
import { anthropicAdapter } from '@amux.ai/adapter-anthropic'

const bridge = createBridge({
  inbound: openaiAdapter,
  outbound: anthropicAdapter,
  config: {
    apiKey: process.env.ANTHROPIC_API_KEY
  }
})

// 启用流式传输
const stream = await bridge.chat({
  model: 'gpt-4',
  messages: [
    { role: 'user', content: '讲一个短故事' }
  ],
  stream: true
})

// 处理流事件
for await (const event of stream) {
  if (event.type === 'content') {
    process.stdout.write(event.content.delta)
  }
}

常见模式

反向转换

切换适配器以实现反向转换:

// Anthropic 格式输入 → OpenAI API 输出
const bridge = createBridge({
  inbound: anthropicAdapter,
  outbound: openaiAdapter,
  config: {
    apiKey: process.env.OPENAI_API_KEY
  }
})

const response = await bridge.chat({
  model: 'claude-3-5-sonnet-20241022',
  messages: [{ role: 'user', content: '你好!' }],
  max_tokens: 100
})

console.log(response.content[0].text)

工具调用

对任何提供商使用工具:

const response = await bridge.chat({
  model: 'gpt-4',
  messages: [
    { role: 'user', content: '北京的天气怎么样?' }
  ],
  tools: [{
    type: 'function',
    function: {
      name: 'get_weather',
      description: '获取某个位置的天气',
      parameters: {
        type: 'object',
        properties: {
          location: { type: 'string' }
        },
        required: ['location']
      }
    }
  }]
})

// 检查工具调用
if (response.choices[0].message.toolCalls) {
  console.log('工具调用:', response.choices[0].message.toolCalls)
}

错误处理

始终处理错误:

import { LLMBridgeError } from '@amux.ai/llm-bridge'

try {
  const response = await bridge.chat(request)
} catch (error) {
  if (error instanceof LLMBridgeError) {
    console.error(`${error.type}: ${error.message}`)

    if (error.retryable) {
      // 重试请求
    }
  }
}

下一步

On this page