OracleLang

OracleLang

ydzat / OracleLang
Plugin400 downloadsCommand1Event Listener1Page1entertainmentai

Liu Yao divination plugin using traditional San Qian Fa (coin toss method). Simulates 6 coin tosses to generate hexagrams with professional interpretations.

OracleLang 六爻算卦插件

Version

OracleLang 是一个基于传统六爻占卜原理的算卦插件,为 LangBot 平台开发。使用传统的三钱法起卦,模拟投掷硬币生成卦象,并提供专业的卦象解读。

更新日志

4.0.0 (2026-06-02)

  • 重大更新: 升级到 LangBot SDK 0.3.11,命令触发改为自然语言 算卦
  • 新增: EventListener 组件支持自然语言触发(无需命令前缀)
  • 新增: WebUI 管理面板,展示使用统计
  • 新增: 内置 Markdown → 图片渲染(pillowmd),无需额外插件
  • 新增: 私聊和群聊的算卦限额/历史记录独立追踪
  • 新增: MarkdownFormatter 模块(src/formatter.py),支持完整卦象渲染
  • 变更: 输出格式改为「文字/图片」可选,默认图片
  • 变更: 深度思考模型(DeepSeek-R1 等)兼容,自动剥离推理内容
  • 变更: 命令路由改用 SDK 原生 name="*" catch-all 模式
  • 变更: 所有回复使用 Markdown 格式(标题、代码块、粗体)
  • 变更: 用户标识加入 {launcher_type} 前缀
  • 变更: LLM 默认超时设为 120 秒
  • 变更: 旧 display_style 值自动迁移为图片模式
  • 修复: 双回复问题(prevent_default 阻止主 pipeline)
  • 移除: src/config_validator.py(验证逻辑内联到 main.py)
  • 移除: set 子命令(limit.py 中不存在对应方法)

3.1.0 (2026-02-23)

  • 修复:卦名显示顺序修正(上卦在前,下卦在后)
  • 新增:七级吉凶判断(大吉、吉、小吉、平、小凶、凶、大凶)
  • 优化:LLM 提示词改进,解读更加具体实用
    • 直接回答用户问题,不再泛泛而谈
    • 给出可执行的具体建议
    • 结合动爻爻辞进行针对性分析

3.0.0 (2026-02-23)

  • 重大重构:简化为纯六爻三钱法起卦
  • 移除:文本起卦、数字起卦、时间起卦等方式
  • 新增:完整的起卦过程展示(显示每次投掷结果)
  • 新增:动爻标记(⚡)清晰展示
  • 改进:更符合传统六爻占卜的起卦方式
  • 改进:输出格式优化,展示投掷过程

2.1.0 (2025-11-07)

  • 重大改进:LLM 集成重构,使用 LangBot 4.0 内置 LLM API
  • 移除:不再需要单独配置 LLM API 密钥
  • 简化:配置项从 6 个减少到 1 个(llm_enabled)

2.0.0 (2025-11-06)

  • 重大更新:迁移到 LangBot 4.0 插件系统
  • 新增:使用新的组件化架构(manifest.yaml + components)

1.0.0 (2025-04-24)

  • 首次发布

系统要求

  • LangBot 4.0 或更高版本
  • Python 3.11+

安装

方法一:从 GitHub 安装(推荐)

  1. 打开 LangBot WebUI
  2. 进入「插件」页面
  3. 点击「从 GitHub 安装」
  4. 输入仓库地址:https://github.com/ydzat/OracleLang
  5. 选择版本并安装

方法二:手动上传

  1. Releases 下载最新的 .lbpkg 文件
  2. 在 LangBot WebUI 插件页面上传安装

功能特点

  • 传统三钱法起卦:模拟投掷3枚硬币,共6次,生成六爻卦象
  • 完整起卦过程展示:显示每次投掷的硬币结果和爻的性质
  • 动爻标记:清晰展示老阳、老阴等动爻
  • 专业卦象解读:提供卦辞、爻辞和整体解释
  • LLM 增强解读:可选使用大语言模型提供更深入的个性化解读
  • 历史记录:查询个人的算卦历史(私聊和群聊记录独立追踪)
  • 使用限制:每日限额管理,防止过度依赖(私聊和群聊限额独立计算)
  • Markdown 输出 + 图片渲染:内置 pillowmd 渲染引擎,将 Markdown 格式回复实时渲染为精美图片。也可切换为纯文字模式。
  • WebUI 管理面板:在 LangBot WebUI 中查看使用统计和系统状态

三钱法原理

三钱法是传统六爻占卜的经典起卦方式:

每爻投掷3枚硬币,根据正反面数量决定爻的性质:

● 正面  ○ 反面

●●● (3正) → 老阳(9) → 阳爻,动爻 ⚡
●●○ (2正) → 少阳(7) → 阳爻
●○○ (1正) → 少阴(8) → 阴爻
○○○ (0正) → 老阴(6) → 阴爻,动爻 ⚡
  • 老阳/老阴:为动爻,在变卦中会变化(阳变阴、阴变阳)
  • 少阳/少阴:为静爻,不发生变化

