Suporte ao Bot de IA para Configuração de Fórum de Comunidade de Suporte com a versão mais recente do Discourse

Configurei os recursos de LLM, embedding e persona; no entanto, meu prompt não está fornecendo as respostas esperadas das perguntas e respostas ou dos recursos de wiki disponíveis em nossa comunidade.

LLM Auto-hospedado: mistral:latest
Embedding Auto-hospedado: all-minilm:latest

Persona:



Alguém poderia me ajudar mais com o que precisa ser feito. Considerando um Novato em IA.

Qual modelo exato da Mistral é este?

Você pode compartilhar o prompt?

Você pode adicionar Search como uma "Ferramenta Forçada" para a primeira interação para ajudar a fundamentar o modelo.

@Falco, abaixo estão os detalhes para a resposta de acompanhamento:

Qual modelo exato da Mistral é este?

Modelo LLM: mistral:latest

Link:
O modelo em https://ollama.com/library/mistral:latest é:

Mistral 7B v0.3 — um modelo de código aberto de 7 bilhões de parâmetros lançado pela Mistral AI.

Você pode compartilhar o prompt?

Prompt do sistema:

Você é um assistente de conhecimento da comunidade projetado para este fórum chamado {site_title} e com URL do site {site_url}, tendo engenheiros como usuários.

Sempre pesquise e referencie posts relevantes do fórum, artigos da wiki e discussões marcadas antes de gerar uma resposta.

Sua primeira prioridade é usar o conteúdo recuperado do fórum (via pesquisa de embeddings) para elaborar respostas.

  Prefira resumos e citações de posts existentes.
  Se vários tópicos relacionados forem encontrados, combine-os claramente.
  Somente se nenhum conteúdo relevante existir, responda usando seu conhecimento geral através do LLM.
  Inclua títulos de tópicos ou URLs ao referenciar posts.
  Nunca alucine ou invente respostas não suportadas por dados do fórum.
  Seja factual, conciso e profissional.
  Quando os usuários fizerem perguntas amplas, prefira resumir várias fontes em vez de adivinhar.
  Sempre prefira o contexto de categorias, tags e wikis indexados em embeddings.

Atualizada a Ferramenta forçada conforme sugerido

Receio que um modelo de 2023 requentado não seja suficiente aqui. Além disso, da própria documentação do Ollama para este modelo, ele só suporta chamadas de ferramentas na API bruta, que não é o que usamos.

No geral, esta é uma má escolha para o Bot de IA hoje.

Em vez disso, use um dos seguintes:

1 curtida

Olá @Falco, e obrigado pelas informações. Verificaremos e atualizaremos você posteriormente.

1 curtida

@Falco Erro 502 ao habilitar LLM. Por favor, encontre os logs abaixo



Mensagem

Unicorn worker received USR2 signal indicating it is about to timeout, dumping backtrace for main thread
config/unicorn.conf.rb:203:in `backtrace'
config/unicorn.conf.rb:203:in `block (2 levels) in reload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:229:in `wait_readable'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:229:in `rbuf_fill'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:199:in `readuntil'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:209:in `readline'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:158:in `read_status_line'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:147:in `read_new'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2420:in `block in transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2411:in `catch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2411:in `transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2384:in `request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:45:in `step'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:168:in `block in perform_completion!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1632:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/di...

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `public_send'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `block (2 levels) in ensure_logging_thread_running'
internal:kernel:187:in `loop'
/var/www/discourse/lib/signal_trap_logger.rb:37:in `block in ensure_logging_thread_running'

Defina o provedor como OpenAI se você estiver usando a API compatível com OpenAI do Ollama.

1 curtida

@Falco

Já tentei com o provedor openAI e o problema ainda persiste.

Mensagem

Unicorn worker received USR2 signal indicating it is about to timeout, dumping backtrace for main thread
config/unicorn.conf.rb:203:in `backtrace'
config/unicorn.conf.rb:203:in `block (2 levels) in reload'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:229:in `wait_readable'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:229:in `rbuf_fill'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:199:in `readuntil'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:209:in `readline'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:158:in `read_status_line'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:147:in `read_new'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2420:in `block in transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2411:in `catch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2411:in `transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2384:in `request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:45:in `step'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:168:in `block in perform_completion!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1632:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/di...

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `block in warn'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:231:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2.1/lib/active_support/broadcast_logger.rb:130:in `warn'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `public_send'
/var/www/discourse/lib/signal_trap_logger.rb:40:in `block (2 levels) in ensure_logging_thread_running'
internal:kernel:187:in `loop'
/var/www/discourse/lib/signal_trap_logger.rb:37:in `block in ensure_logging_thread_running'

Seu contêiner Discourse pode acessar o serviço na porta 11434? Se ele estiver rodando no host, você precisa fornecer uma maneira para a rede cruzar a fronteira do contêiner.

Sim, eu consegui acessar um dos modelos LLM anteriormente com a mesma porta com o container Discourse.

Você poderia me ajudar com isso e qual o requisito mínimo de RAM para rodar este LLM?

Então pode ser

Olá @Falco

Integrei com sucesso o Modelo de Linguagem (LLM) descrito abaixo. No entanto, encontrei um problema durante o meu processo de consulta: o prompt não leva em consideração o conteúdo específico do meu fórum. Em vez de extrair das discussões e insights relevantes do meu fórum, ele está gerando respostas com base em informações pré-existentes do LLM. Que passos devo tomar para retificar esta situação e garantir que o modelo incorpore efetivamente as contribuições únicas do meu fórum?

LLM Usado conforme sugerido anteriormente:

Exemplo:

image

Na seção Ferramentas da persona, certifique-se de que ela tenha acesso a Pesquisar e Ler, e defina Pesquisar como Ferramenta Forçada.

image

Além disso, o conteúdo do fórum onde a Persona deve pesquisar é todo público?

@Falco, gostaria que meu bot fornecesse respostas derivadas do conteúdo armazenado em minha Base de Conhecimento. Você poderia compartilhar as configurações abrangentes relacionadas ao plugin de IA e outros? Além disso, precisamos executar algum comando específico no aplicativo para habilitar a Geração Aumentada de Recuperação (RAG)?