O AIRouter é uma ferramenta de roteamento inteligente projetada para modelos de linguagem grande (LLMs), conectando vários provedores de LLM (por exemplo, OpenAI, Anthropic, Google etc.) por meio de uma interface de API unificada para distribuição eficiente de tarefas. Ele oferece suporte ao balanceamento de carga inteligente, selecionando o modelo ideal com base no tempo de resposta, no custo e na taxa de sucesso, além de fornecer monitoramento de integridade em tempo real e gerenciamento de chaves de API. O AIRouter também oferece suporte a entradas multimodais (por exemplo, texto + imagem) e chamadas de função, o que o torna adequado para desenvolvedores que precisam operar entre modelos. O projeto é baseado no desenvolvimento em Python, suporta a implantação em contêineres do Docker e está pronto para ser usado imediatamente para uma rápida integração em ambientes de produção.
Lista de funções
- Interface API unificadaAcesso a vários provedores de LLM, incluindo OpenRouter, DeepInfra, TogetherAI, etc., por meio de uma única interface.
- Balanceamento de carga inteligenteAtribuição dinâmica de tarefas ao modelo ideal com base no tempo de resposta, no custo e no sucesso.
- Monitoramento da saúde em tempo realVerificação automática do status da API e bloqueio de modelos indisponíveis ou de alto custo.
- Gerenciamento eficiente de chaves de APIOtimize o uso de chaves, melhore o desempenho e evite automaticamente chaves inválidas.
- suporte multimodalGerencia entradas de texto e imagem e chamadas de função para atender a diversos requisitos de tarefas.
- Escolha idealSeleção inteligente do melhor modelo entre vários modelos, equilibrando desempenho e custo.
- Otimização de custosReduzir o custo do uso de modelos de alto custo por meio do recurso de bloqueio de verificação de saúde.
- Implementação em contêineresSuporte à implantação do Docker, simplificando a configuração do ambiente e o processo de inicialização.
Usando a Ajuda
Instalação e configuração
O AIRouter é um projeto Python de código aberto que oferece suporte à implantação por meio de pacotes Python ou do Docker. Aqui estão as etapas detalhadas de instalação e uso:
1. preparação ambiental
- Requisitos do sistemaInstalação do Python 3.7 ou superior, recomendado para Linux ou macOS.
- Ferramentas dependentes::
- Instalar o Git: para clonar repositórios de código.
- Instale o Docker (opcional): para implantação em contêineres.
- Instale o MySQL: para armazenar os registros de uso da chave da API.
- Verificação da versão do Python::
python --version
Certifique-se de que a versão seja 3.7 ou superior.
2. clonagem de armazéns
- entrevistas https://github.com/THESIS-AGENT/AIRoutercopie o URL do repositório.
- É executado no terminal:
git clone https://github.com/THESIS-AGENT/AIRouter.git cd AIRouter
3. instalação de dependências
- Maneira 1: instalar como um pacote Python (recomendado)::
pip install -e .
- Maneira 2: instalação direta de dependências::
pip install -r requirements.txt
4. projetos de configuração
- Configuração da chave de API::
- Copie o arquivo de configuração de amostra:
cp ew_config/api_keys.example.py ew_config/api_keys_local.py
- compilador
ew_config/api_keys_local.py
Preencha a chave de API real de cada provedor de LLM. Por exemplo:API_KEYS = { "openai": "sk-xxxxxxxxxxxxxxxxxxxx", "anthropic": "sk-ant-xxxxxxxxxxxxxxxx", "google": "AIzaSy-xxxxxxxxxxxxxxxx" }
- Copie o arquivo de configuração de amostra:
- Configuração do banco de dados::
- Crie um banco de dados 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 );
- Copie o arquivo de variável de ambiente:
cp env.example .env
- compilador
.env
preenchendo as informações do banco de dados, por exemplo:DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password DB_NAME=airouter DB_PORT=3306
- Crie um banco de dados MySQL:
5. ativação de serviços
- Implementação do Docker (recomendado)::
- Crie a imagem do Docker:
docker build -t airouter:latest .
- Inicie o serviço:
docker-compose up -d
- Verifique o status do serviço:
docker-compose ps
- Crie a imagem do Docker:
- ativação manual::
- Lançamento do Serviço de Triagem de Saúde:
python CheckHealthy.py
- Inicie o serviço de gerenciamento de chaves de API no novo terminal:
python -m api_key_manager.main
- Lançamento do Serviço de Triagem de Saúde:
Função Fluxo de operação
1. geração de texto básico
- fazer uso de
LLM_Wrapper
chama o modelo para gerar o texto:from LLMwrapper import LLM_Wrapper response = LLM_Wrapper.generate( model_name="gpt4o_mini", prompt="解释量子计算的基本原理" ) print(response)
- O sistema escolherá o modelo ideal (por exemplo, gpt4o_mini da OpenAI) para executar a tarefa com base na política de balanceamento de carga.
2. entradas multimodais
- Suporta a entrada de imagens e textos, por exemplo, para descrever o conteúdo de uma imagem:
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)
- Verifique se o modelo é compatível com multimodalidade (por exemplo, gpt4o_mini) e se a imagem precisa ser convertida para o formato Base64.
3. chamadas de função
- Configurar a ferramenta e chamar funções externas, como consultar o clima:
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. configuração do balanceamento de carga
- Há suporte para três modos de balanceamento de carga:
fast_first
Prioridade: A prioridade é dada ao modelo mais responsivo.cost_first
Preferência pelo modelo de menor custo: A preferência é dada ao modelo de menor custo.balanced
Equilíbrio entre velocidade e custo.
- Exemplo:
response = LLM_Wrapper.generate( model_name="gpt4o_mini", prompt="你好", mode="cost_first" )
5. escolhas ideais de Pareto
- Selecione o resultado ideal entre vários modelos:
response = LLM_Wrapper.generate_fromTHEbest( model_list=["gpt4o_mini", "claude35_sonnet", "gemini15_pro"], prompt="复杂推理任务" )
- O sistema seleciona automaticamente o melhor modelo com base no tempo de resposta e no custo.
6. monitoramento e registro de saúde
- Verifique o status de integridade do serviço:
- entrevistas
http://localhost:8001/check_healthy
Verifique o status do serviço de triagem de saúde. - entrevistas
http://localhost:8002/check_healthy
Verifique o status do serviço de gerenciamento de chaves de API.
- entrevistas
- Exibir registro:
docker-compose logs -f airouter-health-check tail -f health_check.log
advertência
- Certifique-se de que a chave de API seja válida; uma chave com falha fará com que a tarefa falhe.
- As implementações do Docker precisam garantir que as portas (8001, 8002) não estejam ocupadas.
- Verifique regularmente o repositório do GitHub para obter atualizações dos recursos e correções mais recentes.
- Senha do banco de dados (
DB_PASSWORD
) é necessário, e sua ausência resultará em falha na inicialização.
cenário do aplicativo
- Distribuição de tarefas com vários modelos
Os desenvolvedores precisam usar vários LLMs (por exemplo, OpenAI, Anthropic) ao mesmo tempo para concluir a tarefa. O AIRouter pode distribuir a tarefa por meio de uma interface unificada, selecionando automaticamente o modelo ideal para economizar tempo de desenvolvimento. - Projetos sensíveis ao custo
Com um orçamento limitado, o recurso de otimização de custos do AIRouter prioriza modelos de baixo custo para start-ups ou desenvolvedores individuais. - Desenvolvimento de aplicativos multimodais
Ao desenvolver aplicativos de descrição de imagens ou de bate-papo multimodal, o AIRouter suporta a entrada de texto e imagem para simplificar o processo de desenvolvimento. - operação e manutenção automatizadas (O&M)
As equipes de operações podem criar serviços de IA estáveis com menos intervenção manual por meio de recursos de monitoramento de integridade e balanceamento de carga.
QA
- Quais provedores de LLM são compatíveis com o AIRouter?
Suporte para OpenRouter, DeepInfra, DeerAPI, TogetherAI, Google, OpenAI, Anthropic e muitos outros provedores, com uma lista específica de suporte disponível na seçãoew_config/source.py
Ver. - Como escolher o modelo ideal?
fazer uso degenerate_fromTHEbest
o sistema seleciona o melhor modelo com base em um algoritmo Pareto-optimal que combina tempo de resposta, custo e taxa de sucesso. - Qual é a diferença entre a implantação do Docker e a implantação manual?
A implantação do Docker simplifica a configuração do ambiente por meio da conteinerização e é adequada para ambientes de produção; a implantação manual requer a instalação de dependências uma a uma e é adequada para desenvolvimento e depuração. - Como faço para lidar com a falha da chave de API?
O sistema de gerenciamento de chaves do AIRouter detecta automaticamente chaves inválidas e muda para uma chave disponível.api_keys_local.py
Configure várias chaves válidas no