Skip to content

Latest commit

 

History

History
195 lines (142 loc) · 7.41 KB

README_EN.md

File metadata and controls

195 lines (142 loc) · 7.41 KB

cover


docker docker workflow
telegram discord
license docker build

🍩 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
sticker

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.

📦 Feature

  • 🍪 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

🧀 Introduction to authentication system

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.

auth

Both the authentication component and the backend need to be implemented by yourself.

🧀 Preview of some plugins

Sticker Converter Timer Func Translate
sticker timer translate

🎬 Platform support

Platform Support File System Tip
Telegram
Discord
Kook No Support Replies start
Slack No Support Replies start
QQ
Wechat
Twitter
Matrix
IRC
... Create issue/pr

📦 Quick Start

Read the 🧀 Deployment Documentation for more information.

Please use python3 start_sender.py python3 start_receiver.py to test whether it can run normally.

Performance indicator test (Until 2023/10/31)

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 |

🥣 Docker

Build Hub: sudoskys/llmbot

Automatic Docker/Docker-compose installation

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

Manual Docker-compose installation

git clone https://github.com/LlmKira/Openaibot.git
cd Openaibot
pip install -r requirements.txt
docker-compose -f docker-compose.yml up -d

🍔 Shell

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.

🍪 Slash Command

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

💻 How to develop?

For plugin development, please refer to the sample plugins in the plugins directory.

Plugin development please refer to 🧀 Plugin Dev Docs

🤝 We need your help!

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!

📜 Agreement

This project has no relationship with OPENAI/ChatGpt.

FOSSA Status