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
-
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 @BotFatherADMIN_USER_IDS
- id do seu usuário no telegram, para uso dos modelos pagos, aceito lista no formato123456789|987654321
-
variaveis opcionais, para uso dos diferentes modelos de linguagem:
CLOUDFLARE_API_KEY
- api key da Cloudflare para uso do modelo gratuitoCLOUDFLARE_ACCOUNT_ID
- id da conta da Cloudflare para uso do modelo gratuitoGITHUB_TOKEN
- token do Github para uso do modelo gpt gratuitamenteOPENAI_API_KEY
- api key da OpenAI para uso do modelo pagoPERPLEXITY_API_KEY
- api key da Perplexity para uso do modelo pagoGEMINI_API_KEY
- api key da Google para uso do modelo pagoOPENROUTER_API_KEY
- api key da OpenRouter para uso do modelo pagoCOPILOT_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
Para mudar a fonte de um modelo para outro provedor disponível, consulte o arquivo CHANGE_PROVIDER.md.
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.
Este projeto inclui um conjunto abrangente de testes automatizados para garantir a qualidade e estabilidade do código.
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
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 externastests/repository/
- Testes para o acesso e armazenamento de dadostests/handlers/
- Testes para os handlers que processam comandos específicos
Para mais informações sobre os testes, consulte o README dos testes.
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.