Discourse Chatbot 🤖

@merefield Obrigado!

Como você conseguiu depurar isso tão rapidamente?

Vou remover o Zendesk… simples :slight_smile:

1 curtida

Experiência amarga :sweat_smile:

3 curtidas

Olá a todos,

Criei uma conta na OpenAI agora. Devo criar um “Assistente”? Estou apenas me perguntando se há alguma etapa a seguir para integrar a IA ao plugin?

Atenciosamente,

Não, tudo o que você precisa é de um token. Pode ser necessário creditar sua conta na Open AI para ter acesso aos modelos mais avançados e limites de taxa mais altos.

Todo o material da API é tratado pelo plugin.

(Aliás, curiosidade - o Chatbot explicitamente não suporta a API Assistants porque implementa seu próprio sistema de conversação e “pensamento interno” utilizando apenas a API Chat Completions e a API Embeddings. Isso é ótimo porque a API Assistants tem a reputação de ser pródiga com tokens e custar muito dinheiro - o Chatbot é construído para ser econômico!)

Uau, faz muito mais do que eu imaginava.

Você poderia explicar o que é um token no mundo do ChatGPT? Estou pagando pelo ChatGPT premium no momento, são 20 USD/mês. O que eu estava visando era permitir que nossos usuários do Discourse acessassem a IA que tenho treinado, no chatgpt.com

Espero que isso faça sentido e que o caso de uso esteja claro!

É como dinheiro. Você pode pensar em tokens como palavras ou partes de palavras. Quando você pergunta algo, isso vale uma quantidade X de tokens. Quando a OpenAI processa sua pergunta, ela usa mais tokens. E, por último, quando sua resposta é criada, isso custa uma quantidade de tokens.

Dependendo do modelo usado e da conversa, você tem que pagar por esse uso de tokens, às vezes mais e às vezes menos.

1 curtida

A capacidade de usar o1 mudou bastante o meu uso de IA (e graças… não a Deus, mas às habilidades de codificação de Robert, posso limitar seu uso apenas para mim). Mas a série o1 não usa um prompt de sistema, então tenho que adicionar essa orientação, como mostrar matemática, etc., no meu prompt.

Seria mais fácil se tivéssemos um texto padrão para adicionar automaticamente após o prompt real, ou seja, um post. O Discourse tem, de certa forma, essa capacidade, mas ou não consigo usá-la ou estou tentando usá-la errado. Deveria aparecer em todas as categorias e mensagens privadas quando o Chatbot for mencionado ou fizer parte de uma mensagem privada. E apenas quando o1 ou o1-mini for usado :woozy_face:

A série o1 ainda não está pronta, então pode mudar em algum momento como ela pode usar ferramentas, etc. Então, nesse sentido, não estou pedindo um novo recurso, mas talvez discutindo opções. E a série o1 nunca será uma solução em massa, é muito especializada (e cara), então a demanda onde um usuário apenas deve se lembrar de adicionar essas regras extras pode ser justificada.

Fora do tópico, mas os modelos GPT aprenderam matemática quando o o1 foi publicado.

1 curtida

Sim, não podemos nos aprofundar muito na personalização para compensar as inconsistências da OpenAI.

Suspeito fortemente que ferramentas e possivelmente até recursos de prompt do sistema virão quando o o1 sair da pré-visualização.

Não estou convencido de que o Chatbot seja o lugar para implementar um sistema de “trechos”, embora eu me lembre de um dos membros da equipe criando isso, deixe-me encontrá-lo e atualizar a postagem…

Aqui está:

4 curtidas

Obrigado @Jagster pelas informações muito claras. Acho que eu estava querendo dizer algo diferente, talvez? Estou tentando integrar este plugin com OpenAI usando isto,

. Estou apenas tentando obter algumas informações básicas sobre como conectar as coisas.

2 curtidas

Essa é apenas uma chave de API que você gerará para obter acesso. Nada mais, sua senha, poderíamos dizer.

3 curtidas

Ah, agora entendo a confusão.

Sim, existe um token de API (ou chave, que você precisa obter da OpenAI) e existem tokens de texto que representam partes de palavras. Estes últimos são processados pelo LLM. O primeiro serve para que você seja autenticado pela API.

Aqui está um guia muito bom sobre a terminologia do The Verge:

5 curtidas

Estou executando o Llama localmente e estou muito perto de fazer isso funcionar em uma instância local do Discourse. O chatbot está conversando :sunglasses: mas estou com dificuldades para fazer a incorporação. Tenho meu usuário de benchmark no Nível de Confiança 1. A tarefa rake rake chatbot:refresh_embeddings[1] está falhando com um problema de autenticação.

Faraday::UnauthorizedError: o servidor respondeu com status 401 (Faraday::UnauthorizedError)

Dentro do campo de token do chatbot open ai, colei a URL que o Llama me deu

Você teria alguma sugestão de como devo me autenticar corretamente?

4 curtidas

Ótimo que você tentou!

Fico feliz que esteja conversando :smile:

Não sei se é possível usar o Chatbot com embeddings localmente.

Eu aceitaria um bom PR para adicionar suporte.

Encontrei isto:

