O Discourse AI agora está usando saída estruturada para conteúdo, mas a saída estruturada não tem sido suportada por muitos provedores de API, quase todos os provedores de IA em meu país, como DeepSeek ou Qwen, não fazem isso. O uso de saída estruturada leva a escolhas de API muito limitadas, variando apenas para alguns provedores de IA principais.
Eu acho que, se o Discourse AI tem que quebrar a limitação atual nas escolhas de provedores, desistir da saída estruturada é essencial, e nada será realmente quebrado sem ela. Como solução, podemos usar alguns separadores únicos simples ou apenas pedir à IA para gerar JSON fornecendo um JSON Schema ou exemplos, mas sem usar saída estruturada, por que não?
Você pode tentar o Moonshot AI Kimi K2 através de seus endpoints de API para a China?
Parece que a URL base da API é https://api.moonshot.cn/v1.
Implementamos o requisito de saídas estruturadas porque sofri milhares de reclamações sobre problemas como modelos adicionando “Aqui está o seu resumo” ou falhas na análise ao obter uma lista de títulos sugeridos para o auxiliar de IA, etc. Agora, com a tradução, tornou-se um problema ainda pior quando você tem que ser capaz de confiar em milhões de invocações de LLM para não adicionar nada extra à sua saída.
Dada a necessidade de confiabilidade e a disponibilidade geral de saídas estruturadas, tomamos essa decisão em relação aos provedores onde isso é suportado, mas estaria aberto a um PR que adicionasse uma caixa de seleção para desativar Saídas Estruturadas da solicitação da API no provedor OpenAI.
Então, não se importando com nada fora de <START> e <END>, acredito que o modelo de IA de produção mais tolo possa processar os rótulos corretamente.
E pedindo à IA para não adicionar descrições extras; então alertando os administradores sobre possíveis problemas se abrirem essa caixa de seleção. Obrigado.
Eu não sei como é o corpo da solicitação gerado pelo Discourse AI. Mas se não for, basta colocar os prompts do sistema na primeira mensagem dita pela função system, o resultado da consulta do banco de dados vetorial na próxima mensagem da função system, e colocar o conteúdo da postagem ou outros dados reais nas mensagens da função user.