220 lines
5.7 KiB
Markdown
220 lines
5.7 KiB
Markdown
# Flowise Telegram Bot
|
|
|
|
A Telegram bot that integrates with Flowise AI to provide conversational AI capabilities. This bot allows users to interact with your Flowise chatflows directly through Telegram.
|
|
|
|
## Features
|
|
|
|
- Seamless integration with Flowise AI
|
|
- Easy-to-use Telegram interface
|
|
- Support for custom chatflows
|
|
- Environment-based configuration
|
|
- Docker support for easy deployment
|
|
- Conversational memory support
|
|
|
|
## Prerequisites
|
|
|
|
- Python 3.13+
|
|
- Docker and Docker Compose
|
|
- Poetry for Python dependency management
|
|
- A Telegram Bot Token (obtained from [@BotFather](https://t.me/botfather))
|
|
- A running Flowise instance with API access
|
|
|
|
## Dependencies
|
|
|
|
- python-telegram-bot (>=21.10,<22.0)
|
|
- flowise (>=1.0.4,<2.0.0)
|
|
- python-dotenv (>=1.0.1,<2.0.0)
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd flowise-telegram
|
|
```
|
|
|
|
2. Install dependencies using Poetry:
|
|
```bash
|
|
poetry install
|
|
```
|
|
|
|
3. Create a `.env` file in the root directory with the following variables:
|
|
```env
|
|
TELEGRAM_API_KEY=your_telegram_bot_token
|
|
FLOWISE_API_KEY=your_flowise_api_key
|
|
FLOWISE_API_URL=your_flowise_url
|
|
FLOWISE_CHATFLOW_ID=your_chatflow_id
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Environment Variables
|
|
|
|
- `TELEGRAM_API_KEY`: Your Telegram bot token from BotFather
|
|
- `FLOWISE_API_KEY`: API key from your Flowise instance
|
|
- `FLOWISE_API_URL`: URL of your Flowise instance (e.g., http://localhost:3000)
|
|
- `FLOWISE_CHATFLOW_ID`: ID of the chatflow you want to use (found in the Flowise dashboard URL when editing a flow)
|
|
|
|
### Docker Configuration
|
|
|
|
The project includes both a `docker-compose.yml` file for running Flowise and a `Dockerfile` for containerizing the bot.
|
|
|
|
To start Flowise:
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
#### Running with Local Build
|
|
To build and run the bot locally with Docker:
|
|
```bash
|
|
# Build the Docker image
|
|
docker build -t flowise-telegram-bot .
|
|
|
|
# Run the container
|
|
docker run --env-file .env --network host flowise-telegram-bot
|
|
```
|
|
|
|
#### Running with Pre-built Image
|
|
You can also use the pre-built image from GitHub Container Registry:
|
|
```bash
|
|
docker run --env-file .env --network host ghcr.io/OWNER/flowise-telegram:latest
|
|
```
|
|
Replace `OWNER` with your GitHub username.
|
|
|
|
Note: We use `--network host` to allow the bot container to communicate with Flowise running on localhost.
|
|
|
|
### CI/CD
|
|
|
|
The project includes a GitHub Actions workflow that automatically:
|
|
- Builds the Docker image
|
|
- Pushes it to GitHub Container Registry (ghcr.io)
|
|
- Tags images based on:
|
|
- Git branches
|
|
- Git tags (v*.*.*)
|
|
- Commit SHA
|
|
|
|
The workflow runs on:
|
|
- Push to main branch
|
|
- Pull requests to main branch
|
|
- New version tags
|
|
|
|
### Flowise Chatflow Setup
|
|
|
|
1. Access Flowise at http://localhost:3000 after starting Docker
|
|
2. Create a new chatflow
|
|
3. Set up the following nodes:
|
|
- **Chat Trigger**: Entry point for the conversation
|
|
- **LLM (Language Model)**: Choose your preferred model (e.g., OpenAI, Anthropic)
|
|
- **Conversation Memory**: Add memory to maintain context
|
|
- **Agent**: Configure the agent with appropriate tools and settings
|
|
- **Output Parser**: Format the response for Telegram
|
|
|
|
4. Configure the Agent node:
|
|
- Set "Agent Type" to "Conversational"
|
|
- Add system message to define bot behavior
|
|
- Connect memory to maintain conversation context
|
|
- Add relevant tools if needed
|
|
|
|
5. Enable API access for your chatflow:
|
|
- Click on the "Chat Trigger" node
|
|
- Enable "API Endpoint"
|
|
- Save the chatflow
|
|
|
|
6. Copy the chatflow ID from the URL when editing the flow
|
|
7. Configure your API key in Flowise settings
|
|
|
|
Example System Message for Agent:
|
|
```
|
|
You are a helpful AI assistant integrated with Telegram. Your responses should be:
|
|
1. Concise and clear
|
|
2. Formatted appropriately for Telegram
|
|
3. Helpful and informative
|
|
4. Natural and conversational
|
|
|
|
Always maintain a friendly and professional tone. If you don't know something, say so directly.
|
|
```
|
|
|
|
## Running the Bot
|
|
|
|
1. Start the bot using Python:
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
2. Start a conversation with your bot on Telegram
|
|
3. Send a message to test the integration
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
flowise-telegram/
|
|
├── main.py # Main bot implementation
|
|
├── docker-compose.yml # Docker configuration
|
|
├── .env # Environment configuration
|
|
├── README.md # Project documentation
|
|
└── .gitignore # Git ignore rules
|
|
```
|
|
|
|
## Development
|
|
|
|
### Local Development
|
|
|
|
1. Start Flowise using Docker:
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
2. Run the bot in development mode:
|
|
```bash
|
|
python main.py
|
|
```
|
|
|
|
### Making Changes
|
|
|
|
1. Update the code in `main.py`
|
|
2. Test your changes locally
|
|
3. Commit changes with descriptive messages
|
|
4. Push to your repository
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
1. **Bot not responding**
|
|
- Check if your Telegram token is correct
|
|
- Verify the bot is running
|
|
- Check Python logs for errors
|
|
|
|
2. **Flowise connection errors**
|
|
- Ensure Flowise container is running (`docker ps`)
|
|
- Verify your Flowise URL and API key
|
|
- Check if Flowise is accessible in your browser
|
|
|
|
3. **Missing responses**
|
|
- Verify your chatflow ID is correct
|
|
- Ensure the chatflow is properly configured in Flowise
|
|
- Check if the chatflow works in Flowise UI
|
|
|
|
4. **Memory Issues**
|
|
- Verify the Conversation Memory node is properly connected
|
|
- Check memory configuration in the Agent node
|
|
- Test the chatflow in Flowise UI to verify memory retention
|
|
|
|
### Logs
|
|
|
|
To view logs:
|
|
- Bot logs: Run the bot directly to see output
|
|
- Flowise logs: `docker compose logs -f flowise`
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Commit your changes
|
|
4. Push to the branch
|
|
5. Create a Pull Request
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the LICENSE file for details.
|