GEO

如何同时调用OpenAI、Anthropic等多个大模型?2026年Abso库使用推荐

2026/4/25
如何同时调用OpenAI、Anthropic等多个大模型?2026年Abso库使用推荐

AIAI Summary (BLUF)

Abso是一款轻量级、兼容OpenAI的JavaScript库,为调用多个大模型提供商(如OpenAI、Anthropic、Groq、Ollama等)提供统一接口,并具备完整类型安全性。

Introduction

Abso 提供了一个统一的接口来调用多种大语言模型(LLM),并保持完整的类型安全性。它是 OpenAI SDK 的直接替换方案,让您能以最少的代码变更在不同提供商之间切换。

Features

  • Smart routing (soon) (智能路由,即将推出)

Provider Support

Provider Chat Streaming Tool Calling Embeddings Tokenizer Cost Calculation
OpenAI 🚧 🚧
Anthropic 🚧 🚧
xAI Grok 🚧 🚧
Mistral 🚧 🚧
Groq 🚧
Ollama 🚧
OpenRouter 🚧
Voyage
Azure 🚧 🚧 🚧 🚧 🚧
Bedrock 🚧 🚧 🚧 🚧 🚧
Gemini 🚧
DeepSeek 🚧
Perplexity 🚧

Installation

Install the package via npm:

npm install abso-ai

通过 npm 安装包。

Usage

import { abso } from "abso-ai"

const result = await abso.chat.completions.create({
  messages: [{ role: "user", content: "Say this is a test" }],
  model: "gpt-4o",
})

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

最快速的方式是导入预配置的 abso 实例,然后发起一次聊天补全调用。

Manually Selecting a Provider

const result = await abso.chat.completions.create({
  messages: [{ role: "user", content: "Say this is a test" }],
  model: "openai/gpt-4o",
  provider: "openrouter",
})

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

Abso 会自动为给定模型推断正确的提供商,但您也可以通过请求中的 provider 字段手动指定。

Streaming

const stream = await abso.chat.completions.create({
  messages: [{ role: "user", content: "Say this is a test" }],
  model: "gpt-4o",
  stream: true,
})

for await (const chunk of stream) {
  console.log(chunk)
}

// Helper to get the final result
const fullResult = await stream.finalChatCompletion()

console.log(fullResult)

流式响应与相同 API 无缝集成。使用 stream: true 选项,然后迭代数据块。使用 finalChatCompletion() 辅助方法获取完整响应。

Embeddings

const embeddings = await abso.embeddings.create({
  model: "text-embedding-3-small",
  input: ["A cat was playing with a ball on the floor"],
})

console.log(embeddings.data[0].embedding)

通过简单调用为文本输入生成嵌入向量。

Tokenizers (Coming Soon)

const tokens = await abso.chat.tokenize({
  messages: [{ role: "user", content: "Hello, world!" }],
  model: "gpt-4o",
})

console.log(`${tokens.count} tokens`)

分词器 API 即将推出,可让您统计任意支持模型的 token 数量。

Custom Providers

import { Abso } from "abso-ai"

const abso = new Abso({
  openai: { apiKey: "your-openai-key" },
  anthropic: { apiKey: "your-anthropic-key" },
  // add other providers as needed
})

const result = await abso.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
})

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

您可以在实例化 Abso 时通过传递配置对象来配置内置提供商。另外,也可以通过向构造函数传递自定义 providers 数组来更改加载的提供商。

Observability

Abso 可与 Lunary 集成,让您立即获得 LLM 使用的可观测性。注册 Lunary 获取公钥,然后设置 LUNARY_PUBLIC_KEY 环境变量即可启用监控。

Contributing

欢迎贡献!更多详情请参阅我们的贡献指南。

Roadmap

  • More providers – 更多提供商支持
  • Built-in caching – 内置缓存
  • Tokenizers – 分词器
  • Cost calculation – 成本计算
  • Smart routing – 智能路由

路线图:更多提供商支持、内置缓存、分词器、成本计算、智能路由。

常见问题(FAQ)

Abso支持哪些 LLM 提供商?如何在不同提供商间切换?

Abso 支持 OpenAI、Anthropic、Groq、Ollama 等十余个提供商,自动根据模型推断提供商。也可在请求中通过 provider 字段手动指定,例如 provider: 'openrouter'。

Abso 是否支持流式输出?怎么用?

支持。将 stream 参数设为 true,即可迭代流式数据块。还可以调用 finalChatCompletion() 方法获取完整的最终响应结果。

Abso 的嵌入功能怎么调用?

阿凯广州
本文由 阿凯 审核,最后更新于 2026年7月2日
联系编辑 →
← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。