acesse o bot via telegram @llm_gemini_bot
esse bot utiliza o modelo gratuito Pollinations 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
| Provedor | Comando Inline | Modelo | Ferramentas |
|---|---|---|---|
| Pollinations | polli: |
OpenAI | Sim |
| GitHub Copilot | gpt: |
GPT 5 mini | Sim |
| GitHub Copilot | gpt5: |
GPT 5.2 | Sim |
| GitHub Copilot | claude: |
Claude Sonnet 4.5 | Sim |
| GitHub Copilot | geminiPro: |
Gemini 3 Pro Preview | Sim |
| Cloudflare | oss: |
GPT OSS 120b | Nao |
| OpenRouter | llama: |
Llama 4 Maverick | Sim |
| Vertex AI | gemini: |
Gemini 2.5 Flash Lite | Sim |
| Vertex AI | geminiPro: |
Gemini 2.5 Pro | Sim |
| Perplexity | perplexity: / search: |
Sonar | Nao |
| Perplexity | reasonSearch: |
Sonar Reasoning Pro | Nao |
| OpenWebUI | pgpt: / pgrok: / po3: / pclaude: |
PPLX models | Nao |
| Antigravity | antigravity: / antigemini: |
Gemini 3 Flash | Sim |
| Antigravity | antigeminipro: |
Gemini 3 Pro | Sim |
| DALL-E | gptImage: |
DALL-E 3 | - |
| Cloudflare | cloudflareImage: |
Stable Diffusion | - |
| Pollinations | polliImage: |
Pollinations | - |
| Arta | artaImage: |
Arta | - |
| ElevenLabs | fala: |
TTS | - |
-
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
curlem 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/webhookBOT_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_GITHUB_TOKEN- token do Copilot para uso do modelo pago. Para obter o token, configure a extensão do Copilot no neovim e extraia o token do arquivo~/.config/github-copilot/apps.json.VERTEX_CREDENTIALS_BASE64- credenciais do Vertex AI em base64 (service account ou ADC)VERTEX_PROJECT_ID- ID do projeto GCP para o Vertex AIVERTEX_LOCATION- região do Vertex AI (padrão:us-central1)OPENWEBUI_API_KEY- api key do OpenWebUIANTIGRAVITY_REFRESH_TOKEN- refresh token OAuth2 para o provider Antigravity (ver seção abaixo)
-
crie um arquivo .env na raiz do projeto e configure as variaveis de ambiente nele, no formato
VARIAVEL=valor./devrun.sh
O provider Antigravity permite acesso aos modelos Gemini 3 Flash e Claude Sonnet 4.5 via a API Cloud Code. Para configurar:
Execute o comando abaixo para iniciar o fluxo de autenticação automatizado:
./devrun.sh antigravity-loginSiga as instruções no terminal para autorizar o acesso e obter o ANTIGRAVITY_REFRESH_TOKEN.
# Adicione ao .env ou configure no Deno Deploy:
ANTIGRAVITY_REFRESH_TOKEN=1//SEU_REFRESH_TOKEN_AQUI
# Opcional - será descoberto automaticamente:
ANTIGRAVITY_PROJECT_ID=seu-project-idO access token é renovado automaticamente (válido por ~1h). O project ID é descoberto via API se não configurado.
Para detalhes sobre a arquitetura, thought signatures e o ciclo de tool calls do Antigravity, consulte o arquivo ANTIGRAVITY.md.
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 testPara executar um teste específico:
deno test -A --unstable-kv --unstable-cron tests/service/TelegramService.test.tsOs 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.