用法
本节介绍了主插件(chatluna
)的用法(主要是指令)。对于其他 chatluna 生态插件的指令,请参考对应的文档(?)。
对话
对话是用户和 ChatLuna 交互的主要方式,用户通过输入文本来和 ChatLuna 进行对话,ChatLuna 会根据用户的输入和当前用户所在的返回键的信息,选择好相应的模型,生成回复文本,并发送给用户。
直接对话
基于用户当前使用的房间,直接对话。
以下为命令格式:
chatluna.chat.text -r <room:string> <message:text>
以下为命令的可选参数:
-r,room
: 指定对话的房间,默认为用户在当前环境里使用的房间,可为房间名或房间ID。
以下为例子:
语音回复对话
与上面直接对话用的类似,但是不同的是 ChatLuna 会尝试调用 vits 服务,将模型生成的内容转换成语音后发送。
以下为命令格式:
chatluna.chat.voice -s <speakerId:number> -r <room:string> <message:text>
以下为可选参数:
-r,--room
: 指定对话的房间,默认为用户在当前环境里使用的房间,可为房间名或房间ID。-s,--speaker
: 指定使用的 vits 服务的目标音色的 ID。
以下为例子:
停止对话
如果遇到模型长时间未响应,可以手动停止对话。
以下为命令格式:
chatluna.chat.stop -r <room:string>
以下为可选参数:
-r,--room
: 指定对话的房间,默认为用户在当前环境里使用的房间,可为房间名或房间ID。
以下为例子:
回滚对话
回滚对话用于重新生成模型的上一条回复消息。
提示
请求错误后,由于最新的聊天消息没有保存。因此调用此命令后,将重新生成上一次请求成功后模型的回复消息。
以下为命令格式:
chatluna.chat.rollback -r <room:string> [content:text]
以下为可选参数:
-r,--room
: 指定对话的房间,默认为用户在当前环境里使用的房间,可为房间名或房间ID。content
: 指定需要回滚的聊天消息内容。这将作为回滚时你的消息内容。(不是模型的回复,是你自己的消息)
以下为例子:
房间
房间是 ChatLuna 的主要组成部分。想象一下你在不同的群里都可以私人订制不同的房间,使用不同的预设,聊天模式。可以多个用户在一个房间里一起调教模型。这可能是目前最复杂的在 bot 上的聊天系统,但也是自由度最高的系统。
切换房间
切换你在当前环境里(群聊或私聊里)默认使用的房间。
切换后使用聊天命令等,都会默认使用切换了的房间。
提示
如执行其他指令(加入房间),可能会自动切换在当前环境里默认使用的房间!
以下为命令格式:
chatluna.room.switch <room:text>
以下为例子:
创建房间
创建新的房间,并将当前环境的默认房间切换为新创建的房间。
此命令是目前已知的 ChatLuna 里前三复杂的指令。
命令含有两种模式,如果没有携带任何子参数,则自动进入交互式创建,否则将直接基于子参数进行创建。
以下为命令格式:
chatluna.room.create -n <name:string> -p <preset:string> -m <model:string> -c <chatMode:string> -w <password:string> -v <visibility:string>
以下为可选参数:
-n,--name
: 指定房间的名字。-p,--preset
: 指定房间的预设。-m,--model
: 指定房间的模型。-c,--chatMode
: 指定房间的聊天模式。-w,--password
: 指定房间的密码。
在这里我们只介绍交互式创建的例子,如需自己使用子参数,请自行摸索。
设置房间
设置当前环境的默认房间的配置。
此命令是目前已知的 ChatLuna 里前三复杂的指令。
和创建房间一样,命令含有两种模式,如果没有携带任何子参数,则自动进入交互式创建,否则将直接基于子参数进行创建。
以下为命令格式:
chatluna.room.set -n <name:string> -p <preset:string> -m <model:string> -c <chatMode:string> -w <password:string> -v <visibility:string>
以下为可选参数:
-n,--name
: 指定房间的名字。-p,--preset
: 指定房间的预设。-m,--model
: 指定房间的模型。-c,--chatMode
: 指定房间的聊天模式。-w,--password
: 指定房间的密码。-v,--visibility
: 指定房间的可见性。
如果你想更换当前环境默认房间的模型,可以只带上 -m
参数,如:
对于该命令,我们不推荐你使用交互式创建。
另外,如果你对该房间设置了新的预设,那么该房间之前的聊天记录会自动清空。
删除房间
删除某个已经加入了的房间。
警告
此命令只有房主能够执行。但如果执行者最低 3 级权限,那么也将会执行删除房间的操作。
以下为命令格式:
chatluna.room.delete <room:text>
以下为可选参数:
room
: 指定要删除的房间,默认为当前环境的默认房间。
以下为例子:
列出房间信息
列出在当前环境的默认使用的房间的信息
以下为命令格式:
chatluna.room.info [room:text]
以下为可选参数:
room
: 指定要查询的房间,默认为当前环境的默认房间。
以下为例子:
设置自动更新权限
设置当前环境的默认房间是否跟随控制模版的配置更新。
如果设置为 false,当修改主插件的里的模版房间配置(如模型等),将不会跟随更新配置。
该选项只对模版控制房间生效。
以下为命令格式:
chatluna.room.auto-update -r <room:string> <enable:boolean>
以下为可选参数:
-r,--room
: 指定要设置的房间,默认为当前环境的默认房间。enable
: 指定是否开启自动更新权限,默认为 true。
以下为例子:
转移房主
将你在当前环境里默认使用的房间的房主转移给其他用户。
需要当前你默认使用的房间为房主。
提示
如果执行者在数据库的权限大于3,那么他将可以直接转移房主,包括转移到自己身上。
以下为命令格式:
chatluna.room.transfer <user:user>
以下为可选参数:
user
: 指定转移房间房主的用户 ID。(需要为 at)
以下为例子:
邀请加入房间
邀请其他用户加入当前环境里默认使用的房间。
需要当前你默认使用的房间为管理员或房间权限。
提示
如果执行者在数据库的权限大于3,那么他将可以直接邀请用户加入房间,包括邀请自己加入。
以下为命令格式:
chatluna.room.invite <...arg:user>
以下为可选参数:
user
: 邀请加入房间的用户 ID。(支持为多个 at)
以下为例子:
离开房间
退出加入某给房间。
提示
如果执行者为房主,这将导致该房间被删除。
以下为命令格式:
chatluna.room.leave [room:text]
以下为例子:
踢出房间
将某用户踢出当前环境里默认使用的房间。
需要当前你默认使用的房间为管理员或房间权限。
以下为命令格式:
chatluna.room.kick <...arg:user>
以下为可选参数:
user
: 踢出房间的用户 ID。(需要为 at)
以下为例子:
修改用户权限
修改某用户在当前环境里默认使用的房间的权限。
需要当前你默认使用的房间为管理员或房间权限。
以下为命令格式:
chatluna.room.permission <user:user>
以下为可选参数:
user
: 指定修改权限的用户 ID。(需要为 at)
以下为例子:
禁言用户
禁言某用户在当前环境里默认使用的房间。
执行一次为禁言操作,在执行一次则为取消禁言操作。禁言操作没有时间限制。
需要当前你默认使用的房间为管理员或房间权限。
以下为命令格式:
chatluna.room.mute <...arg:user>
以下为可选参数:
user
: 禁言房间的用户 ID。(需要为 at)
以下为例子:
列出房间列表
列出你目前在当前环境里已经加入了的房间列表。
以下为命令格式:
chatluna.room.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回的房间数量上限,默认为 3。-p,--page
: 指定返回的房间页数,默认为 1。
以下为例子:
清除聊天记录
清除当前房间的聊天记录。
相当于重置模型记忆,重新开始新的会话。有助于获取不同的对话风格。
以下为命令格式:
chatluna.room.clear [room:text]
以下为例子:
预设
列出预设列表
列出当前 ChatLuna 可用的预设列表。 预设列表会显示出预设的关键词,预览内容。
以下为命令格式:
chatluna.preset.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回的预设数量上限,默认为 3。-p,--page
: 指定返回的预设页数,默认为 1。
以下为例子:
添加预设
添加新的 ChatLuna 预设。 执行后会要求你发送新的预设的内容。
使用此命令添加的预设只能是简单预设(即单条 system message),如需编写复杂预设,请参考 此 来编写复杂预设。
以下为命令格式:
chatluna.preset.add <preset:string>
以下为例子:
提示
对于为 string
类型的指令参数,如传递的参数有空格,这会影响到最终参数解析。不妨使用双引号包围参数,如“测试 123”。
克隆预设
克隆某个 ChatLuna 预设。 这样可以方便的修改现有的预设,修改出其他类似但是效果又不一样的预设。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.preset.clone <originPreset:string> [newPresetName:string]
以下为参数:
-o,--originPreset
: 原始的预设名。(必须参数)-n,--newPresetName
: 新的预设名。如果未输入,则按原预设名+(1)
处理。如猫娘
->猫娘(1)
。
以下为例子:
设置预设
修改已有的 ChatLuna 预设的内容。 执行后会要求你发送新的预设的内容。
使用此命令修改的预设只能是简单预设(即单条 system message),如需编写复杂预设,请参考 此 来编写或修改复杂预设。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.preset.set <preset:string>
以下为参数:
-p,--preset
: 需要修改的预设名称。
以下为例子:
删除预设
删除 ChatLuna 预设。
删除后该预设会无法找回,ChatLuna 也会尝试将使用了该预设的房间切换到其他预设。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.preset.delete <preset:string>
以下为参数:
-p,--preset
: 需要修改的预设名称。
以下为例子:
模型(向量数据库,嵌入模型,大语言模型)
列出大语言模型列表
列出当前 ChatLuna 可用的大语言模型列表。 可指定 page
参数来选择页码,指定 limit
参数来选择返回的大语言模型列表数量上限。
以下为命令格式:
chatluna.model.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回大语言模型名称的数量上限,默认为 5。-p,--page
: 指定返回大语言模型名称的页数,默认为 1。
以下为例子:
搜索大语言模型
搜索当前 ChatLuna 里可用的大语言模型。
以下为命令格式:
chatluna.model.search <keyword:string> -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回大语言模型名称的数量上限,默认为 5。-p,--page
: 指定返回大语言模型名称的页数,默认为 1。
以下为例子:
列出嵌入模型列表
列出当前 ChatLuna 可用的嵌入模型列表。
以下为命令格式:
chatluna.embeddings.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回嵌入模型名称的数量上限,默认为 5。-p,--page
: 指定返回嵌入模型名称的页数,默认为 1。
以下为例子:
列出向量数据库列表
列出当前 ChatLuna 可用的向量数据库列表。
以下为命令格式:
chatluna.vectorstore.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回向量数据库名称的数量上限,默认为 5。-p,--page
: 指定返回向量数据库名称的页数,默认为 1。
以下为例子:
设置默认嵌入模型
设置当前 ChatLuna 使用的嵌入模型。
设置后如使用到嵌入模型,则优先使用设置的嵌入模型。
警告
此命令需要被执行者最低 3 级权限。
提示
此命令配置的效果和配置项里的defaultEmbeddings
相同,因此也可以通过控制面板配置此项,无需执行此命令。
以下为命令格式:
chatluna.embeddings.set <embeddings:string>
以下为例子:
设置默认向量数据库
设置当前 ChatLuna 使用的向量数据库。
设置后如使用到向量数据库,则优先使用设置的向量数据库。
警告
此命令需要被执行者最低 3 级权限。
提示
此命令配置的效果和配置项里的defaultVectorStore
相同,因此也可以通过控制面板配置此项,无需执行此命令。
以下为命令格式:
chatluna.vectorstore.set <vectorstore:string>
以下为例子:
长期记忆 实验性
长期记忆的相关命令功能目前为实验性功能,随时可能会出现破坏性更改。
在使用相关命令前,请先前往插件配置里开启 longMemory
。
搜索长期记忆
搜索在某个预设下的记忆列表。
以下为命令格式:
chatluna.memory.search -t <type:string> -l <limit:number> -p <page:number> <keyword:string>
以下为参数说明:
-p,--preset
: 指定搜索的预设。keyword
: 指定搜索的关键词。
以下为例子:
添加长期记忆
为某个预设添加一条长期记忆。
以下为命令格式:
chatluna.memory.add -t <type:string> <content:string>
以下为参数说明:
-t,--type
: 指定添加记忆的预设。content
: 指定添加的记忆内容。
以下为例子:
删除长期记忆
删除在某个预设下的记忆。
以下为命令格式:
chatluna.memory.delete -t <type:string> <id:string>
以下为参数说明:
-t,--type
: 指定删除记忆的预设。id
: 指定删除的记忆 ID。
以下为例子:
修改长期记忆
修改在某个预设下的记忆。
以下为命令格式:
chatluna.memory.edit -t <type:string> <id:string>
以下为参数说明:
-t,--type
: 指定修改记忆的预设。id
: 指定修改的记忆 ID。
以下为例子:
清除长期记忆
清除在某个预设下的所有记忆。
警告
所有在该预设下的长期记忆都会被清除!
以下为命令格式:
chatluna.memory.clear -t <type:string>
以下为参数说明:
-t,--type
: 指定清除记忆的预设。
以下为例子:
配额组和余额系统 实验性
目前此功能为实验性功能,随时可能会出现破坏性更改或移除。
如需使用相关功能,请先前往插件配置里开启authSystem
。
查询余额
查询某个用户的余额。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.balance.query [user:user]
以下为参数说明:
user
: 指定查询的用户,如为空则默认为当前用户。
以下为例子:
清空余额
清空某个用户的余额。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.balance.clear [user:user]
以下为参数说明:
user
: 指定清空的用户,如为空则默认为当前用户。
以下为例子:
设置余额
设置某个用户的余额。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.balance.set -u [user:user] [balance:number]
以下为参数说明:
-u,--user
: 指定设置的用户,如为空则默认为当前用户。balance
: 指定设置的余额。
以下为例子:
添加用户到配额组
将某位用户添加到某个配额组。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.auth.add -u <user:user> <group:string>
以下为参数说明:
-u,--user
: 指定添加的用户。group
: 指定添加的用户组。
以下为例子:
从配额组里移除用户
将某位用户从某个配额组中移除。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.auth.kick -u <user:user> <group:name>
以下为参数说明:
-u,--user
: 指定移除的用户。group
: 指定移除的用户组。
提示
此命令只会将用户从指定的配额组中移除,不会删除用户。
以下为例子:
创建配额组
新建一个配额组。
和 创建房间 类似,可以交互式创建或直接从选项里创建,也是 ChatLuna 里前三复杂的命令。
警告
此命令需要被执行者最低为 3 级权限。
以下为命令格式:
chatluna.auth.create -n <name:string> -s [...model] -c <cost:number> -pm <preMin:number> -p <priority:number> -pd <day:number> -pf <platform:string>
以下为可选参数:
-n
:配额组名称。-s
:配额组里可用的模型,在该模型之外的其他模型不可用。-c
:配额组的费用消耗,按千 token 计算。-pm
:配额组每分钟的最大调用次数。所有用户共享同一配额组的调用次数。-p
:配额组优先级,优先级(数字)越大的,越会被优先调用。-pd
:配额组每天的最大调用次数,所有用户共享同一配额组的调用测试。-pd
:适用的模型平台,用于区分不同平台的配额组。
下面我们只演示交互式创建的例子,其他的使用方法请自行摸索(或等待文档继续完善)
列出配额组
列出当前 ChatLuna 可用的配额组列表。
警告
此命令需要被执行者最低 3 级权限。
以下为命令格式:
chatluna.auth.list -l <limit:number> -p <page:number>
以下为可选参数:
-l,--limit
: 指定返回配额组名称的数量上限,默认为 3。-p,--page
: 指定返回配额组名称的页数,默认为 1。
以下为例子: