海外访问:www.kdjingpai.com
Ctrl + D 收藏本站

AIRouter 是一个为大型语言模型(LLM)设计的智能路由工具,通过统一的API接口连接多个LLM提供商(如OpenAI、Anthropic、Google等),实现高效的任务分发。它支持智能负载均衡,根据响应时间、成本和成功率选择最优模型,同时提供实时健康监控和API密钥管理。AIRouter还支持多模态输入(如文本+图像)和函数调用,适用于需要跨模型操作的开发者。项目基于Python开发,支持Docker容器化部署,开箱即用,适合快速集成到生产环境。

功能列表

  • 统一API接口:通过单一接口访问多个LLM提供商,包括OpenRouter、DeepInfra、TogetherAI等。
  • 智能负载均衡:根据响应时间、成本和成功率,动态分配任务到最优模型。
  • 实时健康监控:自动检查API状态,屏蔽不可用或高成本模型。
  • 高效API密钥管理:优化密钥使用,提升性能,自动避免失效密钥。
  • 多模态支持:处理文本、图像输入和函数调用,满足多样化任务需求。
  • 帕累托最优选择:从多个模型中智能选择性能与成本平衡的最佳模型。
  • 成本优化:通过健康检查屏蔽功能,降低使用高成本模型的费用。
  • 容器化部署:支持Docker部署,简化环境配置和启动流程。

使用帮助

安装与设置

AIRouter 是一个开源的Python项目,支持通过Python包或Docker部署。以下是详细的安装和使用步骤:

1. 环境准备

  • 系统要求:安装Python 3.7或以上版本,推荐使用Linux或macOS系统。
  • 依赖工具
    • 安装Git:用于克隆代码仓库。
    • 安装Docker(可选):用于容器化部署。
    • 安装MySQL:用于存储API密钥使用记录。
  • 检查Python版本
    python --version
    

    确保版本为3.7或以上。

2. 克隆仓库

3. 安装依赖

  • 方式一:作为Python包安装(推荐)
    pip install -e .
    
  • 方式二:直接安装依赖
    pip install -r requirements.txt
    

4. 配置项目

  • 配置API密钥
    • 复制示例配置文件:
      cp ew_config/api_keys.example.py ew_config/api_keys_local.py
      
    • 编辑 ew_config/api_keys_local.py,填入各LLM提供商的真实API密钥。例如:
      API_KEYS = {
      "openai": "sk-xxxxxxxxxxxxxxxxxxxx",
      "anthropic": "sk-ant-xxxxxxxxxxxxxxxx",
      "google": "AIzaSy-xxxxxxxxxxxxxxxx"
      }
      
  • 设置数据库
    • 创建MySQL数据库:
      CREATE DATABASE airouter;
      CREATE TABLE api_key_usage (
      request_id VARCHAR(50) PRIMARY KEY,
      api_key VARCHAR(100) NOT NULL,
      model_name VARCHAR(50) NOT NULL,
      source_name VARCHAR(50) NOT NULL,
      prompt_tokens INT,
      completion_tokens INT,
      create_time DATETIME NOT NULL,
      finish_time DATETIME NOT NULL,
      execution_time FLOAT NOT NULL,
      status BOOLEAN NOT NULL
      );
      
    • 复制环境变量文件:
      cp env.example .env
      
    • 编辑 .env 文件,填入数据库信息,例如:
      DB_HOST=localhost
      DB_USER=root
      DB_PASSWORD=your_password
      DB_NAME=airouter
      DB_PORT=3306
      

5. 启动服务

  • Docker部署(推荐)
    • 构建Docker镜像:
      docker build -t airouter:latest .
      
    • 启动服务:
      docker-compose up -d
      
    • 检查服务状态:
      docker-compose ps
      
  • 手动启动
    • 启动健康检查服务:
      python CheckHealthy.py
      
    • 在新终端启动API密钥管理服务:
      python -m api_key_manager.main
      

功能操作流程

