Amux

基础用法

学习创建和使用桥接的基础知识

创建桥接

桥接连接两个适配器:入站适配器(你的格式)和出站适配器(要调用的提供商)。

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
  }
})

入站适配器决定你的请求/响应格式。出站适配器决定调用哪个提供商 API

发送请求

使用 chat() 方法发送请求:

const response = await bridge.chat({
  model: 'gpt-4',
  messages: [
    { role: 'user', content: '你好!' }
  ]
})

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

双向转换示例

OpenAI 格式 → Claude 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: '你好!' }]
})
// 返回 OpenAI 格式响应

Claude 格式 → OpenAI API

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

// 发送 Anthropic 格式请求
const response = await bridge.chat({
  model: 'claude-3-5-sonnet-20241022',
  max_tokens: 1024,
  messages: [{ role: 'user', content: '你好!' }]
})
// 返回 Anthropic 格式响应

配置选项

config 对象支持常见设置:

const bridge = createBridge({
  inbound: openaiAdapter,
  outbound: anthropicAdapter,
  config: {
    apiKey: 'sk-...',              // 必需:API 密钥
    baseURL: 'https://...',        // 可选:自定义基础 URL
    timeout: 60000,                // 可选:请求超时(毫秒)
    headers: {                     // 可选:自定义请求头
      'X-Custom-Header': 'value'
    }
  }
})

使用消息

所有适配器都支持标准消息格式:

const response = await bridge.chat({
  model: 'gpt-4',
  messages: [
    { role: 'system', content: '你是一个有帮助的助手。' },
    { role: 'user', content: '什么是 TypeScript?' },
    { role: 'assistant', content: 'TypeScript 是...' },
    { role: 'user', content: '告诉我更多' }
  ]
})

消息角色:

  • system - 系统指令(并非所有提供商都支持)
  • user - 用户消息
  • assistant - 助手响应

某些提供商(如 Anthropic)对系统消息的处理方式不同。Amux 会自动将它们转换为正确的格式。

生成参数

使用常见参数控制响应生成:

const response = await bridge.chat({
  model: 'gpt-4',
  messages: [...],
  temperature: 0.7,        // 随机性(0-2)
  max_tokens: 1000,        // 生成的最大 token 数
  top_p: 0.9,             // 核采样
  stop: ['\n\n'],         // 停止序列
  presence_penalty: 0.0,  // 惩罚新主题
  frequency_penalty: 0.0  // 惩罚重复
})

使用相同的提供商

你可以为入站和出站使用相同的适配器:

// 使用 Anthropic 格式调用 Claude API
const bridge = createBridge({
  inbound: anthropicAdapter,
  outbound: anthropicAdapter,
  config: { apiKey: process.env.ANTHROPIC_API_KEY }
})

// 使用 OpenAI 格式调用 OpenAI API
const bridge = createBridge({
  inbound: openaiAdapter,
  outbound: openaiAdapter,
  config: { apiKey: process.env.OPENAI_API_KEY }
})

即使使用相同的适配器,Amux 也能提供统一的错误处理、模型映射和一致的日志记录等好处。

下一步

On this page