Descrição do Recurso:
Adicionar uma chave ao objeto retornado pela função discourse.getUser da API de ferramentas do Discourse que forneça o número de tópicos criados pelo usuário.
Comportamento Atual:
Capacidades adicionais podem ser fornecidas às personas de IA do Discourse criando “ferramentas” personalizadas para o LLM utilizar. O Discourse fornece uma API que pode ser usada no código da ferramenta.
Dados sobre uma conta de usuário podem ser obtidos através da função discourse.getUser.
O objeto retornado pela função possui uma chave post_count. Acontece que, no contexto das estatísticas do usuário, “post” na verdade significa “resposta”. Assim, o valor desta chave não inclui o número de posts originais de tópicos criados pelo usuário.
Faria sentido fornecer os dados para esses dois tipos distintos de atividade através de duas chaves separadas, mas inexplicavelmente a função não retorna dados de contagem de tópicos, embora esta seja uma das principais estatísticas do usuário.
Um quadro completo da atividade do usuário não pode ser obtido através da função discourse.getUser. Será inconveniente ou inviável obter essa informação por outros meios.
Passos Reproduzíveis:
- Faça login em um fórum onde você tenha privilégios de administrador.
- Navegue até a página Admin > Plugins > AI > Tools (
/admin/plugins/discourse-ai/ai-tools). - Clique no botão “+ New tool”.
Um menu será aberto. - Selecione “Start from blank…” no menu.
A página de configuração de uma nova ferramenta será aberta. - Insira quaisquer valores nos seguintes campos da página:
- Name
- Tool Name
- Description
- Summary
- Insira o seguinte código no campo “Script”:
ⓘ O ID de usuáriofunction invoke() { return discourse.getUser(-1); }-1foi selecionado arbitrariamente por ser provável que exista em qualquer fórum. Qualquer outro ID de usuário ou nome de usuário pode ser passado paradiscourse.getUser, se preferir. - Clique no botão “Save” na parte inferior da página.
- Clique no botão “Run test” na parte inferior da página.
A caixa de diálogo “Test AI tool” será aberta. - Clique no botão “Run test” na caixa de diálogo.
O resultado do teste não fornece o número de tópicos criados pelo usuário.
Versão do Discourse:
f8f53ac5e8e4348ae308fcddc078766463d5e5f3
Contexto Adicional:
Estou ciente de que posso obter essa informação do endpoint /user-badges/{username}/summary.json da API do Discourse, e que requisições de API podem ser feitas através da função http.get da API de ferramentas. Não é viável fazer isso porque a configuração do site hide_new_user_profiles está habilitada no fórum que eu gerencio, e, portanto, o endpoint para novos usuários só é acessível para requisições autenticadas. Assim, seria necessário armazenar uma chave de API no código da ferramenta para utilizar a API. Eu não farei isso.