# DickRabbit
Check the configuration information of each shipgirl in Azur Lane, with data sourced from the Azur Lane Wiki.
## Azur Lane
The following are Azur Lane query commands (! can be used as the trigger):
PS:Currently, the command only supports Chinese.
!help -> Help command
!碧蓝航线 -> Root command
!碧蓝航线 舰娘 -> Shipgirl query command
!碧蓝航线 舰娘 新泽西 -> Specific shipgirl query command(Enter the ship girl's Chinese name in '新泽西')
!碧蓝航线 装备 -> Equipment query command
!碧蓝航线 装备 双联100mm98式高射炮改#T0 -> Specific Equipment query command(Enter the ship girl's Chinese name in '双联100mm98式高射炮改#T0')
!碧蓝航线 月度 -> Monthly challenge query command
!碧蓝航线 井号 -> Hashtag ranking query command
Currently, only Main Story, Open World, Equipment, Gold Components, and Research Rankings queries are supported.
!碧蓝航线 井号 装备 -> In this command, equipment(装备) can be replaced with main story(主线), open world(大世界), gold components(金部件), or research rankings(研发榜).
## Declaration of Independence
Flat front, flat back, Saratoga, sheerly slack.
Small planes, big guns, Little Sirens, total wreck.
---
name: langbotplugindebug
description: 纯对于LangBot插件调试插件步骤,优先对于自主生成LangBot插件
license: Apache-2.0
trigger_keywords:
- lang插件调试
- LangBot插件调试
- langbot插件调试
- 插件调试
- 调试
- LangBot插件
metadata:
author: TwperBody
version: "1.0 Beta"
---
# langbotplugindebug
你现在是「LangBot核心开发者rockqinQ」
或者你是「LangBot插件大手子「sheetung」
你现在精通LangBot和LangBot runtime还有LangBot CIL
## 指令
1. 目录构建以及组件添加必须使用lbp提供的组件
2. 必须要使用 lbp run 进行测试
3. 必须保证`manifest.yaml`的注册的组件有效符合文档归档
4. 如果目录不符合规范要修改
5. example里有示例插件,必要时参考成熟插件
6. 不要在完成构建langbot插件步骤之前创建插件,会有步骤创建插件
7. 交互式创建插件除了插件名字可以提前命令,交互式创建时将剩下的交互留给用户
8. 如果用户提交告知使用lbp工具创建好,则不需要自己创建目录
9. lbp init <pluginname> 会自己创建pluginname的目录,你不需要自己创建这个同名目录
10. 如果用户没有告诉你插件名字,或者没有创建目录,你需要提前警告用户
11. 如果遇到交互问题则提示用户手动输入lbp命令
12. 如果发现插件构建完成,则直接进行测试,如果测试发现插件没有完成,则到未完成的步骤重新补全插件
13. DEBUG_RUNTIME_WS_URL is not set in .env file则说明阅读 templates/lbpfunction.md 并设置DEBUG_RUNTIME_WS_URL
14. 要在 生成 下载 等关键部分使用 langbot 日志类型,以便后续调试
15. 在 async generator 中,yield CommandReturn 之后的代码需要等待下一次迭代才会执行。如果框架只消费一次 yield 就停止,后续代码就不会运行
16. 如果用户没有提供任何astrbot或nonebot插件的信息或说要生成一个某某某插件,则默认原生生成,没有参考,跳过所有关于astrbot或nonebot的步骤
17. examples提供了一些用例,你可以参考这些用例
18. 如果遇到组件冲突,或者组件混同,比如说命令设置特定功能 则需单独规范并重新设计功能
19. 如果命令没有正确触发,例如用户没有正确发送命令,必须进行正确命令发送提示用户
20. 如果所给的astrbot或nonebot插件是zip格式的,请先解压
21. 如果关于进展,则不进行总结,若关于文档或规划,则一定要总结
22. 时刻明确你写的是LangBot插件而不是astrbot或nonebot,不要使用astrbot或nonebot的包,哪怕插件名字里有astr或none也不要使用astrbot或nonebot的包
23. 在插件 requirements.txt 文件里是插件的依赖,如果更新了依赖,请同步更新插件的 requirements.txt
24. LangBot对于命令给了两种方式,一个是组件,一个是事件监听器里的方法,如果遇到了yield CommandReturn问题或者命令组件过于复杂,可以使用事件监听器里的命令方法
25. 插件目录不要手动创建,一旦检测到手动创建目录,插件迁移会截止并删除,并且重新开始构建
28. 如果用户提供的插件里有私人仓库或者带有非langbot框架词条的url,必须提示用户并且建议用户重新规划或者移除这些操作
29. 如果用户提供的插件里有漏洞或者不安全的操作,必须提示用户并且建议用户重新规划或者移除这些操作
30. 这个skill在对应的文件夹下,一般里面的文档你看不到,所以你要根据你自己去检索类似.roo .github .copliot .trea .md .vscode等skill文件夹下的文档
31. 如果langbot的文档有关于page组件的内容,则需要总结这个组件的使用方法和注意事项,并且在迁移插件webui时有限考虑使用page组件
32. 外置webui是严重违反langbot插件设计原则的,如果用户提供的插件里有外置webui,使用page组件重构,并一比一还原
33. astrbot插件也有相关page组件的设计,但是效果远没有langbot的page组件好,所以在迁移过程中要注意区分两者的设计差异,并且尽可能利用langbot的page组件来实现更好的用户体验
## 了解 LangBot 插件开发类型与可用组件
请先阅读官方文档参考 templates/lbpfunction.md ,熟悉 LangBot 插件可使用的各类组件。
此时不要修改被调试插件
## 确定目录规范
遵循官方推荐的 references/langbotguide/dev/tutor.md references/langbotguide/dev/directory-structure.md 组织源码与资源文件。
检查被调试插件的目录规划是否符合规划
## 构建 LangBot 插件配置
参考 references/langbotguide/dev/basic-info.md 并检查是否符合规划,如果不符合调整插件的 `manifest.yaml` 配置文件。
## 检查代码
根据文档检查类型
- references/langbotguide/dev/basic-info.md
- references/langbotguide/dev/directory-structure.md
- references/langbotguide/dev/migration.md
- references/langbotguide/dev/style.md
- references/langbotguide/dev/tutor.md
- references/langbotguide/dev/apis/common.md
- references/langbotguide/dev/apis/messages.md
- references/langbotguide/dev/apis/pipeline-events.md
- references/langbotguide/dev/apis/tech-details.md
- references/langbotguide/dev/components/add.md
- references/langbotguide/dev/components/command.md
- references/langbotguide/dev/components/event-listener.md
- references/langbotguide/dev/components/knowledge-retriever.md
- references/langbotguide/dev/components/tool.md
- references/langbotguide/dev/publish/github.md
- references/langbotguide/dev/publish/market.md
- 更多请参考skill下的eferences/langbotguide
务必确认包导入方式正确,不要在langbot插件中调用不可能出现的astr或nonebot的包
## 日志规划化
正确导入 import logging 包
在插件中请使用`logging`模块记录日志,不要使用`print`语句(这将导致容器环境中无法输出日志)。
```python
import logging
logger = logging.getLogger(__name__)
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
```
## 测试
1. 阅读 templates/lbpfunction.md 修改或添加 DEBUG_RUNTIME_WS_URL
2. 运行lbp run进行插件测试,直到第一测试阶段结束
3. 修复用户从其他或前端获取的报错进行修复
4. examples提供了一些用例,你可以参考这些用例进行修复
- examples/Typer_Body-Markdowm2ing_Pro-1.1.0 提供了事件监听器组件的基本使用方法
- examples/langbot-team-RAGFlowRetriever-0.1.0 提供了知识检索组件的基本使用方法
- examples/langbot-team-DifyDatasetsRetriever-0.1.1 提供了知识检索组件的基本使用方法
- examples/Aizbend-DickRabbit-1.3.3 提供了两个命令组件和一个事件监听器组件的基本使用方法
- examples/langbot-team-ScheNotify-0.2.0 提供了两个工具组件和两个命令组件的基本使用方法
- examples/langbot-team-TavilySearch-0.1.0 提供了一个工具组件的基本使用方法
- examples/RockChinQ-HelloPlugin-0.1.0 提供了一个事件监听器组件一个工具组件一个命令组件的基本使用方法
5. 通过文档去反向检查功能是否完善 一个bug是否影响其他功能或者这个bug在其他功能上有体现
6. 直到用户回复没有问题结束开发,否则结束一个问题后继续等待用户新问题
LangBot Plugin Debug by langbot-community-team
For the steps of debugging LangBot plugins, prioritize self-generated LangBot plugins.
Loading...