{"id":13455970,"url":"https://github.com/LlmKira/Openaibot","last_synced_at":"2025-03-24T09:31:14.309Z","repository":{"id":64327318,"uuid":"574462676","full_name":"LlmKira/Openaibot","owner":"LlmKira","description":"⚡️ Build Your Own chatgpt Bot|🧀 Discord/Slack/Kook/Telegram |⛓ ToolCall|🔖 Plugin Support | 🌻 out-of-box | gpt-4o","archived":false,"fork":false,"pushed_at":"2024-10-21T17:24:52.000Z","size":18958,"stargazers_count":1952,"open_issues_count":5,"forks_count":230,"subscribers_count":21,"default_branch":"main","last_synced_at":"2024-11-09T04:03:11.200Z","etag":null,"topics":["assistant","chat-gpt","discordbot","gpt-4","gpt-4-vision-preview","gpt-4o","gpt-4o-mini","kook-bot","openai","slack-bot"],"latest_commit_sha":null,"homepage":"https://llmkira.github.io/Docs","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LlmKira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-05T11:17:59.000Z","updated_at":"2024-11-08T16:43:28.000Z","dependencies_parsed_at":"2023-01-15T12:30:44.706Z","dependency_job_id":"97e98962-7efe-465e-acb4-71f5cbe391ff","html_url":"https://github.com/LlmKira/Openaibot","commit_stats":null,"previous_names":["sudoskys/openaibot"],"tags_count":94,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LlmKira%2FOpenaibot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LlmKira%2FOpenaibot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LlmKira%2FOpenaibot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LlmKira%2FOpenaibot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LlmKira","download_url":"https://codeload.github.com/LlmKira/Openaibot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245243229,"owners_count":20583587,"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":["assistant","chat-gpt","discordbot","gpt-4","gpt-4-vision-preview","gpt-4o","gpt-4o-mini","kook-bot","openai","slack-bot"],"created_at":"2024-07-31T08:01:14.208Z","updated_at":"2025-03-24T09:31:14.294Z","avatar_url":"https://github.com/LlmKira.png","language":"Python","funding_links":[],"categories":["Python","A01_文本生成_文本对话","精选开源项目合集","Addons, extensions, plug-ins for integrating LLM into third-party applications"],"sub_categories":["大语言对话模型及数据","第三方机器人接入","Other user interfaces"],"readme":"![cover](https://raw.githubusercontent.com/LlmKira/.github/main/llmbot/project_cover.png)\n\n------------------\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://hub.docker.com/repository/docker/sudoskys/llmbot/general\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/pulls/sudoskys/llmbot\" alt=\"docker\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://badge.fury.io/py/llmkira\"\u003e\n    \u003cimg src=\"https://badge.fury.io/py/llmkira.svg\" alt=\"docker workflow\"\u003e\n\u003c/a\u003e\n\u003cbr /\u003e\n\u003ca href=\"https://t.me/Openai_LLM\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Join-Telegram-blue\" alt=\"telegram\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://discord.gg/6QHNdwhdE5\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Join-Discord-blue\" alt=\"discord\"\u003e\n\u003c/a\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://raw.githubusercontent.com/llmkira/openaibot/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/llmkira/openaibot\" alt=\"license\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://hub.docker.com/repository/docker/sudoskys/llmbot/builds\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/v/sudoskys/llmbot\" alt=\"docker build\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://llmkira.github.io/Docs/\"\u003e🍩 Deploy Docs\u003c/a\u003e\n  \u0026\n  \u003ca href=\"https://llmkira.github.io/Docs/dev/basic\"\u003e🧀 Dev Docs\u003c/a\u003e\n  \u0026\n  \u003ca href=\".github/CONTRIBUTING.md\"\u003e🤝 Contribute\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Don't hesitate to Star ⭐️, Issue 📝, and PR 🛠️\n\n\u003e Python\u003e=3.9\n\n\u003e This project is not abandoned, just no new features are planned.\n\u003e If you encounter a problem, please raise an Issue\n\nThis project uses the ToolCall feature.\n\nIt integrates a message queuing and snapshot system, offering plugin mechanisms and authentication prior to plugin\nexecution.\n\nThe bot adheres to the **Openai Format Schema**. Please adapt using [gateway](https://github.com/Portkey-AI/gateway)\nor [one-api](https://github.com/songquanpeng/one-api) independently.\n\n| Demo                                                                          | Vision With Voice                                                        | Code Interpreter                                                                      |\n|-------------------------------------------------------------------------------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------|\n| ![sticker](https://github.com/LlmKira/Openaibot/raw/main/docs/chain_chat.gif) | ![vision](https://github.com/LlmKira/Openaibot/raw/main/docs/vision.gif) | ![code](https://github.com/LlmKira/Openaibot/raw/main/docs/code_interpreter_func.gif) |\n\n## 🔨 Roadmap\n\n\u003e The program has iterated to its fourth generation.\n\n- [x] Removal of legacy code\n- [x] Deletion of metric system\n- [x] Deletion of model selection system, unified to OpenAI Schema\n- [x] Implementation of a more robust plugin system\n- [x] Project structure simplification\n- [x] Elimination of the Provider system\n- [x] Hook support\n- [x] Access to TTS\n- [x] Add standalone support for gpt-4-turbo and vision\n- [ ] Add LLM reference support to the plugin environment. (extract \u0026\u0026 search in text)\n\n## 📦 Features\n\n- 🍪 A comprehensive plugin development ecosystem, adopting a classic design, and seamless integration with plugins\n  through `pip` installation\n- 📝 Message system with no time or sender constraints, offering fully decoupled logics\n- 📬 Offers Login via a URL mechanism, providing a flexible and expandable authentication development solution\n- 🍰 Empowers users to authorize plugin execution. Users can configure plugin environment variables at their discretion\n- 📦 Support for plugins to access files\n- 🍟 Multi-platform support – extend new platforms by inheriting the base class\n- 🍔 Plugins can determine their appearance in new sessions dynamically, preventing performance degradation despite large\n  amounts of plugins\n\n### 🍔 Login Modes\n\n- `Login via url`: Use `/login \u003ca token\u003e$\u003csomething like https://provider.com/login\u003e` to Login. The program posts the token to the interface to\n  retrieve configuration\n  information, [how to develop this](https://github.com/LlmKira/Openaibot/blob/81eddbff0f136697d5ad6e13ee1a7477b26624ed/app/components/credential.py#L20).\n- `Login`: Use `/login https://\u003capi endpoint\u003e/v1$\u003capi key\u003e$\u003cthe model\u003e$\u003ctool model such as gpt-3.5-turbo\u003e` to login\n\n### 🧀 Plugin Can Do More\n\n| Sticker Converter                   | Timer Function(built-in)        |\n|-------------------------------------|---------------------------------|\n| ![sticker](./docs/sticker_func.gif) | ![timer](./docs/timer_func.gif) |\n\n### 🎬 Platform Support\n\n| Platform | Support | File System | Remarks                                |\n|----------|---------|-------------|----------------------------------------|\n| Telegram | ✅       | ✅           |                                        |\n| Discord  | ✅       | ✅           |                                        |\n| Kook     | ✅       | ✅           | Does not support `triggering by reply` |\n| Slack    | ✅       | ✅           | Does not support `triggering by reply` |\n| Line     | ❌       |             |                                        |\n| QQ       | ❌       |             |                                        |\n| Wechat   | ❌       |             |                                        |\n| Twitter  | ❌       |             |                                        |\n| Matrix   | ❌       |             |                                        |\n| IRC      | ❌       |             |                                        |\n| ...      |         |             | Create Issue/PR                        |\n\n## 📦 Quick Start\n\nRefer to the [🧀 Deployment Document](https://llmkira.github.io/Docs/) for more information.\n\n### 📦 One-click Deployment\n\nIf you are using a brand-new server, you can use the following shell to automatically install this project.\n\n```shell\ncurl -sSL https://raw.githubusercontent.com/LLMKira/Openaibot/main/deploy.sh | bash\n```\n\n### 📦 Manual Installation\n\n```shell\n# Install Voice dependencies\napt install ffmpeg\n# Install RabbitMQ\ndocker pull rabbitmq:3.10-management\ndocker run -d -p 5672:5672 -p 15672:15672 \\\n  -e RABBITMQ_DEFAULT_USER=admin \\\n  -e RABBITMQ_DEFAULT_PASS=8a8a8a \\\n  --hostname myRabbit \\\n  --name rabbitmq \\\n  rabbitmq:3.10-management\ndocker ps -l\n# Install Project\ngit clone https://github.com/LlmKira/Openaibot/\ncd Openaibot\npip install pdm\npdm install -G bot\ncp .env.exp .env \u0026\u0026 nano .env\n# Test\npdm run python3 start_sender.py\npdm run python3 start_receiver.py\n# Host\napt install npm\nnpm install pm2 -g\npm2 start pm2.json\n```\n\n\u003e **Be sure to change the default password for the command, or disable open ports to prevent the database from being\nscanned and attacked.**\n\n### 🥣 Docker\n\nBuild Hub: [sudoskys/llmbot](https://hub.docker.com/repository/docker/sudoskys/llmbot/general)\n\n\u003e Note that if you run this project using Docker, you will start Redis, MongoDB, and RabbitMQ. But if you're running\n\u003e locally, just RabbitMQ\n\n#### Manual Docker-compose Installation\n\n```shell\ngit clone https://github.com/LlmKira/Openaibot.git\ncd Openaibot\ncp .env.exp .env\u0026\u0026nano .env\ndocker-compose -f docker-compose.yml up -d\n```\n\nThe Docker configuration file `docker-compose.yml` contains all databases. In fact, Redis and MongoDB are not required.\nYou can remove these databases yourself and use the local file system.\n\nUpdate image using `docker-compose pull`.\n\nUse `docker exec -it llmbot /bin/bash` to view Shell in Docker, enter `exit` to exit.\n\n## 🍪 Slash Commands\n\n```shell\nclear - Deletes chat records\nlogin - Login to the bot\nhelp - Displays documentation\nchat - Conversation\ntask - Use a function to converse\nask - Disable function-based conversations\ntool - Lists all functions\nauth - Authorize a function\nenv - Environment variables of the function\nlearn - Learn your instructions, /learn reset to clear\n```\n\n## 💻 How to Develop Plugins?\n\nRefer to the example plugins in the `plugins` directory and\nthe [🧀 Plugin Development Document](https://llmkira.github.io/Docs/dev/basic) for plugin development documentation.\n\n### Hooks\n\nHooks control the EventMessage in sender and receiver. For example, we have `voice_hook` in built-in hooks.\n\nyou can enable it by setting `VOICE_REPLY_ME=true` in `.env`.\n\n```shell\n/env VOICE_REPLY_ME=yes\n# must\n\n/env REECHO_VOICE_KEY=\u003ckey in dev.reecho.ai\u003e\n# not must\n```\n\nuse `/env VOICE_REPLY_ME=NONE` to disable this env.\n\ncheck the source code in `llmkira/extra/voice_hook.py`, learn to write your own hooks.\n\n## 🧀 Sponsor\n\n[![sponsor](./.github/sponsor_ohmygpt.png)](https://www.ohmygpt.com)\n\n## 📜 Notice\n\n\u003e This project, named OpenAiBot, signifying \"Open Artificial Intelligence Robot\", is not officially affiliated with\n\u003e OpenAI.\n\n\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsudoskys%2FOpenaibot.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsudoskys%2FOpenaibot?ref=badge_small)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLlmKira%2FOpenaibot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLlmKira%2FOpenaibot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLlmKira%2FOpenaibot/lists"}