Skip to main content

A pure AI model bridge - transparent, native SDK, multi-vendor support.

Project description

AI Bridge 🌉

纯净的 AI 模型桥接库 - 透明、原生 SDK、多厂商支持、无主观侵入。

AI Bridge (aib) 是一个统一的 Python 接口,用于调用各大主流 AI 厂商(Gemini, Kimi, Qwen, OpenAI)的原生能力。它的核心理念是 "透明桥接":我们只做搬运工,不做任何加工,让用户直接获得大模型的原始返回和错误信息。

🌟 核心特性

  • 多厂商支持:

    • Google Gemini: 支持 Gemini 2.0 Flash/Pro 等全系模型
    • Moonshot Kimi: 支持 moonshot-v1 系列
    • Aliyun Qwen: 支持 Qwen-Plus/Turbo/Max 及 VL 视觉大模型
    • OpenAI: 支持 GPT-4o/3.5 等及兼容接口
  • 透明桥接 (Transparent Bridge):

    • 🛡️ 无主观处理: 不拦截错误,不吞噬异常,不修改响应内容。
    • 📦 原生对象: 返回包含原始 SDK 响应对象的 Response,方便高级用户调试。
    • 原生 SDK: 底层直接调用官方 SDK (google-genai, openai, dashscope),确保能力零损耗。
  • 强大的文件处理:

    • 📂 Native File API: 优先使用厂商原生 File API 上传文件(支持 PDF/视频/音频),而非粗暴的 Base64 转换。
    • 🖼️ 多模态支持: 完美支持视觉问答、文档分析等场景。
  • 独家功能:

    • 🚀 Batch API: 集成 Qwen 和 Gemini 的批量处理接口,成本降低 50%。
    • ⏱️ 超时控制: 支持全局或单次请求的 Timeout 设置。
    • 🔌 中转站支持: 完美支持自定义 base_url,适配各类 API 代理。

📦 安装

pip install ai-bridge

🚀 快速开始

1. SDK 使用是

from aib import AIBridge

# 初始化 (自动读取环境变量或配置,也可以显式传入)
bridge = AIBridge(
    vendor="gemini", 
    api_key="YOUR_API_KEY", 
    model="gemini-2.0-flash",
    timeout=60  # 60秒超时
)

# 简单对话
response = bridge.chat("你好,请介绍一下你自己")
print(response.content)

# 带文件的多模态对话 (自动处理文件上传)
response = bridge.chat(
    prompt="请总结这份文档主要讲了什么,并分析第二张图表",
    files=["./report.pdf", "./chart.png"]
)
print(response.content)

# 查看 Token 消耗
print(f"Token 使用: {response.usage.total_tokens}")

2. CLI 命令行使用

AI Bridge 提供了一个强大的命令行工具 ab

# 简单对话 (默认使用 gemini)
ab chat "你好!"

# 指定厂商和模型
ab chat "写首诗" -v kimi -m moonshot-v1-8k

# 带文件分析
ab chat "解释这个代码截图" -v gemini -f error.png

# 带超时设置 (60秒)
ab chat "生成长文章..." -v openai --timeout 60

# 查看 Token 使用情况
ab chat "计算..." -v qwen --usage

# 使用自定义中转站
ab chat "Hello" -v openai --base-url "https://api.proxy.com/v1"

⚙️ 配置指南

你可以通过 YAML 配置文件环境变量 来管理 API Key 和默认设置。

方式一:配置文件 (推荐)

创建 ~/.aib/config.yaml 或当前目录下的 config.yaml

# 默认使用的厂商
default_vendor: gemini

# 可选:全局超时时间 (秒)
timeout: 60

vendors:
  gemini:
    api_key: "AIzaSy..."
    model: "gemini-2.0-flash"
    timeout: 120  # 厂商特定超时,覆盖全局
  
  kimi:
    api_key: "sk-..."
    model: "moonshot-v1-auto"
  
  qwen:
    api_key: "sk-..."
    model: "qwen-plus"
  
  openai:
    api_key: "sk-..."
    model: "gpt-4o"
    base_url: "https://api.openai.com/v1"  # 支持自定义代理地址

方式二:环境变量

export AIB_DEFAULT_VENDOR="gemini"

# API Key
export AIB_GEMINI_API_KEY="AIza..."
export AIB_KIMI_API_KEY="sk-..."
export AIB_QWEN_API_KEY="sk-..."
export AIB_OPENAI_API_KEY="sk-..."

# 自定义 Base URL (中转站)
export AIB_OPENAI_BASE_URL="https://api.proxy.com/v1"

# 超时设置
export AIB_GEMINI_TIMEOUT="120"

💡 进阶功能

批量处理 (Batch API)

对于不着急(24小时内完成)的大批量任务,使用 Batch API 可节省 50% 成本。目前支持 Qwen 和 Gemini。

from aib.batch import QwenBatchManager

manager = QwenBatchManager(api_key="sk-...")

# 提交批量任务
job = manager.submit(
    requests=[
        {"prompt": "分析用户评论: ..."},
        {"prompt": "翻译这段话: ..."},
        # ... 上千条请求
    ],
    model="qwen-plus"
)
print(f"任务已提交,ID: {job.id}")

# ... 等待一段时间后 ...

# 获取结果
results = manager.get_results(job.id)
for prompt_id, result in results.items():
    print(f"{prompt_id}: {result}")

错误处理

遵循透明原则,如果 API 调用失败,库会直接抛出厂商 SDK 的原始异常,而非通用的封装异常。这有助于你根据具体错误码(如 rate_limit_exceeded)进行精确处理。

try:
    bridge.chat("...")
except Exception as e:
    # 这里的 e 是 openai.APIError / google.api_core.exceptions.GoogleAPICallError 等原始异常
    print(f"API 调用失败: {e}")

📄 License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_abridge-1.0.0.tar.gz (154.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_abridge-1.0.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file ai_abridge-1.0.0.tar.gz.

File metadata

  • Download URL: ai_abridge-1.0.0.tar.gz
  • Upload date:
  • Size: 154.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.3

File hashes

Hashes for ai_abridge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ad6f6a1e1fcdeec240684335f8ebc29da0658f21f724e519b53c952100a8ebd8
MD5 f9e50ae6c82cdd0c7557a27de6a83de3
BLAKE2b-256 6d21b772544463990ec0a0a73c8626d10959deff1054091c98151f6232aca5be

See more details on using hashes here.

File details

Details for the file ai_abridge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: ai_abridge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.3

File hashes

Hashes for ai_abridge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc5aa47d2b353e24ece8d7d3abe5290de48709f3357b86dd0c071ab4fd89c01e
MD5 3c146c410824459fc03c7c829cdc40bc
BLAKE2b-256 6b17f01d2712f0e41e9b6c71101c13b863303f709382e5ff835996548a4a5e84

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page