Bot de IA - Agentes

:bookmark: Este guia explica como configurar e gerenciar Agentes para o Discourse AI - Bot de IA.

:person_raising_hand: Nível de usuário necessário: Administrador

O bot de IA do Discourse inclui um sistema flexível para gerenciar Agentes. Este guia aborda:

  • Métodos de interação para Agentes de IA
  • Opções de configuração
  • Configurações avançadas
  • Comandos suportados
  • Possibilidades de personalização

:link: Saiba mais sobre o bot de IA e como ativá-lo neste guia.

O que são agentes?

Agentes são um recurso poderoso que permite personalizar o comportamento do mecanismo de IA em seu fórum Discourse. Eles atuam como uma ‘mensagem do sistema’ que guia as respostas e interações da IA, ajudando a criar uma experiência de usuário mais personalizada e envolvente.

Por que usar agentes?

Com os agentes, você pode adaptar o comportamento da IA para se adequar melhor ao contexto e ao tom do seu fórum. Se você deseja que a IA seja mais formal para um ambiente profissional, mais casual para um fórum comunitário ou até mesmo incorporar um personagem específico para um jogo de RPG, os agentes oferecem a flexibilidade para fazer isso.

Acesso a agentes específico por grupo

Além disso, você pode configurá-lo de modo que determinados grupos de usuários tenham acesso a agentes específicos. Isso significa que você pode ter diferentes comportamentos de IA para diferentes seções do seu fórum, aprimorando ainda mais a diversidade e a riqueza das interações da sua comunidade.

Interagindo com Agentes

Os agentes podem ser acessados de várias maneiras:

  1. Mensagem Privada (MP)
  2. Mensagem Direta (DM) do Chat
  3. Menções em canais de Chat
  4. Menção em um tópico público via @username_do_bot_exemplo

Os administradores podem controlar quais métodos de interação são permitidos para cada agente.

Configuração

Para configurar Agentes, navegue até discourse.example.com/admin/plugins/discourse-ai/ai-agents.

As principais opções de configuração incluem:

  • System prompt (Instrução do sistema): Direciona a conversa
  • Vision support (Suporte a Visão): Ative para LLMs com recursos de Visão, ou seja, GPT-4 Turbo, Claude 3
  • Default model (Modelo padrão): Necessário para agentes que podem ser mencionados
  • Allowed groups (Grupos permitidos): Defina permissões usando a segurança de grupos do Discourse
  • Uploads (Uploads): Indexa arquivos de texto para conhecimento adicional (usando RAG - Geração Aumentada por Recuperação)
  • Enabled commands (Comandos ativados): Controla o acesso a comandos específicos
  • Allow chat (Permitir chat): Ativa o chat via DM (requer o plugin de chat, um modelo de linguagem grande (LLM) padrão e um usuário)

Aqui está uma visão da tela completa de configuração de agente de IA:

Opções de configuração avançadas

O editor de agentes oferece várias opções avançadas:

  • Temperature (Temperatura) e top_p (amostragem de núcleo): Controlam a criatividade versus a previsibilidade
  • Max context posts (Máx. de publicações no contexto): Limita o número de publicações fornecidas ao LLM para histórico - menos publicações reduzirão os custos, mas farão com que a IA “esqueça” o conteúdo mais antigo
  • Upload options (Opções de upload):
    • Chunk tokens (Tokens de bloco): Controla a divisão de documentos
    • Chunk overlap tokens (Sobreposição de blocos de tokens): Define a sobreposição entre os blocos
    • Search conversation chunks (Blocos de conversação de pesquisa): Número de fragmentos de documento adicionados às consultas do usuário
    • Question consolidator LLM (LLM consolidado de perguntas): Escolhe o LLM para determinar as perguntas do usuário

Pré-requisitos para suporte a upload

Para usar o suporte a upload:

  1. Ative a configuração ai_embeddings_enabled
  2. Configure um ai_embeddings_model

O Discourse AI suporta vários modelos de incorporação (embedding). Clientes hospedados têm acesso gratuito ao modelo bge-large-en.

:information_source: Auto-hospedeiros ou pessoas que desejam mais opções podem hospedar seu próprio modelo de incorporação ou usar modelos da Open AI, Google (Gemini) e outros.

Divisão de texto no Discourse AI

O Discourse usa um Divisor de Texto de Caractere Recursivo para manter parágrafos, linhas e palavras juntos ao dividir o texto. Você pode controlar a divisão de texto usando o separador [[metadata SEU METADADO AQUI]]:

[[metadata sobre gatos]]
uma longa história sobre gatos
[[metadata sobre cachorros]]
uma longa história sobre cachorros

Este método evita a “contaminação de bloco” ao garantir que apenas dados relevantes sejam incluídos em cada bloco.

Depurando agentes de IA

Para depurar seu agente:

  1. Adicione usuários ao grupo especificado na configuração ai bot debugging enabled groups
  2. Usuários neste grupo verão um botão de depuração de IA na parte inferior das publicações de IA
  3. Clique no botão para acessar o modal da interface de depuração

:warning: Lembre-se: Se você fornecer informações vagas ou inúteis a um LLM, ele terá grande dificuldade em convertê-las em informações úteis.

Comandos suportados

