前言¶
在 DeepSeek Harness(DSH)裏做對話智能體,常見做法是讓用戶上傳圖片,或讓模型直接輸出圖片 URL。前者依賴模型的圖片輸入能力,後者容易觸發准入檢查,且氣泡裏未必能穩定配圖。若希望「界面是圖、模型讀寫文字」,需要一套把表情索引、發送約定和前端渲染串起來的機制。
dsh-meme(原 dsh-expression)是維護者 yyh-001 發佈的 DSH 表情包插件,歸類爲「趣味換裝」。它在 GitHub 上有 54 stars、4 forks,已發佈到 npm,MIT 許可。下面介紹它解決什麼問題、如何安裝,以及日常怎麼用。
這是什麼¶
dsh-meme 是 DeepSeek Harness 的表情包插件,定位可以概括爲「找得到、發得出、學得會」:
- 模型通過
send_meme按情緒桶抽候選,把[表情: 描述]寫進回覆;前端在對話氣泡裏按描述配圖。 - 用戶可在輸入框點 😊,像 QQ/微信 一樣從懸浮面板選圖直接發出。
- 用戶說「入庫」時,
learn_meme可收錄最近一張附件並自動識別分類與描述。 - 設置頁管理圖庫、上傳編輯、導出導入 ZIP,內置兩套圖庫開箱可用。
插件僅依賴 node:sqlite,無其他第三方運行時依賴。內部插件 id 仍爲 dsh-expression,與舊包名兼容。
核心功能¶
純文本 token 發圖¶
界面顯示錶情圖片,模型收到和寫出的是 [表情: 描述],不帶網址、不寫成 markdown 圖片。這樣不觸發 DSH 圖片准入檢查;Think、軌跡、工具卡保持純文字,只有對話氣泡配圖。引號差異("" / "")會在匹配前摺疊。
按情緒抽圖¶
send_meme 從六個情緒桶隨機抽取若干張 caption 供模型挑選:
| 桶名 | 含義 |
|---|---|
happy |
開心、賣萌、可愛、喜歡 |
angry |
生氣 |
sad |
難過、無語、求饒 |
shy |
害羞 |
confused |
困惑、驚訝 |
daily |
日常(睡覺、上班、早上好等) |
不滿意可換情緒或同一 tag 再搜一批。
AI 自動學圖¶
learn_meme 默認收錄用戶最近一張附件(不必填 attachment id),也可傳 attachmentId 或 imageUrl。自動識圖依賴當前默認模型是否支持圖片輸入;不支持時可手動指定 tag 與 caption。
圖庫管理與切換¶
默認內置兩套圖庫,無需配置即可使用:
- official-001(官方表情包 1 號,92 張)——開箱默認
- dafeiyu-001(大肥魚,49 張鯨魚娘 chibi)
設置頁「當前圖庫」下拉可切換。插件掃描內置 memes/* 以及「掃描目錄」(默認 ~/.dsh/meme-packs)下帶 index.db 的子文件夾;導入 ZIP 會放進掃描目錄並立刻切換。配置保存在 ~/.dsh/dsh-expression.json,升級插件不丟。
設置頁還支持:改掃描路徑、導出/導入圖庫 ZIP、上傳與編輯(分類/描述/關鍵詞)、分類中文顯示與篩選。
輸入框一鍵發圖¶
會話輸入框左側 😊 按鈕打開懸浮面板,可搜索或瀏覽縮略圖,點選即發出 [表情: 描述],無需模型代勞。
安裝與啓用¶
已發佈到 npm(包名 dsh-meme,當前版本 0.1.39),一行裝進任意 DSH profile(例如 ~/.dsh/profiles/web/):
dsh plugin --profile web add dsh-meme
# 等價於:
pnpm add dsh-meme
舊包名 dsh-expression 已棄用,請改用 dsh-meme。
也可從 GitHub 或本地安裝:
pnpm add github:yyh-001/dsh-meme
# 或
pnpm add file:/path/to/dsh-meme
要求 Node.js >= 20。pnpm 對新包有默認約 24 小時的安全期,剛發佈的版本可能被靜默回落到舊版;急用可在 pnpm-workspace.yaml 的 minimumReleaseAgeExclude 里加上 dsh-meme。
社區目錄頁:SkillHub — yyh-001/dsh-meme。SkillHub 是獨立社區站點,與 DeepSeek / 幻方無官方從屬關係。
典型用法¶
裝完後,用戶用自然語言要圖,模型走工具鏈即可:
用戶: 發個無語的表情包
模型: send_meme tag=sad → 隨機若干張 caption → 把 [表情: …] 貼進回覆
前端: 按描述配圖,對話裏顯示爲表情
模型側常用調用:
send_meme tag=sad limit=8 # 難過桶隨機 8 張,挑一行貼進回覆
send_meme tag=happy # 開心/賣萌
learn_meme # 收錄最近一張用戶圖
learn_meme imageUrl="https://…" # 收錄任意圖片 URL
給模型的三條約定(完整說明見 send_meme 工具描述):
- 把候選裏的
[表情: 描述]整段原樣寫進回覆,不要加網址、不要改成 markdown 圖片。 - 沒命中就換情緒或迴文字,別硬發。
- 發完保持簡短,讓圖自己說話——不復述、不描述圖的內容。
分享與擴展圖庫¶
發給朋友: 設置頁導出圖庫得到 dsh-meme-pack-日期.zip,對方在設置頁導入即可自動切換。須用插件導出的 ZIP;GitHub 倉庫頁的「Download ZIP」是源碼壓縮包,導入會失敗。
掛到宣傳頁: 解壓導出包(含 index.db、manifest.json、memes/),新建 GitHub 倉庫放入根目錄,加 previews/ 放 6–12 張縮略圖,倉庫 Topics 加上 dsh-meme-pack。宣傳頁:yyh-001.github.io/dsh-meme。
可與 dsh-companion 等人設、記憶、消息通道插件組合使用;發圖能力由 dsh-meme 提供。
適用場景與注意¶
適合誰: 希望在 DSH Web 對話裏穩定發表情、用純文本 token 繞開圖片准入、或需要本地圖庫管理與學圖入庫的開發者與用戶。
使用前注意:
- 插件以當前 DSH 進程權限運行,安裝前應檢查 源碼 與 MIT 許可證。
learn_meme自動識圖依賴模型圖片輸入能力。- 內置
official-001上游 anka-afk/astrbot-meme-pack-official-01 未提供顯式 LICENSE;個人默認使用無妨,公開再分發請保留manifest.json中的來源標註。 - 磁盤上仍有細粒度 tag(如
baka、sleep),模型側主要認六個情緒桶;caption 對不齊時前端會摺疊引號後再匹配。
反饋與交流:QQ 羣 993579665。
小結¶
dsh-meme 把表情包索引、發送約定和前端渲染接到 DSH 上:模型寫 [表情: 描述],用戶也能 😊 點選發圖,還能入庫擴充圖庫。零第三方依賴、內置兩套圖庫、設置頁可切換與分享,適合需要「像聊天軟件一樣鬥圖」的 Harness 場景。