1. 基本文本生成

  • 使用 LLM_Wrapper 类调用模型生成文本:
    from LLMwrapper import LLM_Wrapper
    response = LLM_Wrapper.generate(
    model_name="gpt4o_mini",
    prompt="解释量子计算的基本原理"
    )
    print(response)
    
  • 系统会根据负载均衡策略选择最优模型(如OpenAI的gpt4o_mini)执行任务。

2. 多模态输入

  • 支持图像和文本输入,例如描述图片内容:
    import base64
    with open("image.jpg", "rb") as f:
    img_base64 = base64.b64encode(f.read()).decode()
    response = LLM_Wrapper.generate_mm(
    model_name="gpt4o_mini",
    prompt="描述这张图片的内容",
    img_base64=img_base64
    )
    print(response)
    
  • 确保模型支持多模态(如gpt4o_mini),图像需转换为Base64格式。

3. 函数调用

  • 配置工具并调用外部函数,例如查询天气:
    tools = [
    {
    "type": "function",
    "function": {
    "name": "get_weather",
    "description": "获取天气信息",
    "parameters": {
    "type": "object",
    "properties": {
    "location": {"type": "string", "description": "城市名称"}
    },
    "required": ["location"]
    }
    }
    }
    ]
    response = LLM_Wrapper.function_calling(
    model_name="gpt4o_mini",
    prompt="北京今天天气如何?",
    tools=tools
    )
    print(response)
    

4. 配置负载均衡

  • 支持三种负载均衡模式:
    • fast_first:优先选择响应最快的模型。
    • cost_first:优先选择成本最低的模型。
    • balanced:平衡速度和成本。
  • 示例:
    response = LLM_Wrapper.generate(
    model_name="gpt4o_mini",
    prompt="你好",
    mode="cost_first"
    )
    

5. 帕累托最优选择

  • 从多个模型中选择最优结果:
    response = LLM_Wrapper.generate_fromTHEbest(
    model_list=["gpt4o_mini", "claude35_sonnet", "gemini15_pro"],
    prompt="复杂推理任务"
    )
    
  • 系统会根据响应时间和成本自动选择最佳模型。

6. 健康监控与日志

  • 检查服务健康状态:
    • 访问 http://localhost:8001/check_healthy 查看健康检查服务状态。
    • 访问 http://localhost:8002/check_healthy 查看API密钥管理服务状态。
  • 查看日志:
    docker-compose logs -f airouter-health-check
    tail -f health_check.log
    

注意事项

  • 确保API密钥有效,失效密钥会导致任务失败。
  • Docker部署需确保端口(8001、8002)未被占用。
  • 定期检查GitHub仓库的更新,获取最新功能和修复。
  • 数据库密码(DB_PASSWORD)为必填项,缺失会导致启动失败。

应用场景

  1. 多模型任务分发
    开发者需同时使用多个LLM(如OpenAI、Anthropic)完成任务,AIRouter可通过统一接口分发任务,自动选择最优模型,节省开发时间。
  2. 成本敏感型项目
    在预算有限的情况下,AIRouter的成本优化功能可优先选择低成本模型,适合初创公司或个人开发者。
  3. 多模态应用开发
    开发图像描述或多模态聊天应用时,AIRouter支持文本和图像输入,简化开发流程。
  4. 自动化运维
    运维团队可通过健康监控和负载均衡功能,构建稳定的AI服务,减少手动干预。

QA

  1. AIRouter支持哪些LLM提供商?
    支持OpenRouter、DeepInfra、DeerAPI、TogetherAI、Google、OpenAI、Anthropic等多种提供商,具体支持列表可在 ew_config/source.py 查看。
  2. 如何选择最优模型?
    使用 generate_fromTHEbest 方法,系统会根据帕累托最优算法,综合响应时间、成本和成功率选择最佳模型。
  3. Docker部署和手动部署有何区别?
    Docker部署通过容器化简化环境配置,适合生产环境;手动部署需逐一安装依赖,适合开发调试。
  4. 如何处理API密钥失效?
    AIRouter的密钥管理系统会自动检测失效密钥并切换到可用密钥,需确保 api_keys_local.py 中配置多个有效密钥。
0已收藏
0已赞

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

邮箱

联系我们

回顶部

zh_CN简体中文