O Octopus é uma ferramenta simples, bonita e eficiente de agregação de APIs de Modelo de Linguagem Grande (LLM) e de serviço de proxy de balanceamento de carga projetada para usuários individuais e desenvolvedores. Com a proliferação de LLMs no mercado, o desafio é como gerenciar com eficiência as APIs e as várias chaves de diversos fornecedores. O Octopus oferece uma solução única para centralizar as APIs LLM de vários canais em um painel de gerenciamento local unificado para configuração e distribuição. Independentemente da interface subjacente, seja ela OpenAI, Anthropic ou Gemini O Octopus oferece suporte à conversão perfeita de protocolos para todos os formatos, permitindo que os aplicativos front-end invoquem todo o modelo de rede com um padrão de interface unificado. Além disso, a plataforma suporta a montagem de várias chaves de API para um único canal e resolve os problemas de limitação de fluxo e relatório de erros em cenários de alta simultaneidade usando várias estratégias de balanceamento de carga, como preferência inteligente, polling, aleatório ou failover. Com uma interface de usuário visual intuitiva, o Octopus tem recursos avançados incorporados, como estatísticas de solicitações, monitoramento de consumo de tokens, rastreamento de contas de custo e sincronização automática de preços de modelos upstream, o que atende perfeitamente às necessidades de gerenciamento detalhado de jogadores experientes para chamadas de interface de vários modelos.
Lista de funções
- Agregação de modelos de idiomas grandes em vários canaisO sistema oferece suporte ao gerenciamento e à configuração unificados de canais de API de vários provedores principais de LLM (Large Language Model) em um único sistema, além de integração e coleta centralizadas de interfaces fragmentadas.
- Mecanismo flexível de distribuição de várias chavesSuporta a configuração de várias chaves de API diferentes para o mesmo canal de modelo, o sistema alternará automaticamente o uso da chave, evitando efetivamente a falha de solicitações devido ao fato de uma única chave acionar o Rate Limit.
- Alta disponibilidade Balanceamento de carga totalAs políticas integradas de distribuição de tráfego de classe empresarial, incluindo Round Robin, Random, Failover e Weighted, garantem um fluxo estável e suave de todas as chamadas externas.
- Conversão de protocolo entre plataformas totalmente automatizadaA tradução adaptada do protocolo tem suporte nativo, permitindo a compatibilidade adaptativa entre os padrões de interface, como OpenAI Chat, OpenAI Responses, Anthropic API e Gemini, e permitindo que os clientes antigos invoquem perfeitamente os grandes modelos da nova plataforma.
- Velocimetria inteligente de ponto final e preferênciasPara canais vinculados a vários endpoints, o sistema calcula automaticamente a latência da solicitação de rede de cada nó e distribui de forma inteligente o tráfego para o nó com a resposta atual mais rápida.
- Sincronização automatizada de preços com modelosObtenha automaticamente os dados de preços dos modelos mais recentes da biblioteca de código aberto models.dev upstream e sincronize-os com o sistema de faturamento local; enquanto isso, ele suporta a atualização e a sincronização automáticas da lista dos modelos mais recentes suportados pelos canais subjacentes atuais.
- Estatísticas visuais e KanbanFornece um painel front-end (UI da Web) minimalista e rico em dados que registra em tempo real o status da rede de cada solicitação de interface, a quantidade exata de token consumida e o rastreamento financeiro correspondente dos custos de streaming.
- Leve e compatível com vários mecanismos de banco de dadosA arquitetura do serviço é extremamente leve, com suporte padrão para SQLite local para uma implantação com configuração zero e acesso fácil ao MySQL ou PostgreSQL para armazenamento de dados de registro persistentes maiores.
Usando a Ajuda
Guia de instalação e operação detalhada do Octopus Panorama
A Octopus tem o compromisso de oferecer aos desenvolvedores individuais e entusiastas de IA a experiência mais eficiente e minimalista de gerenciamento da API LLM. Para ajudá-lo a começar e utilizar plenamente o potencial dessa arquitetura, este guia fornecerá um conjunto de instruções abrangentes e de nível de babá, desde a implantação básica do sistema, configuração do ambiente, até a agregação detalhada de vários canais e acesso do cliente. Leia-o com atenção e siga as etapas para implantar e criar seu próprio hub privado de agendamento de grandes modelos.
I. Configurações de implantação e inicialização do serviço
O servidor Octopus é compilado em um único arquivo executável e incorporado com recursos otimizados de front-end da Web, o que significa que sua implantação é extremamente simplificada, dando adeus a configurações complexas de ambiente.
1. implantação em contêineres com o Docker (altamente recomendado)
Para a maioria dos usuários, o Docker oferece um ambiente isolado limpo e fácil de manter. Certifique-se de que o Docker esteja instalado em seu host ou servidor e, em seguida, execute o seguinte comando de inicialização com um clique em um terminal:
docker run -d \
--name octopus \
-v /你的本地绝对路径/data:/app/data \
-p 8080:8080 \
chruxc/octopus
Guia de práticas recomendadas: no comando -v é responsável por definir o parâmetro /app/data Faça uma montagem persistente do catálogo em seu disco local. Essa etapa é extremamente importante, pois o banco de dados SQLite gerado pelo Octopus por padrão (que registra todo o faturamento estatístico) e o núcleo do sistema config.json Os arquivos de configuração são armazenados aqui. A persistência de dados evita a perda de seus ativos de chave de API e estatísticas históricas devido à reinicialização ou destruição do contêiner.
Se você for um jogador avançado que está acostumado a usar ferramentas de orquestração, também pode simplesmente criar um docker-compose.yml Documentação:
wget https://raw.githubusercontent.com/chicring/octopus/refs/heads/dev/docker-compose.yml
docker compose up -d
2. execução direta binária vs. compilação de código-fonte
Se você não tiver um ambiente de contêiner ou quiser colocá-lo em funcionamento rapidamente em seu computador pessoal com Windows/macOS, poderá ir diretamente para a página de versões do projeto no GitHub e baixar o binário do sistema operacional. Depois de extraí-lo, abra um terminal e digite ./octopus start Pronto para executar o serviço em segundos.
Para os geeks que desejam participar do desenvolvimento secundário, é preciso ter certeza de que o ambiente Go 1.24+ e o Node.js 18+ estão instalados em seu sistema. Depois de clonar o repositório de código, primeiro vá para web Uso do catálogo pnpm install && pnpm run build Compilar os recursos estáticos do front-end e movê-los para o back-end static e, finalmente, por meio do diretório go run main.go start Concluir a compilação e a inicialização geral do projeto.
3. login pela primeira vez e modificação das credenciais de administrador
Independentemente de como o serviço for iniciado, o sistema, por padrão, escutará localmente no endereço 8080 Porta. Abra qualquer navegador para acessar a http://localhost:8080Você pode ver o backend do administrador atualizado.
- Conta de login padrão:
admin - Senha de login padrão:
admin
⚠️ Aviso de segurança: Seu painel de administração não apenas contém as chaves de API de alto valor pelas quais você pagou, mas também expõe os pontos de extremidade de encaminhamento ao público. Portanto, a primeira coisa que você precisa fazer ao entrar no console é acessar a página Configurações do sistema e alterar a senha padrão para uma estrutura de senha forte.
🛠️ II Configuração da agregação de canais e do roteamento inteligente desde o início
Depois de fazer login com sucesso, o Dashboard será exibido. Precisamos criar o serviço de acordo com a lógica “de baixo para cima”: primeiro configure o canal de provisionamento subjacente e, em seguida, configure os grupos de distribuição externos.
Etapa 1: Insira e configure o canal de API subjacente (Gerenciamento de canais)
O canal pode ser entendido livremente como seu “provedor de API”.
- Na barra de navegação à esquerda, clique em gerenciamento de canaisEm seguida, clique em “Add Channel” (Adicionar canal) no canto superior direito.
- Selecione o tipo de provedorProtocolos de modelo: O sistema vem pré-configurado com uma variedade de protocolos de modelo, como OpenAI Chat, Anthropic, Gemini e outros. A escolha do tipo certo determina como as solicitações subjacentes são montadas e analisadas.
- Preencha o URL da baseO Octopus tem um projeto central, com conclusão inteligente de rotas, para que vocêdesnecessárioPreencha o caminho longo específico da solicitação. Por exemplo, se você estiver acessando um site oficial da OpenAI, basta preencher o caminho
https://api.openai.com/v1O sistema emenda automaticamente uma emenda inteligente atrás dela quando ela é encaminhada./chat/completionse outros endereços de roteamento correspondentes. - Preencher o pool de matrizes de chaves de APIO Octopus permite que você configure várias chaves de API do mesmo provedor em um único canal em diferentes linhas: para resolver o problema de bloqueio de conta ou concorrência limitada devido a chamadas de alta frequência, o Octopus permite que você aloque automaticamente o tráfego entre essas chaves ao processar um grande número de solicitações.
Etapa 2: Formar grupos de balanceamento de carga virtual (gerenciamento de grupos)
Depois que os canais são configurados, o sistema não está pronto para prestar serviços diretamente ao público. Precisamos “empacotar” esses canais fragmentados em um modelo virtual externo.
- entrar em Gerenciamento de clusters crie um novo agrupamento de negócios.
- Definir o nome do modelo virtualNome do grupo: O “nome do grupo” aqui é o nome do grupo passado pelo cliente externo quando ele envia a solicitação.
modelO nome do campo. Por exemplo, nomeie-o comogpt-4o-pro。 - Vincular os canais reais de nível inferiorAssinale abaixo o canal físico específico que acabou de ser estabelecido e que pode fornecer o serviço de diálogo gpt-4o (por exemplo, uma combinação de nós oficiais conectados diretamente e nós de trânsito baratos de terceiros).
- Seleção de políticas de distribuição e roteamento de tráfego (destaques principais):
- Round RobinCada nova solicitação de API solicitará os canais subjacentes um a um em uma ordem definida, garantindo que cada nó tenha o mesmo tráfego.
- AleatórioSeleção completamente aleatória para cenários com um grande número de nós e estabilidade indiferenciada.
- FailoverO Octopus foi projetado para ambientes de produção de alta estabilidade! Você pode configurar um “canal proxy barato” de alta prioridade como o principal e, em caso de erro de rede, esgotamento do saldo ou tempo limite de congestionamento nesse canal, o Octopus bloqueará automaticamente o retorno do erro e redirecionará a solicitação em segundo plano para o “canal de backup oficial” de baixa prioridade, porém mais estável! "O cliente nem sequer sentirá uma resposta lenta. Seu cliente sentirá apenas meio segundo de lentidão na resposta e nunca receberá uma mensagem de erro vermelha irritante.
- PonderadoOs nós recebem qualquer proporção de peso de 1 a 100 de acordo com o preço ou o saldo de faturamento de diferentes canais, de modo a controlar com precisão a divisão de tráfego de cada nó.
Etapa 3: Sincronização do faturamento refinado e dos preços unitários do modelo (gerenciamento de preços)
Calcular o dinheiro específico gasto em um ambiente híbrido multicanal é muitas vezes uma dor de cabeça, e a Octopus introduziu um sistema de faturamento automatizado para essa finalidade:
- Por padrão, o Octopus se conecta silenciosamente em segundo plano à famosa biblioteca de modelos de preços de código aberto do GitHub
models.devO sistema de preços de mercado, que é o mais recente, obtém e atualiza automaticamente os preços unitários oficiais em tempo real de todos os principais modelos globais para você. - Quando você montar alguns modelos privados exclusivos ou fora do padrão no canal, o sistema gravará automaticamente esses modelos “inestimáveis” no painel, e você poderá configurar manualmente os modelos personalizados nesta página
Input和OutputPreço unitário.
Esse recurso, combinado com os relatórios estatísticos mensais/diários no Dashboard, permite que os desenvolvedores identifiquem quais cenários de aplicativos estão consumindo mais dinheiro.
Três, sem modificação de código: compatível com o acesso do cliente em todas as plataformas
A vantagem mais poderosa da arquitetura Octopus é que não importa quantos formatos diferentes de modelos diversos você coloque em seu painel, quando exposto ao público, o Octopus fornece um protocolo de interface OpenAI perfeito e padrão! Você pode pensar nele como um middleware para todos os fins.
Cenário 1: usando o SDK oficial da OpenAI para fazer a interface no código
Você não precisa fazer nada para reescrever o código do projeto existente, basta substituí-lo! base_url Parâmetros:
from openai import OpenAI
# 初始化客户端,将链接指向刚刚部署完成的 Octopus 本地或远程服务点
client = OpenAI(
base_url="http://127.0.0.1:8080/v1",
api_key="sk-octopus-你的系统授权Token"
)
# 重点注意:此处的 model 参数,必须填写在 Octopus "分组管理" 中建立的【虚拟名称】!
completion = client.chat.completions.create(
model="gpt-4o-pro",
messages=[{"role": "user", "content": "请用Python帮我写一个快速排序算法。"}]
)
print(completion.choices[0].message.content)
Cenário 2: Capacitação da inteligência de linha de comando em nível de sistema (exemplo do Código Claude)
Algumas ferramentas oficiais rigorosas exigem que as solicitações tenham uma estrutura de parâmetros nativa. Suponha que você queira fornecer o parâmetro Anthropic formal Claude O assistente de linha de comando do Code usa um nó de agente de retransmissão barato, e você pode modificar o ~/.claude/settings.json Permita que a Octopus atue como um “intermediário enganoso”:
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8080",
"ANTHROPIC_AUTH_TOKEN": "sk-octopus-你的授权Token",
"ANTHROPIC_MODEL": "这里填入Octopus里设定的Sonnet组名",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "这里填入Octopus里设定的Sonnet组名"
}
}
Quando a configuração estiver em vigor, as chamadas subjacentes do Claude Code serão redirecionadas para o Octopus, que fará automaticamente a tradução do protocolo e a distribuição não destrutiva das solicitações nativas do Anthropic para o agente de retransmissão de back-end.
Dica definitiva de prevenção contra perda de dados: Devido à necessidade de lidar com a simultaneidade maciça de textos, para garantir o desempenho do limite de leitura/gravação do sistema, o Octopus combinará a taxa de transferência de cada API com o Token As estatísticas de consumo são armazenadas na memória e gravadas no banco de dados SQLite/MySQL em um lote uniforme a cada poucos minutos, de acordo com um arquivo de configuração. Portanto, se você precisar atualizar o Octopus ou se ele estiver fora do ar para manutenção.Lembre-se de não usar kill -9 força bruta. Favor enviar o SIGTERM ou pressionando diretamente o botão Ctrl+C Com o fechamento suave, o programa transferirá automaticamente os últimos “dados do último trem” da memória com segurança para o disco.
cenário do aplicativo
- Pooling de cotas de várias chaves de API e prevenção de bloqueio de simultaneidade
Se você tiver várias chaves de API de terceiros de pequeno valor com créditos livres limitados ou controle rigoroso de frequência de alta moeda, é muito fácil acionar o Rate Limit devido a solicitações instantâneas de alta frequência se os aplicativos front-end estiverem diretamente conectados. Usando o Octopus para adicionar essas chaves a um pool de canais físicos unificados, o sistema implementará polling e distribuição dinâmicos e balanceados, mascarando a complexidade do agendamento por trás de uma única interface e eliminando completamente o gargalo do rate blocking. gargalo. - Acesso sem perdas a front-ends de modelos grandes multimodais e de várias marcas
Para desenvolvedores individuais que frequentemente precisam interagir com vários modelos, como ChatGPT, Claude e Gemini, para avaliá-los entre si, os formatos de protocolo privados de diferentes fabricantes podem levar a uma estrutura inchada de código de solicitação no lado do aplicativo. Com o poderoso gateway de conversão de protocolo nativo da Octopus, todos os modelos são mapeados para dentro e fora de um conjunto padrão de formatos de interface OpenAI, tornando-os perfeitamente compatíveis com qualquer plug-in IDE, cliente Chatbox ou ferramenta de eficiência de terceiros, como o Immersive Translator. - Redundância de recuperação de desastres de nó mestre-escravo e failover de alta disponibilidade
Nos cenários com recursos limitados, mas com forte dependência comercial, os desenvolvedores geralmente compram um canal de trânsito de terceiros muito barato, mas instável. Depois de aplicar o Octopus, você pode definir o canal de baixo custo como o nó principal e o canal oficial de alto custo como o nó de backup. Quando o nó principal sofrer um congestionamento na rede e falhar, a camada de gateway conseguirá fazer uma alternância inteligente de “Failover” em nível de milissegundos para o nó oficial, e as solicitações de negócios do cliente continuarão a ser feitas sem problemas. - Cenários de aplicativos internos para faturamento granular e rastreamento de contas financeiras
Quando uma pessoa compartilha os recursos de um modelo grande em vários subprojetos privados, blogs, plug-ins de endpoint ou círculos de amigos, geralmente é difícil distribuir o custo. Com o suporte do Octopus para sincronização automática de preços unitários de mercado de modelos padrão e preços unitários de modelos personalizados, o painel de relatórios integrado fornece um registro anatômico profundo da quantidade exata de tokens consumidos e o preço em centavos correspondente a cada solicitação, ajudando a criar um painel de custos de capital visível e transparente.
QA
- Onde as informações de configuração do Octopus e os dados estatísticos de faturamento são armazenados por padrão? Posso usar outro banco de dados?
O sistema Octopus tem como padrão um banco de dados SQLite de arquivo único para princípios leves e sem manutenção, com dados e dados autogeradosconfig.jsonsão colocados nodata/data.dbDiretório. Para usuários avançados com maior rendimento ou que desejam isolamento de dados entre servidores, é possível modificar o arquivo de configuração para se conectar nativamente e sem problemas a um ambiente de banco de dados MySQL ou PostgreSQL de maior desempenho. - Usei acidentalmente uma senha fraca para inicializar. Como faço para alterar a senha do administrador no painel de administração?
Use a conta inicial padrão depois que o serviço tiver concluído sua implementação inicialadmin/ SenhaadminFaça login no back office. Em seguida, clique no botão Personal Centre (Centro pessoal) no canto superior direito da interface ou no botão Settings (Configurações) no canto inferior esquerdo e siga as instruções para atualizar e definir uma nova senha de alta resistência imediatamente, de modo a evitar ser interceptado pela máquina de varredura da rede pública e, assim, causar o roubo malicioso de ativos de API na conta. - Meu plug-in de aplicativo de IA de terceiros só suporta entrada para a interface de formato OpenAI, mas eu quero a chamada subjacente para o modelo Anthropic Claude.
Totalmente. Graças ao tradutor de protocolo cruzado de alto desempenho integrado nativamente no Octopus, você só precisa inserir corretamente o endereço e os parâmetros-chave do serviço Claude no Channel Manager. Tudo o que você precisa fazer é inserir o endereço correto e os parâmetros-chave do serviço Claude na seção “Channel Management” e, em seguida, preencher o Octopus LAN ou o gateway público para o plug-in invocado externamente, e o sistema receberá automaticamente o OpenAI padrão do cliente./chat/completionsOs protocolos são solicitados e traduzidos sem perdas em protocolos antrópicos na parte inferior para diálogo, e todo o processo é totalmente transparente para o chamador. - Se eu inadvertidamente sofrer uma falha de energia no servidor ou encerrar à força um processo do sistema, isso resultará na perda dos registros de fluxo de contas consumidas?
Existe a possibilidade de uma pequena perda de dados. Como as solicitações de estatísticas exigem recursos de simultaneidade de E/S extremamente altos para serem respondidas, o Octopus adota uma estratégia de estatísticas que prioriza a memória, em que todas as contagens de solicitações e os registros de faturamento de tokens dos últimos minutos são armazenados em um pool de cache de processos e periodicamente pressionados em massa no banco de dados subjacente. Se okill -9Com esse tipo de destruição forçada, os dados que ainda não foram mantidos no banco de dados por alguns minutos serão zerados. Sempre use um comando padrão de parada do programa (por exemplo, pressione a teclaCtrl+CAguarde a conclusão do desligamento gradual. - Ao preencher o URL da base do canal, você precisa adicionar algo como a depuração do Postman
/chat/completionsdo sufixo da solicitação?
Não é necessário. O criador de solicitações do sistema está ciente disso de forma inteligente, e você só precisa preencher um caminho pré-raiz do nome de domínio e do identificador de versão (por exemplohttps://api.openai.com/v1、https://api.anthropic.com/v1(etc.). Para sufixos de endpoint diferenciados para interações de modelo, o Octopus os reúne e emenda automaticamente ao iniciar uma solicitação de proxy, portanto, não os adicione.






























