🍩 Deploy Docs & 🧀 Dev Docs & 📝 中文Readme
Any issues with deployment? Submit an Issue to help us fix SLA
LLMBot is a message queue based IM Bot developed around the concept of an intelligent robot assistant that can be loaded
with plugins to perform many functions. Implemented with Openai's new Feature gpt-function-call
support.
Demo |
---|
![]() |
Unlike previous projects, this project tries to replicate ChatGpt's plugin system based on the messaging platform, implementing some or more features.
Because func call is a feature, it only supports Openai type api, and does not intend to support LLM without func call.
- 🍪 Call a number of pre-defined functions in natural language, use
pip
install every plugin you need. - 📝 Messaging system, define send receivers and data can be delivered to the llm chain.
- 📎 Subscription system, which can subscribe to multiple senders in addition to paired senders, with push functionality.
- 📦 Non-question-and-answer binding, unlimited time and unlimited sender triggered response.
- 📬 Customizable ApiKey and Endpoint, traceability of sender authentication info.
- 🍾 Easy Interactive Experience.
- 🍖 Continuous session design for function plug-ins, blacklist design
- 🍟 Support for plug-in human-in-the-loop authentication, support for plug-in atomic singleton configuration, support for development of pre-message text validation Hooks, support for development of text<->media converters, support for error disabling Hooks
The authentication system we use is called Service Provider
, which is the service provider. Its role is to assign
Endpoint/Key/Model to each sender for authentication.
Has a token
as a bound OpenKey. The program will call the set Service Provider
to read the private Key/configuration
Token to obtain the authentication information.
Both the authentication component and the backend need to be implemented by yourself.
Sticker Converter | Timer Func | Translate |
---|---|---|
![]() |
![]() |
![]() |
Platform | Support | File System | Tip |
---|---|---|---|
Telegram | ✅ | ✅ | |
Discord | ✅ | ✅ | |
Kook | ✅ | ✅ | No Support Replies start |
Slack | ✅ | ✅ | No Support Replies start |
❌ | |||
❌ | |||
❌ | |||
Matrix | ❌ | ||
IRC | ❌ | ||
... | Create issue/pr |
Read the 🧀 Deployment Documentation for more information.
Please use python3 start_sender.py
python3 start_receiver.py
to test whether it can run normally.
Attention, does not include the memory usage of services such as pm2, redis, rabbitmq, mongodb, docker, etc.
| Process | Memory Max Head Size | Tester |
|----------|-----------|-------------------------- -----------------------|
| receiver
| 286.847MB | python3 -m memray run --live start_receiver.py
|
| sender
| 260.669MB | python3 -m memray run --live start_sender.py
|
Build Hub: sudoskys/llmbot
If you are using a brand new server, you can use the following shell to try to automatically install this project.
This script will automatically install the required services and map ports using Docker methods, if you have
deployed redis
, rabbitmq
, mongodb
.
Please modify the docker-compose.yml
file yourself.
curl -sSL https://raw.githubusercontent.com/LLMKira/Openaibot/main/deploy.sh | bash
git clone https://github.com/LlmKira/Openaibot.git
cd Openaibot
pip install -r requirements.txt
docker-compose -f docker-compose.yml up -d
To manually start using Pm2, you need to install redis
, rabbitmq
, mongodb
by yourself.
git clone https://github.com/LlmKira/Openaibot.git
cd Openaibot
apt install npm -y && npm install pm2 && pm2 start pm2.json
pm2 monit
Use pm2 restart pm2.json
to restart the program.
clear - erase chat history
help - show docs
chat - chat
task - chat with function_enable
ask - chat with function_disable
tool - list all functions
set_endpoint - set private key and endpoint
clear_endpoint - erase private key and endpoint
auth - auth a function
env - env for function
token - bind token
token_clear - clear token binding
func_ban - ban a function
func_unban - unban a function
bind - Bind rss platforms
unbind - Unbind rss platforms
For plugin development, please refer to the sample plugins in the plugins
directory.
Plugin development please refer to 🧀 Plugin Dev Docs
We can't do it on our own at the moment:
- We need help with the documentation
- Web UI
Feel free to submit a Pull Request or discuss, we'd love to receive your contribution!
This project has no relationship with OPENAI/ChatGpt.