使用方法

基本用法

直接发送消息即可:

算卦 <您的问题>

示例:

算卦 我今天的工作运势如何?
算卦 近期是否适合投资?
算卦 我与TA的缘分怎样?

查看帮助

算卦 help

查看历史记录

算卦 history

查看用户ID

算卦 myid

管理员命令

!算卦 reset <用户ID>   # 重置用户今日使用次数
!算卦 stats            # 查看系统使用统计

普通用户直接输入 算卦 即可使用。管理员命令以 !算卦 前缀触发。

输出示例

插件内置 pillowmd 渲染引擎,算卦结果自动渲染为精美图片。也可在配置中切换为纯文字模式。

图片模式(默认):

(算卦结果以图片形式展示,包含标题、卦象、解读、吉凶判断、建议等)

文字模式:

📝 问题: 我今天的工作运势如何?

🎲 起卦过程:
  初爻: ●●○ → 少阳(7)
  二爻: ●○○ → 少阴(8)
  三爻: ●●● → 老阳(9) ⚡
  四爻: ○●● → 少阳(7)
  五爻: ○○○ → 老阴(6) ⚡
  上爻: ●○● → 少阳(7)

━━━━━━  原卦        ━━━━━━  变卦
━ ━ ━               ━ ━ ━
━━━━━━      →       ━ ━ ━  ⚡
━━━━━━              ━━━━━━
━ ━ ━               ━ ━ ━
━ ━ ━               ━ ━ ━
━━━━━━              ━ ━ ━  ⚡

📌 卦象: 天火同人 → 地水师
✨ 卦辞: 同人于野,亨。利涉大川,利君子贞。
🔄 动爻:
  三爻:伏戎于莽,升其高陵,三岁不兴。
  五爻:同人先号咷而后笑,大师克相遇。
🎯 吉凶: 小吉
📜 解释: [针对问题的具体解读]
💡 建议: [可执行的具体建议]

今日剩余算卦次数: 2/3

配置说明

在 LangBot WebUI 的插件配置页面可修改以下选项:

配置项说明默认值
每日算卦次数限制每位用户每天最多算卦次数3
每日重置时间重置使用次数的时间点(0-23)0
启用大模型解释使用 LLM 提供增强解读true
大语言模型选择用于解读的 LLM 模型(留空则自动选择)
输出格式图片 / 文字图片
时区用于日期计算的时区Asia/Shanghai
管理员用户ID拥有管理权限的用户ID列表[]

常见问题

1. 为什么每次算卦结果不同?

三钱法是随机起卦,每次投掷硬币的结果都是随机的,因此每次算卦会得到不同的卦象。这符合传统占卜的原理——"诚心求卦,卦应心生"。

2. 什么是动爻?

动爻是指老阳(三个正面)或老阴(三个反面)的爻。动爻在变卦中会发生变化:老阳变阴爻,老阴变阳爻。动爻往往是解卦的重点。

3. LLM 解释不工作?

  • 确保在 LangBot 中已配置 LLM 模型
  • 插件会自动使用第一个可用模型
  • 如果没有配置模型,会使用传统解释(不影响基本功能)

4. 如何成为管理员?

在插件配置的「管理员用户ID列表」中添加您的用户ID。可通过 算卦 myid 查看ID。

技术架构

OracleLang/
├── main.py                 # 插件主类(含配置验证逻辑)
├── manifest.yaml           # 插件配置清单
├── components/
│   ├── commands/
│   │   ├── suangua.py      # 命令处理器(管理员命令)
│   │   └── suangua.yaml    # 命令配置
│   ├── event_listener/
│   │   └── suangua.py      # 事件监听器(自然语言触发)
│   └── page/
│       └── index.py        # WebUI 管理面板
├── src/
│   ├── calculator.py       # 三钱法卦象计算
│   ├── interpreter.py      # 卦象解释器
│   ├── glyphs.py           # 卦象渲染(3种风格)
│   ├── formatter.py        # Markdown 格式化输出
│   ├── history.py          # 历史记录(launcher_type 感知)
│   ├── limit.py            # 使用限制(launcher_type 感知)
│   └── data_constants.py   # 64卦映射表、八卦、Unicode符号
├── data/
│   └── static/
│       ├── hexagrams.json  # 卦象详细数据(运行时生成)
│       └── hexagrams_complete.json  # 完整数据源
└── .github/workflows/
    └── release.yml         # CI/CD 自动打包发布

反馈与支持

如有问题或建议,请提交 GitHub Issues

许可证

本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可证开源。

  • 您可以自由使用、修改和分发此软件
  • 如果您修改了本软件并在网络上提供服务,您必须公开修改后的源代码
  • 任何修改版本必须使用相同的许可证

Copyright (C) 2023-2026 @ydzat

Use OracleLang in Feishu/Lark bots, DingTalk bots, WeCom bots, WeChat bots, QQ bots, Slack bots, Discord bots, Telegram bots, LINE Bots, and Matrix Bots.

Host your bot on LangBot Cloud and connect this extension to the collaboration platforms your team already uses.

Open LangBot Cloud

Comments