O Discourse AI suporta vários comandos, incluindo:

  • Categorias
  • Tags
  • Pesquisa
  • Navegador Web
  • Integração com GitHub (Pesquisar Código, Diferença de Pull Request, Conteúdo do Arquivo)
    • Requer que a configuração ai bot github access token seja preenchida
  • Pesquisar no Meta Discourse
  • Seletor Aleatório (Random Picker)
  • Ler
  • Hora
  • Pesquisa no Google
    • Requer que as configurações ai google custom search api key e ai google custom search cx sejam preenchidas
  • Geração de imagem via DALL-E
    • Requer uma chave open_ai
  • Geração de imagem via Stable Diffusion
    • Requer que a configuração ai stability api key seja preenchida
    • A configuração ai stability engine controla o algoritmo de geração de imagem
  • Schema
  • Configurações de Pesquisa (Search Settings)
  • Definir Contexto (Setting Context)

Alguns comandos exigem configuração adicional ou chaves de API.

Suporte a ferramentas personalizadas

Você pode criar suas próprias ferramentas usando o suporte a ferramentas personalizadas.

Personalizando agentes de sistema

  1. Crie um novo agente
  2. Copie e cole a instrução do sistema do agente que você deseja personalizar
  3. Modifique conforme necessário
  4. Opcionalmente, desative o agente de sistema original para evitar duplicação

Personalizando a pesquisa

Para personalizar a pesquisa para um novo agente:

  1. Crie um novo agente
  2. Adicione o comando “search” (pesquisa)
  3. Configure as opções de pesquisa, incluindo:

Isso permite delegar permissões de pesquisa, aumentar o número de resultados ou restringir a pesquisa a seções específicas do seu site.

7 curtidas

Uma postagem foi dividida em um novo tópico: Posso fornecer uma função geradora de imagens para o Discourse AI

O que exatamente a ferramenta Ler faz?

Além disso, as menções em postagens estão atualmente quebradas de acordo com este relatório de bug.

Em resumo, permite que o LLM leia tópicos e postagens no seu fórum.

1 curtida

Basicamente, ele lê um tópico/postagem quando um URL, nome ou ID é fornecido e, caso contrário, ou ainda assim, ele usa embeds e o quê, quando, porquê e como depende do próprio modelo, prompt, etc.?

2 curtidas

Oh, desculpe, estava respondendo a um post diferente :slight_smile:

Ele usa o ID do tópico ou o ID do tópico + número do post para encontrar o markdown bruto de um tópico/post com algumas proteções para o comprimento máximo.

Não depende de incorporação.

5 curtidas

Um pouco fora do tópico, mas como não tenho nada a perguntar e vocês vão limpar esses tópicos de vez em quando, eu não me importo.

Títulos automáticos em Mensagens Privadas com IA agora estão no idioma correto. Não é grande coisa, mas seu valor psicológico é grande. Obrigado!

4 curtidas

Existe alguma maneira de adicionar usuários de Bot a um grupo? Basicamente, quero adicionar um flair de avatar a esses usuários, mas ao adicioná-los a um grupo, eles não aparecem.

Eles não aparecem, mas ainda estão lá. Você pode ter certeza tentando adicionar uma pessoa de IA uma segunda vez. Ou você vê o grupo necessário nas configurações desses pseudo-usuários.

1 curtida

Qual parte do repositório Discourse AI devo verificar se quero saber exatamente como as ferramentas do bot de IA funcionam?

Ferramenta, Playground e Bot são ótimas áreas para começar.

Veja este exemplo: Understanding Tools in Discourse AI System - AI Conversation - Discourse Meta

3 curtidas

Exatamente a resposta que eu estava procurando — obrigado, meu bom senhor! Para quem possa interessar: recomendo ler o código neste repositório para poder direcionar melhor seus prompts para as ferramentas da sua persona.

1 curtida

Uma postagem foi dividida em um novo tópico: Engenharia de uma persona para se apoiar no histórico de chat

Estou tentando buscar todas as postagens de um tópico através da ferramenta “Read”, mas ela fornece apenas um máximo de 100 postagens para o modelo LLM. Já defini “Max posts” para 999 nas configurações de persona, mas o problema persiste.

Pode haver alguma limitação de solicitação de API do lado do servidor causando o problema?

@sam alguma ideia sobre isso, qual poderia ser a causa?

Não verifiquei a base de código, mas suspeito que possa ser um limite rígido definido no próprio código. Posso perguntar o que você está tentando alcançar com isso? Esse é um fator chave aqui.

E talvez seja melhor usar a persona de Pesquisador do Fórum?

Temos a categoria “journal/log” que frequentemente contém várias centenas de posts onde o proprietário do tópico relata o progresso de seu projeto ao longo de 4-5 meses.

Meu objetivo é buscar todos os posts dentro desse tópico, filtrá-los por autor = proprietário do tópico e criar um resumo.

1 curtida

Você tem que usar o pesquisador de fórum para isso, é o caso de uso exato para a persona

2 curtidas

@sam Eu adoraria, mas atualmente não suporta imagens. Isso está no roteiro ou não é uma prioridade no momento?

3 curtidas

Claro que posso adicionar isso, não é uma mudança muito grande

3 curtidas