No mês passado aceitei um trabalho: ajudar uma equipe que faz um sistema SaaS de tickets a construir um protótipo de atendimento inteligente, com a exigência de colocá-lo em funcionamento em uma semana e comparar horizontalmente a qualidade das respostas de DeepSeek, Qwen, Doubao e GPT-4o. Todo o negócio deles roda em Tencent Cloud CVM, com contêineres usando TKE, então todas as chamadas tinham de ser iniciadas de dentro da nuvem. Eu originalmente pensava que integrar uma API não seria tão difícil, mas ao longo de uma semana os obstáculos foram mais numerosos do que eu imaginava.
Primeiro, a conclusão: se o seu negócio na Tencent Cloud precisar integrar dois ou mais grandes modelos, não escreva diretamente contra o SDK oficial de cada fornecedor; primeiro monte uma camada de agregação de AI API. Isso não é preguiça, é poupar a própria vida. Abaixo vou explicar na ordem em que encontrei os obstáculos.
Gestão de Keys: não codifique 6 Keys diretamente em variáveis de ambiente
No primeiro dia fiz uma coisa bem estúpida: enfiei as Keys das quatro plataformas nas variáveis de ambiente do CVM e no código lia diretamente com os.environ. Funcionava, mas naquela mesma tarde deu problema: o pessoal de testes queria trocar uma Key do Qwen para fazer teste de carga, eu alterei a configuração e reiniciei o contêiner, e acabei reiniciando junto a máquina de produção.
O problema é que Keys e configurações de negócio estavam misturadas, sem gestão centralizada. Depois passei todas as Keys para um serviço de configuração independente, marcando por duas dimensões: "plataforma + finalidade", por exemplo deepseek-prod, qwen-test. O chamador só usa o nome lógico, sem tocar na Key real. Depois disso, trocar Key não exige mexer no código de negócio nem reiniciar o contêiner da aplicação.
Se você não quer manter isso por conta própria, usar uma plataforma de agregação dá menos trabalho. No projeto, depois passamos a usar token8341; uma única Key permite chamar modelos mainstream como GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE e Doubao, e a rotação de Keys e o controle de cota ficam do lado da plataforma. O serviço na Tencent Cloud só precisa manter uma credencial. Isso é especialmente amigável para cenários de teste comparativo entre múltiplos modelos, eliminando quatro conjuntos de lógica de autenticação.
Compatibilidade de SDK: quatro fornecedores, quatro formas de escrever, custo de manutenção explodindo
No segundo dia comecei a escrever o código de chamada, e foi aí que ficou realmente desagradável. DeepSeek e GPT-4o são compatíveis com o OpenAI SDK, basta mudar o base_url para alternar, essa parte foi tranquila. Mas o SDK do Qwen tem outra convenção de nomes de parâmetros, a autenticação do Doubao usa assinatura AK/SK em vez de Bearer Token, e a interface do ERNIE tem seu próprio fluxo de autenticação.
O sintoma é bem concreto: escrevi uma função chat unificada, mas no fim ela estava cheia de ifs, if platform == 'doubao' segue este ramo, elif platform == 'qwen' segue aquele ramo. A função chegou a 200 linhas e a cobertura de testes ainda não subia.
A abordagem de solução é introduzir um gateway de AI API para fazer conversão de protocolo. O gateway expõe internamente um conjunto de interfaces compatíveis com OpenAI e, externamente, traduz as requisições para o formato que cada fornecedor entende. Assim o código de negócio tem apenas um SDK, e adicionar um novo modelo exige apenas adicionar um adaptador no lado do gateway, sem mudanças no lado do negócio. Chegamos a montar uma versão ourselves, mas depois vimos que usar um serviço de agregação pronto é mais rápido; plataformas como token8341 já fazem exatamente isso, são compatíveis com o OpenAI SDK e basta mudar uma linha do base_url para trocar de modelo.
Saída em streaming: os formatos de SSE de cada fornecedor são realmente diferentes
No terceiro dia fiz a saída em streaming, o front-end precisava soltar caractere por caractere. O protocolo SSE em si é padrão, mas a estrutura do campo data de cada fornecedor é diferente. No delta retornado pela linha OpenAI o campo é content, o campo retornado pelo Qwen tem outro nome, e o Doubao às vezes insere um pacote de heartbeat no meio do stream; o front-end recebe um delta vazio e dá erro direto.
O sintoma é que o front-end às vezes trava sem andar, ou de repente aparece um balão de mensagem vazio. Depurei por um bom tempo até descobrir que era o heartbeat não filtrado.
A prática unificada é fazer uma normalização na camada de gateway, convertendo todas as respostas em streaming de todas as plataformas para o formato de chunk da OpenAI, descartando diretamente os heartbeats, e o lado do negócio lida com apenas uma estrutura. Se isso não for feito, o front-end terá de escrever quatro conjuntos de lógica de parsing, e cada alteração será um choro.
Tratamento de exceções: se um fornecedor der timeout, é preciso poder alternar automaticamente
No quarto dia fiz o teste de carga; o lado da DeepSeek ocasionalmente dava timeout e toda a conversa travava. Em cenários de atendimento inteligente, se o usuário espera três segundos sem resposta, basicamente fecha a página; não dá para ficar esperando.
Adicionei uma camada de lógica de degradação: se a chamada ao modelo principal ultrapassar o limite configurado sem retornar, alterna automaticamente para o modelo de backup e registra essa falha. O ponto-chave aqui é que a degradação deve ser imperceptível; o lado do usuário não pode perceber a troca. No roteamento de grandes modelos, as plataformas de agregação geralmente têm failover embutido; nos nossos testes a troca automática da token8341 se mostrou relativamente estável, em caso de timeout do modelo principal ela redireciona silenciosamente para a alternativa, e o código de negócio não precisa escrever lógica de retry.
Um aviso: não saia alternando sem critério; é preciso distinguir se é timeout de rede ou erro retornado pelo próprio modelo. No primeiro caso pode alternar; no segundo, alternar é inútil e ainda desperdiça Token.
Monitoramento de custos: se o consumo de Token não for agregado, no fim do mês as contas não fecham
No último dia fiz as estatísticas de custo e descobri que as faturas das quatro plataformas eram quatro documentos separados, e os formatos ainda eram diferentes; algumas cobram por Token, outras por número de chamadas, e não há como comparar horizontalmente. O chefe perguntou "qual modelo tem melhor custo-benefício" e eu não conseguia apresentar um número unificado.
A solução é fazer contabilidade unificada na camada de gateway, registrando em cada chamada o nome do modelo, Tokens de entrada, Tokens de saída e tempo de execução, gravando tudo em uma tabela. Assim é possível gerar relatórios por dia, por modelo e por linha de negócio. Plataformas de agregação normalmente já vêm com painel de uso; no modelo de cobrança por consumo, a agregação de custos fica muito mais simples. Na comparação, a rota de compra em lote somada à redução de custos com energia verde realmente deixa o custo por Token um pouco menor do que a compra direta oficial, e isso é crucial para cenários de atendimento com grande volume.
Algumas impressões depois de uma semana
Para um negócio na Tencent Cloud integrar grandes modelos, a dificuldade nunca foi "como fazer um modelo funcionar", mas "como fazer seis modelos agirem como um só". Gestão de Keys, compatibilidade de protocolo, normalização de streaming, degradação por falha e agregação de custos: se qualquer uma dessas cinco coisas não estiver bem feita, o protótipo não sobrevive ao teste de carga.
Montar uma camada de agregação é a escolha com melhor custo-benefício. Escrever por conta própria também serve, usar um serviço pronto de agregação de AI API também, o importante é não deixar o código de negócio encarar diretamente as diferenças entre seis fornecedores. Plataformas como SiCore TokenWorks focam justamente em energia verde e prioridade para modelos nacionais, e chamar diretamente dos contêineres na Tencent Cloud tem latência de rede bem menor do que passar por trânsito no exterior, o que também foi um dos motivos pelos quais acabamos escolhendo essa opção.
No dia em que o protótipo ficou pronto, o pessoal de testes disse uma frase que me marcou: "No fim, integrar grandes modelos não é integrar APIs, é integrar um sistema de governança." Isso está certo.
Autor: Chen Jingxing
Data de publicação: 6 de outubro de 2026