๐ฒ AI Multi-Model Telegram Chatbot (n8n + AIMLAPI)
This n8n workflow enables Telegram users to interact with multiple AI models dynamically using #model_id commands. It also supports a /models command to list all available models. Each user has a daily usage limit, tracked via Google Sheets.
๐ Key Features
-
Dynamic Model Selection: Users choose models on-the-fly via
#model_id (e.g., #openai/gpt-4o).
-
/models Command: Lists all available models grouped by provider.
-
Daily Limit Per User: Enforced using Google Sheets.
-
Prompt Parsing: Extracts model and message from user input.
-
Logging: Logs every request & result into Google Sheets for usage tracking.
-
Seamless Telegram Delivery: Responses are sent directly back to the chat.
๐ Setup Guide
1. ๐ฒ Create a Telegram Bot
- Go to @BotFather
- Use
/newbot โ Set name & username.
- Copy the generated API token.
2. ๐ Add Telegram Credentials to n8n
- Go to n8n > Credentials > Telegram API.
- Create a new credential with the BotFather token.
3. ๐ Google Sheets Setup
4. ๐ Connect AIMLAPI
- Get your API key from AIMLAPI.
- In n8n > Credentials, add AI/ML API:
5. โ๏ธ Customize Limits & Enhancements
- Adjust daily limits in the
Set Daily Limit node.
- Optional:
- Add NSFW content filtering.
- Implement alias commands.
- Extend with /help, /usage, /history.
- Add inline button UX (advanced).
๐ก How It Works
โก๏ธ Command Examples:
-
Start a chat with a specific model:
#openai/gpt-4o Write a motivational quote.
-
Request available models list:
/models
โก๏ธ Workflow Logic:
-
Receives a Telegram message.
-
Switch node checks if the message is /models or a prompt.
-
For /models, it fetches and sends a grouped list of models.
-
For prompts:
- Checks usage limits.
- Parses
#model_id and prompt text.
- Dynamically routes the request to the chosen model.
- Sends the AI's response back to the user.
- Logs the query & result to Google Sheets.
-
If daily limit exceeded โ sends a limit exceeded message.
๐งช Testing & Debugging Tips
- Test via a separate Telegram chat.
- Use Console/Set nodes to debug payloads.
- Always test commands by messaging the bot (not via "Execute Node").
- Validate cases:
- Missing #model_id.
- Invalid model_id.
- Limit exceeded handling.