爱游戏(ayx)中国官方网站

爱游戏ayx,爱游戏ayx官方

爱游戏ayx,爱游戏ayx官方

【教程】搭建一个专属的聊天机器人(扩展篇)

续,本期的主题是 Naturel_GPT 的扩展模块使用和 Minecraft 服务器接入,另附扩展编写基础教程,供有动手能力的爱游戏ayx官方家参考

温馨提示:本教程覆盖内容较广,请自主选择需要的信息进行阅读,为了获得较好的阅读体验,建议先了解上期内容

为了方便 PC 端阅读同时进行操作,本期教程已同步发布至 知乎专栏

4. 扩展

类似于 OpenAI 官方的 ChatGPT Plugins,Naturel_GPT 也提供了自定义扩展功能,可以完成大部分“事先封装好的,能够通过自然语言描述使用方式和需求的任务”

4.1 效果展示

语音测试

以上仅演示部分扩展,如果想了解更多,可以查看

注:演示使用的是 gpt-4 的模型和谷歌的搜索接口

4.2 原理简介

一般来说,ChatGPT 的模型只能产生文字内容的响应信息,但是如果我们事先与其“约定”好一种特定的调用格式,当它发送这种格式的信息时,我们就能够理解为它想要使用某功能,从而使用预先编写好的扩展程序去代替它完成这些操作,并且支持由 ChatGPT 自行指定参数,从而实现强大的扩展性。

4.3 如何使用

要使用扩展,你需要进行两步操作:1. 下载扩展 -> 2. 配置扩展

4.3.1 获取扩展

  • 方式一:仓库来源(推荐): 你可以从本项目的中获取已编写好的扩展模块,以 sexnyan_pic 扩展为例,安装指令为rg ext add sexnyan_pic(确保你有 bot 超级管理权限,然后直接在聊天栏使用该命令即可)

下载扩展

  • 方式二:第三方来源: 你可以使用任何其它用户自行编写的扩展程序,但是请注意仅从你信任的来源获取,否则可能包含危险代码! 安装步骤:将你需要安装的扩展 (通常是ext_xxx.py) 放入扩展模块存放目录(默认nonebot目录/data/naturel_gpt/extensions/)

4.3.2 进行扩展配置

编辑 Naturel_GPT 的配置文件 (位于:nonebot目录/config/naturel_gpt.config.yml)