Portanto, pode ser possível com o modelo certo e o código e configurações adicionais relevantes no Chatbot. Você provavelmente precisaria de uma configuração de modelo de embeddings personalizado que ainda não existe.

Já existe isto, no entanto:

chatbot open ai embeddings model custom url

que foi implementado principalmente para ajudar a suportar o Azure, mas pode ser reutilizado de forma semelhante a como os Completions de Chat podem apontar para o serviço local do ollama.

Aprecio que isso atualmente limita a utilidade do bot localmente.

Este é o token enviado para o endpoint. É simplesmente um campo de texto. Duvido muito que uma URL aqui funcione. Existem configurações de URL de endpoint de completamento de chat personalizadas mais abaixo:

por exemplo, chatbot open ai model custom url high trust

Se você fizer um fork e adicionar as adições relevantes que estão alinhadas com o que já existe, aproveita o que já está disponível, mas adiciona o mínimo necessário para alcançar o suporte de embeddings local com ollama, mantendo o comportamento existente com Open AI e Azure intacto, eu definitivamente revisaria um PR com vista a mesclar.

2 curtidas

Em breve
Mais recursos estão chegando para dar suporte a fluxos de trabalho que envolvem embeddings:

Compatibilidade com a API OpenAI: suporte para o endpoint compatível com a API OpenAI /v1/embeddings

Dado que em breve é geralmente muito em breve neste domínio de rápida evolução, talvez valha a pena esperar por isto para resolver o meu caso de uso?

Nossa instância é uma fonte de informação que remonta a 20 anos, mas a vazamento de informações também é uma grande preocupação, daí o desejo de testes locais.

1 curtida

Eu acho que encontrei um PR do Ollama que parece resolver a compatibilidade do endpoint da API. Preciso entender isso melhor, mas estou no caminho certo?

1 curtida

no momento não há configuração para modelo de embeddings personalizado, então isso é um impedimento.

ao executar localmente, você pode tentar codificando o modelo para aquele que você baixou para o ollama.

pensando mais sobre isso, o outro problema que você enfrentará é que a definição da tabela de embeddings tem dimensões definidas para o padrão do modelo pequeno da OpenAI, que é ENORME… talvez você possa pensar em como superar isso…

1 curtida

Chatbot 1.2. introduz a coleta de Campos de Usuário com IA como um recurso experimental.

Se um Usuário tiver alguns Campos de Usuário Opcionais que estão em branco no momento, habilitar esta configuração fará com que o bot comece a solicitar as informações ao usuário. Ele progredirá pelos Campos de Usuário pendentes até que sejam concluídos e, em seguida, reverterá ao comportamento normal.

image

(desculpe pela lentidão da resposta - isto foi gravado em desenvolvimento)

NB Este recurso suporta apenas:

  • Texto
  • Menus suspensos
  • Confirmações

Seleção múltipla ainda não é suportada.

Os campos devem ser opcionais

A ordem dos Campos de Usuário determina a prioridade.

6 curtidas

Chatbot 1.3 foi lançado :tada:

  • RECURSO: adicionar opção para gerenciar cotas por token
    • a nova configuração chatbot_quota_basis permite que você opte por ela, caso contrário, ela permanecerá por número de consultas
    • a única diferença por padrão é que a cota conta para baixo a partir da cota máxima inicial (que ainda é baseada nas mesmas configurações de nível de confiança).
  • RECURSO: incluir custo de chamadas de API como DALL-E no consumo do usuário
    • apenas base de token
    • várias novas configurações para ajustar e influenciar o custo de token dos recursos da API
  • RECURSO: adicionar função para permitir que o usuário verifique sua cota restante

O Chatbot sempre incluiu a capacidade de impor uma cota de uso.

Hoje, isso se torna mais sofisticado!

O Chatbot agora pode rastrear e impor uma cota de uso por token.

Você pode calcular o custo de chamadas para APIs para desencorajar o uso excessivo, para que você possa se preocupar menos em dar às pessoas acesso à geração de imagens, por exemplo.

O rastreamento de tokens é opcional. Se você mudar para o rastreamento de tokens, certifique-se de aumentar a cota de cada nível de confiança, pois os valores precisarão ser algumas ordens de magnitude maiores. Experimente.

No entanto, o rastreamento por consulta mudou ligeiramente. Agora ele será redefinido para o seu número máximo de consultas permitidas e contará para baixo até zero.

Você pode considerar executar o trabalho de redefinição de cota global uma vez como um evento único para garantir que todos comecem com uma cota completa. Isso é um evento único!

No sidekiq em /sidekiq/scheduler:

Clique no botão trigger.

Em ambos os casos, os usuários agora podem perguntar quanta cota lhes resta:

NB: problema conhecido: se essa pergunta for feita pela primeira vez antes que o trabalho de redefinição tenha sido executado, a resposta pode ser um pouco estranha! Independentemente da execução do trabalho de redefinição, na segunda vez que essa pergunta for feita, ela deverá funcionar bem.

4 curtidas

Olá Robert,

Agradeço todo o trabalho que você dedicou ao bot, no entanto, estou recebendo o seguinte erro nos logs ao tentar invocá-lo no chat.

image

Alguma ideia sem desinstalar/reinstalar?

1 curtida