π² 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.