You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zhayujie 374cd5dbb8 feat: support send knowledge base image преди 1 година
..
README.md feat: support send knowledge base image преди 1 година
__init__.py feat: add linkai plugin to support midjourney and distinguish app between groups преди 1 година
config.json.template feat: add dalle3 gpt-4-turbo model change преди 1 година
linkai.py fix: image vision temporarily cancel error logging преди 1 година
midjourney.py fix: mj open auth bug преди 1 година
summary.py feat: add dalle3 gpt-4-turbo model change преди 1 година
utils.py fix: mj open auth bug преди 1 година

README.md

插件说明

基于 LinkAI 提供的知识库、Midjourney绘画、文档对话等能力对机器人的功能进行增强。平台地址: https://link-ai.tech/console

插件配置

plugins/linkai 目录下的 config.json.template 配置模板复制为最终生效的 config.json。 (如果未配置则会默认使用config.json.template模板中配置,但功能默认关闭,需要可通过指令进行开启)。

以下是插件配置项说明:

{
    "group_app_map": {               # 群聊 和 应用编码 的映射关系
        "测试群名称1": "default",      # 表示在名称为 "测试群名称1" 的群聊中将使用app_code 为 default 的应用
        "测试群名称2": "Kv2fXJcH"
    },
    "midjourney": {
        "enabled": true,          # midjourney 绘画开关
        "auto_translate": true,   # 是否自动将提示词翻译为英文
        "img_proxy": true,        # 是否对生成的图片使用代理,如果你是国外服务器,将这一项设置为false会获得更快的生成速度
        "max_tasks": 3,           # 支持同时提交的总任务个数
        "max_tasks_per_user": 1,  # 支持单个用户同时提交的任务个数
        "use_image_create_prefix": true   # 是否使用全局的绘画触发词,如果开启将同时支持由`config.json`中的 image_create_prefix 配置触发
    },
    "summary": {
        "enabled": true,              # 文档总结和对话功能开关
        "group_enabled": true,        # 是否支持群聊开启
        "max_file_size": 5000,        # 文件的大小限制,单位KB,默认为5M,超过该大小直接忽略
        "type": ["FILE", "SHARING", "IMAGE"]  # 支持总结的类型,分别表示 文件、分享链接、图片
    }
}

根目录 config.json 中配置,API_KEY控制台 中创建并复制过来:

"linkai_api_key": "Link_xxxxxxxxx"

注意:

  • 配置项中 group_app_map 部分是用于映射群聊与LinkAI平台上的应用, midjourney 部分是 mj 画图的配置,summary 部分是文档总结及对话功能的配置。三部分的配置相互独立,可按需开启
  • 实际 config.json 配置中应保证json格式,不应携带 ‘#’ 及后面的注释
  • 如果是docker部署,可通过映射 plugins/config.json 到容器中来完成插件配置,参考文档

插件使用

使用插件中的知识库管理功能需要首先开启linkai对话,依赖全局 config.json 中的 use_linkailinkai_api_key 配置;而midjourney绘画 和 summary文档总结对话功能则只需填写 linkai_api_key 配置,use_linkai 无论是否关闭均可使用。具体可参考 详细文档

完成配置后运行项目,会自动运行插件,输入 #help linkai 可查看插件功能。

1.知识库管理功能

提供在不同群聊使用不同应用的功能。可以在上述 group_app_map 配置中固定映射关系,也可以通过指令在群中快速完成切换。

应用切换指令需要首先完成管理员 (godcmd) 插件的认证,然后按以下格式输入:

$linkai app {app_code}

例如输入 $linkai app Kv2fXJcH,即将当前群聊与 app_code为 Kv2fXJcH 的应用绑定。

另外,还可以通过 $linkai close 来一键关闭linkai对话,此时就会使用默认的openai接口;同理,发送 $linkai open 可以再次开启。

2.Midjourney绘画功能

若未配置 plugins/linkai/config.json,默认会关闭画图功能,直接使用 $mj open 可基于默认配置直接使用mj画图。

指令格式:

 - 图片生成: $mj 描述词1, 描述词2..
 - 图片放大: $mju 图片ID 图片序号
 - 图片变换: $mjv 图片ID 图片序号
 - 重置: $mjr 图片ID

例如:

"$mj a little cat, white --ar 9:16"
"$mju 1105592717188272288 2"
"$mjv 11055927171882 2"
"$mjr 11055927171882"

注意事项:

  1. 使用 $mj open$mj close 指令可以快速打开和关闭绘图功能
  2. 海外环境部署请将 img_proxy 设置为 false
  3. 开启 use_image_create_prefix 配置后可直接复用全局画图触发词,以”画”开头便可以生成图片。
  4. 提示词内容中包含敏感词或者参数格式错误可能导致绘画失败,生成失败不消耗积分
  5. 若未收到图片可能有两种可能,一种是收到了图片但微信发送失败,可以在后台日志查看有没有获取到图片url,一般原因是受到了wx限制,可以稍后重试或更换账号尝试;另一种情况是图片提示词存在疑似违规,mj不会直接提示错误但会在画图后删掉原图导致程序无法获取,这种情况不消耗积分。

3.文档总结对话功能

配置

该功能依赖 LinkAI的知识库及对话功能,需要在项目根目录的config.json中设置 linkai_api_key, 同时根据上述插件配置说明,在插件config.json添加 summary 部分的配置,设置 enabled 为 true。

如果不想创建 plugins/linkai/config.json 配置,可以直接通过 $linkai sum open 指令开启该功能。

使用

功能开启后,向机器人发送 文件分享链接卡片图片 即可生成摘要,进一步可以与文件或链接的内容进行多轮对话。如果需要关闭某种类型的内容总结,设置 summary配置中的type字段即可。

限制

  1. 文件目前 支持 txt, docx, pdf, md, csv格式,文件大小由 max_file_size 限制,最大不超过15M,文件字数最多可支持百万字的文件。但不建议上传字数过多的文件,一是token消耗过大,二是摘要很难覆盖到全部内容,只能通过多轮对话来了解细节。
  2. 分享链接 目前仅支持 公众号文章,后续会支持更多文章类型及视频链接等
  3. 总结及对话的 费用与 LinkAI 3.5-4K 模型的计费方式相同,按文档内容的tokens进行计算