编辑配置以下两项配置项(#号后内容为注释,可删除):

NG_ENABLE_EXT: true # 扩展总开关,设为 true 才会执行扩展加载

NG_EXT_LOAD_LIST:

– EXT_NAME: ext_random # 扩展文件名 (不含'.py')

  IS_ACTIVE: true # 是否启用 (设为启用才会加载扩展,同时需要保证 NG_ENABLE_EXT 项开启)

  EXT_CONFIG: # 扩展配置 如该扩展插件无要求可不写此项

  arg: value # 填写示例 -> 参数名: 参数值 (注意缩进必须在EXT_CONFIG下一级)

– EXT_NAME: ext_xxx # 多个扩展按此形式依次填写

  • 示例:启用 sexnyan_pic 和 VOICEVOX 扩展

NG_ENABLE_EXT: true

NG_EXT_LOAD_LIST:

– EXT_NAME: ext_sexnyan_pic

  IS_ACTIVE: true

– EXT_NAME: ext_VOICEVOX

  IS_ACTIVE: true

  EXT_CONFIG:

  ng_voice_translate_on: true

  tencentcloud_common_region: ap-shanghai

  tencentcloud_common_secretid: AKID*********************************2DJ

  tencentcloud_common_secretkey: 0jD*********************************duwjI

  g_voice_tar: ja

  is_base64: false

  api_url: xxx.xxx.xxx:50021

  character: ずんだもん

注:扩展中需要的接口 api 需要自行申请(如上述腾讯翻译 api 等)

4.3.3 重启 Nonebot 应用扩展

要检查扩展是否加载成功,可使用!rg ext查看加载的扩展列表

4.3.4 扩展使用

扩展成功加载后就会出现在 bot 回复的“可用扩展功能”中,TA 会在对话中根据语境和需求主动地调用扩展,如果出现调用不积极或者效果不佳,可以在 bot 人设中具体描述你希望的使用方式以供参考

5. Minecraft 服务器链接

注意事项:

  • Minecraft 服务器适配器不一定适用于所有 MC 服务器,此处以 1.19.4 的 spigot 端为例,其它服务端请参考mc_qq安装文档安装服务端适配插件
  • 如需使用本插件接入您的服务器,为了避免 bot 使用高危指令,请自行配置合理指令黑白名单,严格限定 bot 的行为在特定范围,作者不对任何使用本插件所导致的任何后果负责
  • 为了提高 bot 执行指令的准确度,建议在人格设定中给出服务器的基本信息(版本、插件等),并提供一定的指令示例

5.1 NoneBot 端适配

5.1.1 MC适配器安装

nb adapter install nonebot-adapter-spigot

  • 如果你的 MC 服务端和 Nonebot 服务端不在同一台服务器上,需要在 .env.prod 中将 NoneBot 的监听地址(HOST=127.0.0.1)改为HOST=0.0.0.0并放行对应端口(PORT字段指示的端口),否则会导致连接失败

5.2 Minecraft 服务端适配

  • 参考mc_qq 安装文档安装服务端插件(即下载适合的插件丢进服务端 plugins 文件夹中)
  • 启动一次服务端,生成 mc_qq 配置文件
  • 将生成的配置文件中websocket_url: "ws://127.0.0.1:8765"的值部分应改为ws://Nonebot服务器ip:Nonebot监听端口/spigot/ws(如下图)

修改完毕后启动 Minecraft 服务器和 Nonebot 即可

5.3 RCON 配置

RCON 是 Minecraft 服务端的远程控制协议,用于执行游戏内指令,如果需要使用指令执行功能,需要开启 RCON 并配置密码;如果仅想使用基本聊天功能可跳过此步

在本插件中,RCON 以扩展调用的形式工作,故需要先安装 ext_mc_command 扩展模块

5.3.1 服务端配置

  1. 安装参考上述扩展安装教程安装扩展并填写好相关配置
  2. 在 MC 服务端server.properties文件中编辑enable-rcon=true和rcon.password=你的密码两项
  3. 在本插件配置文件(naturel_gpt_config.yml)中编辑 MC_RCON 相关配置项为你的服务器配置信息(你应该打开过无数次这个文件了,在此就不再赘述了)

至此配置完成,请启动服务器和 nonebot 查看插件是否工作正常

6. 如何编写一个扩展

6.1 前置知识

编写扩展只需要具备基础的 Python 编程知识和能力,还有良好的功能设计思维

6.2 扩展模板

你可以在 Github 仓库中找到一份基本的,并在此基础上编写你的自定义逻辑

这里以随机数生成为例,提供一个扩展编写的例子

  • 扩展名、扩展参数、扩展使用描述是面向 bot 使用视角的,使用英文编写可以有效降低 token 消耗
  • 上例中获取的参数是实际对话流程中 bot 提供的参数,如果要获取 naturel_gpt_config.yml 中的扩展参数请使用custom_config.get('参数名', 默认值)
  • 返回结果有多种形式,一些形式会导致再次触发 bot 响应(例如需要执行搜索或者定时器的场景),也可以将一些执行信息插入到对话上下文中以便 bot 参考,可根据实际需求参考对应扩展的实现代码了解学习

至此你已经理解了整个 Naturel_GPT 的应用内容,欢迎关注探索更多内容、查看更新版本或参与项目的开发探讨

最后,如果你认为这个项目对你有帮助的话,欢迎留下你的 ⭐ ,谢谢!

#免责声明#

①本站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。

②若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

③如果本站有侵犯、不妥之处的资源,请联系我们。将会第一时间解决!

④本站部分内容均由互联网收集整理,仅供大家参考、学习,不存在任何商业目的与商业用途。

⑤本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与任何商业和非法行为,请于24小时之内删除!

给TA打赏
共{{data.count}}人
人已打赏
生活杂谈

假面骑士们的幸福生活插画

2023-5-12 0:00:00

生活杂谈

ChatGPT:AI女网红交1000+男友周入50万,未来AI会如何发展?

2023-5-14 0:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索