Giter Site home page Giter Site logo

synologychatgpt's Introduction

SynologyChatGPT

为群晖Chat设计的ChatGPT机器人,使用Django编写。

ChatGPT client for Synology Chat, written with Django

截屏2023-03-05 16 48 49

安装依赖

安装 Python

去群晖套件中心安装 Python3 即可。

安装 pip

群晖安装的 python3 没有自带 pip,请参照这篇文章安装。下面假设你为 root 用户安装了pip,因为普通用户会遇到权限问题。

版本说明

如果你执行提示语法错误/其他错误,首先试试把命令中的pythonpip换成python3pip3。你的python可能是python2。

安装依赖

在项目目录下,执行

sudo pip install -r requirements.txt

运行服务器

如果本项目不部署在群晖上,会遇到HTTP 400错误。解决方案请参考这个Issue:#4

在项目目录下,依次执行以下两条命令,创建数据库:

sudo python manage.py makemigrations chat
sudo python manage.py migrate

然后执行下面的命令启动服务器:

sudo python manage.py runserver <port>

<port>中填入你指定的端口。注意,<port>是一个数字,不包含尖括号,如1999。如果服务器启动正常(没有端口冲突),按Ctrl C中断服务器。然后执行。

sudo nohup python manage.py runserver <port>

现在服务器就在后台执行,可以关闭SSH窗口了。(注意不要按Ctrl C中断nohup执行)

创建斜杠命令和机器人。

在Chat界面右上角,创建整合。

截屏2023-03-05 17 22 45

斜杠命令

先创建一些斜杠命令。斜杠命令可以在Chat对话框里输入/执行。

image

点击创建按钮创建。

image

像这样填写表单内容。请求URL均为http://127.0.0.1:<port>/webhook。其中<port>是你刚刚指定的端口,图中的示例使用了1999端口。你可以在自定义名称中填入任何合法名称,但命令必须按下面的指示填写。本项目不使用令牌参数,可以忽略它。

image

接下来列出本项目支持的命令及其参数。

字段名 内容
命令 clear
命令说明 清除对话历史记录
描述 清除ChatGPT的上下文,但Chat中的聊天记录仍然会被保留。
字段名 内容
命令 totaltoken
命令说明 查看当前token用量
描述 token上限为4096
字段名 内容
命令 retry
命令说明 重新回答上一个问题
描述 让ChatGPT重新回答一次你的上一个提问
字段名 内容
命令 whoami
命令说明 返回当前用户ID
描述 用户ID是每位用户的唯一身份证明
字段名 内容
命令 newuser
命令说明 创建新ChatGPT用户
描述 接受可选两个参数:BaseURL,群晖的URL;BotKey,为机器人界面展示的令牌。
字段名 内容
命令 setapikey
命令说明 设置当前用户的OpenAI API密钥
描述 接受一个参数:OpenAI API密钥。
字段名 内容
命令 setbotkey
命令说明 设置当前用户的Bot令牌
描述 接受一个参数:Bot令牌
字段名 内容
命令 setbaseurl
命令说明 设置群晖Chat的URL
描述 接受一个参数:URL,如https://www.example.com:5001
字段名 内容
命令 setsavedir
命令说明 设置自动保存的目录
描述 接受一个参数:/path/to/a/dir,是一个目录的路径
字段名 内容
命令 getsavedir
命令说明 获取自动保存的目录路径
描述 返回当前自动保存的目录
字段名 内容
命令 saveas
命令说明 保存目前与ChatGPT的聊天到txt文件
描述 接受一个参数:filename,保存到默认保存路径中
字段名 内容
命令 savenow
命令说明 自动保存目前与ChatGPT的聊天到txt文件
描述 使用当前系统时间作为文件名

然后创建机器人。

image

自定义名称中填入机器人名称,可以任意指定,比如ChatGPT

传出URL设定为http://127.0.0.1:<port>。其中<port>为你指定的端口号。上面的截图使用了1999端口号。

开始使用

本项目支持多用户。因此,第一次使用时,需要创建ChatGPT机器人用户。使用/newuser命令创建。可以在此时指定BaseURLBotKey,也可以稍后指定。BaseURL是群晖面板的URL,如https://www.example.com:5001,注意最后没有斜线/BotKey是机器人的令牌。

/newuser <(可选)BaseURL> <(可选)BotKey>

如果稍后指定,用/setbotkey命令指定Bot Key

/setbotkey <BotKey>

setbaseurl命令指定BaseURL

/setbaseurl <BaseURL>

注意,在设定BaseURL和BotKey之前,机器人无法给你发送信息,Chat可能会提示机器人不可用。

然后,需要设定你的OpenAI API密钥。

/setapikey <OpenAI API Key>

如果你想使用将当前聊天记录保存成文件的功能,还需要配置默认文件保存文件夹的路径,路径中不允许含有空格:

/setsavedir /path/to/your/dir

然后,你就可以愉快地开始使用啦!

已知问题

在使用saveassavenow命令时,Chat会提示机器人不可用,然后收到保存成功的提示。文件可以正常保存。

赞助

感谢 rashida 的慷慨赞助

synologychatgpt's People

Contributors

gaizhenbiao avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.