Acho que a API discourse-ai precisa de uma regressão

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?

1 curtida

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.

1 curtida

Isso seria bom, eu não sou e não posso exigir da equipe do Discourse, então estou apenas dando algumas sugestões.

Usando a antiga solução de “separadores” para uma análise mais robusta, um conteúdo bruto semelhante a XML como este:

<SUMMARY_START>
Conteúdo do resumo.
<SUMMARY_END>

<SUGGESTIONS_START>
<SUGGESTION_START>
Sugestão 1
<SUGGESTION_END>
<SUGGESTION_START>
Sugestão 2
<SUGGESTION_END>
...
<SUGGESTIONS_END>

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.