Skip to content

lucasliet/llm-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coverage Status

Instruções

acesse o bot via telegram @llm_gemini_bot

esse bot utiliza o modelo gratuito Phind 70B da Phind para responder as mensagens por padrão, para uso dos outros modelos é necessário implantar código no seu próprio bot, rodando localmente ou em um servidor, e configurando o seu ID do telegram como a variavel ambiente ADMIN_USER_IDS

um histórico da conversa é mantido para mensagens encadiadas, porém com expiração de 1 dia após a ultima mensagem, também pode ser apagado manualmente com o commando /clear

esse projeto utiliza o Deno deploy e Deno kv para hosting da aplicação e armazenamento persistente de chaves

Uso Local

  • um script para execução local da aplicação está disponível em devrun.sh, esse script já configura as variaveis de ambiente necessárias e executa o comando curl em seguida para configurar novamente o bot para uso por servidor, caso o deno não esteja instalado, será executado seu script de instalação

  • variáveis de ambiente necessárias para execução local:

    • SERVER_URL - url do servidor em que esse código está rodando, exemplo: https://seu-servidor.com/webhook
    • BOT_TOKEN - token do bot criado pelo @BotFather
    • ADMIN_USER_IDS - id do seu usuário no telegram, para uso dos modelos pagos, aceito lista no formato 123456789|987654321
  • variaveis opcionais, para uso dos diferentes modelos de linguagem:

    • CLOUDFLARE_API_KEY - api key da Cloudflare para uso do modelo gratuito
    • CLOUDFLARE_ACCOUNT_ID - id da conta da Cloudflare para uso do modelo gratuito
    • GITHUB_TOKEN - token do Github para uso do modelo gpt gratuitamente
    • OPENAI_API_KEY - api key da OpenAI para uso do modelo pago
    • PERPLEXITY_API_KEY - api key da Perplexity para uso do modelo pago
    • GEMINI_API_KEY - api key da Google para uso do modelo pago
    • OPENROUTER_API_KEY - api key da OpenRouter para uso do modelo pago
    • COPILOT_TOKEN - token do Copilot para uso do modelo pago. Para obter o token, configure a extensão do Copilot no VSCode e extraia o token do arquivo ~/.config/github-copilot/apps.json.
  • crie um arquivo .env na raiz do projeto e configure as variaveis de ambiente nele, no formato VARIAVEL=valor

    ./devrun.sh

Mudando a Fonte de um Modelo para Outro Provedor

Para mudar a fonte de um modelo para outro provedor disponível, consulte o arquivo CHANGE_PROVIDER.md.

Uso de Ferramentas com Provedores Compatíveis com OpenAI

Provedores compatíveis com OpenAI que estendem a classe openai e suportam o uso de ferramentas podem utilizar o searxng para obter respostas atualizadas. Para mais informações, consulte o arquivo TOOL_USAGE.md.

Testes

Este projeto inclui um conjunto abrangente de testes automatizados para garantir a qualidade e estabilidade do código.

Executando testes

Para executar todos os testes:

deno task test

Para executar um teste específico:

deno test -A --unstable-kv --unstable-cron tests/service/TelegramService.test.ts

Estrutura de testes

Os testes estão organizados na pasta tests/ e seguem a mesma estrutura do código:

  • tests/service/ - Testes para os serviços que interagem com APIs externas
  • tests/repository/ - Testes para o acesso e armazenamento de dados
  • tests/handlers/ - Testes para os handlers que processam comandos específicos

Para mais informações sobre os testes, consulte o README dos testes.

Integração Contínua

Este projeto utiliza GitHub Actions para executar testes automaticamente em cada push para a branch main e em pull requests. O workflow está configurado em .github/workflows/tests.yml.

Para verificar o status das execuções de CI, consulte a aba "Actions" no repositório do GitHub.

About

Telegram bot to chat with LLMs

Topics

Resources

Stars

Watchers

Forks