{"id":25528832,"url":"https://github.com/rewired-gh/ichigo-bot","last_synced_at":"2025-04-11T07:52:20.193Z","repository":{"id":275159469,"uuid":"925177026","full_name":"rewired-gh/ichigo-bot","owner":"rewired-gh","description":"🍓 Telegram chat bot for accessing various LLM services in one place","archived":false,"fork":false,"pushed_at":"2025-03-18T14:27:14.000Z","size":105,"stargazers_count":22,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T09:17:12.070Z","etag":null,"topics":["ai","chatbot","golang","llm","markdown","openai","openai-api","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/repository/docker/dockerrewired/ichigo-bot","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rewired-gh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-31T11:32:30.000Z","updated_at":"2025-03-18T14:26:59.000Z","dependencies_parsed_at":"2025-02-19T23:36:58.369Z","dependency_job_id":null,"html_url":"https://github.com/rewired-gh/ichigo-bot","commit_stats":null,"previous_names":["rewired-gh/ichigo-bot"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rewired-gh%2Fichigo-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rewired-gh%2Fichigo-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rewired-gh%2Fichigo-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rewired-gh%2Fichigo-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rewired-gh","download_url":"https://codeload.github.com/rewired-gh/ichigo-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248359975,"owners_count":21090627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","chatbot","golang","llm","markdown","openai","openai-api","telegram","telegram-bot"],"created_at":"2025-02-19T23:23:28.120Z","updated_at":"2025-04-11T07:52:20.185Z","avatar_url":"https://github.com/rewired-gh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍓 Ichigo Bot\n\n[![Build and Release](https://github.com/rewired-gh/ichigo-bot/actions/workflows/release.yml/badge.svg)](https://github.com/rewired-gh/ichigo-bot/actions/workflows/release.yml) [![GitHub Release (Latest)](https://img.shields.io/github/v/release/rewired-gh/ichigo-bot)](https://github.com/rewired-gh/ichigo-bot/releases/latest) [![Docker Pulls](https://img.shields.io/docker/pulls/dockerrewired/ichigo-bot)](https://hub.docker.com/r/dockerrewired/ichigo-bot)\n\n[English](README.md) | [简体中文](asset/README_zh.md)\n\nA delightful Telegram AI chat bot powered for aggregating models and API providers. 🌟\n\nIf you're not sure where to start, check out [cheahjs/free-llm-api-resources](https://github.com/cheahjs/free-llm-api-resources) for a wealth of LLM API resources, and visit [Telegram Bots](https://core.telegram.org/bots#how-do-i-create-a-bot) for guidance on creating your own bot.\n\n## ✨ Features\n\n- 🛡️ Production-ready with super-robust error handling\n- 💫 Magical streaming chat responses\n- 🖼️ Supports image in chat for multimodal LLM\n- 🤖 Compatible with almost any API providers\n- 🎮 Mix and match your favorite models and providers\n- 🔐 Keeps your chats and models safe with user access control\n- 📝 Beautiful Telegram Markdown V2 formatting\n- 🎯 Smart system prompts for better conversations\n- 🪶 Light as a feather on your server\n\n## 🐳 Quick Docker Deployment (beta)\n\n1. Create a local data directory. **Assume** the data directory path is `/path/to/data`:\n```bash\nmkdir -p /path/to/data\n```\n\n2. Create a configuration file `config.toml` in `/path/to/data`. The configuration file's name **must** be `config.toml`, not any other name. Please refer to [`asset/example_config.toml`](asset/example_config.toml) for an example configuration.\n\n3. Run the Docker container (replace `/path/to/data` with the real data directory path):\n```bash\nsudo docker run -d \\\n  --name ichigod \\\n  -v /path/to/data:/etc/ichigod \\\n  -e ICHIGOD_DATA_DIR=/etc/ichigod \\\n  --restart unless-stopped \\\n  dockerrewired/ichigo-bot:latest\n```\n\n## 🎮 Commands\n\n- `/chat` - Chat with Ichigo (Can be omitted in private messages)\n- `/new` - Start a new conversation\n- `/set` - Switch to a different model\n- `/list` - Show available models\n- `/list_prompts` - List available system prompts\n- `/undo` - Remove last conversation round\n- `/stop` - Stop the current response\n- `/set_temp` - Set text completion temperature\n- `/set_prompt` - Set system prompt\n- `/help` - Get the list of commands\n\nAdmin Commands:\n- `/get_config` - View current configuration\n- `/set_config` - Update configuration and shutdown\n- `/clear` - Clear data\n- `/tidy` - Auto delete sessions and chat records whose IDs no longer exist\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Go 1.21 or later\n- Make\n- Python 3 with `telegramify-markdown` package installed\n- A Telegram bot token (obtained via [@BotFather](https://t.me/BotFather))\n- OpenAI API key or other compatible API provider credentials\n- Tip: User IDs and group chat IDs can be retrieved via [@RawDataBot](https://t.me/RawDataBot)\n\n### Build\n\n```bash\nmake build\n```\nThat's it! **Assume** the built binary is `/project_root/target/ichigod`.\n\n### Deploy (Linux with systemd)\n\n1. Move the built binary to `/usr/bin` and grant necessary permissions:\n```bash\n# Example commands\nsudo chmod a+rx /project_root/target/ichigod\nsudo cp -f /project_root/target/ichigod /usr/bin/ichigod\n```\n\n2. Create a data directory at `/etc/ichigod`:\n```bash\n# Example commands\nsudo mkdir -p /etc/ichigod\n```\n\n3. Create a configuration file `config.toml` in `/etc/ichigod`. The configuration file's name must be `config.toml`, not any other name. Please refer to [`asset/example_config.toml`](asset/example_config.toml) for an example configuration.\n\n4. Create a Python virtual environment with `telegramify-markdown` installed in `/etc/ichigod/venv`:\n```bash\n# Example commands\ncd /etc/ichigod\npython3 -m venv venv\nsource venv/bin/activate\npip install telegramify-markdown\n```\n\n5. Create a systemd service unit at `/etc/systemd/system/ichigod.service`:\n```ini\n# Example service unit\n[Unit]\nDescription=Ichigo Telegram Bot Service\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nExecStart=/usr/bin/ichigod\nRestart=always\nRestartSec=5\nEnvironment=\"ICHIGOD_DATA_DIR=/etc/ichigod\"\nEnvironment=\"PATH=/etc/ichigod/venv/bin\"\n\n[Install]\nWantedBy=multi-user.target\n```\n\n6. Enable and start the service:\n```bash\n# Example commands\nsudo systemctl daemon-reload\nsudo systemctl enable ichigod\nsudo systemctl start ichigod\n```\n\n7. Check the service log:\n```bash\n# Example commands\nsudo journalctl -u ichigod.service | tail -8\n\n# Example outputs\n# \u003credacted\u003e systemd[1]: Started ichigod.service - Ichigo Telegram Bot Service.\n# \u003credacted\u003e ichigod[202711]: \u003credacted\u003e INFO starting ichigod\n# \u003credacted\u003e ichigod[202711]: \u003credacted\u003e INFO initializing bot service\n# \u003credacted\u003e ichigod[202711]: \u003credacted\u003e INFO bot API client initialized username=\u003credacted\u003e debug_mode=false\n```\n\n## 🛠️ Development\n\nDevelopment commands:\n```bash\nmake dev        # Run in development mode\nmake debug      # Run with debugger\nmake build      # Build for current platform\nmake build_x64  # Build for Linux x64\n```\n\n## ⚙️ Configuration\n\nThe bot looks for `config.toml` in these locations:\n1. `$ICHIGOD_DATA_DIR`\n2. `/etc/ichigod/`\n3. `$HOME/.config/ichigod/`\n4. Current directory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frewired-gh%2Fichigo-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frewired-gh%2Fichigo-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frewired-gh%2Fichigo-bot/lists"}