前言¶
DeepSeek Harness(DSH)新会话的默认首屏标题是「Into the Unknown」或中文的「探索未至之境」。它只是占位,没有承载任何信息。如果想让会话开始时就有一些更贴近当前环境、更有人情味的引导,就需要一个能自动生成问候语的机制。
dsh-welcome-greeting 就是为此设计的插件。它把这句固定的占位标题替换成一句由当前会话所选模型生成的短问候。模型只拿到本地时间、城市和天气,根据这些信息写一句侧面关心的「情话」,不直接点名城市或报温度。
这是什么¶
dsh-welcome-greeting 是一个 DSH 插件,维护者为 suyunxing。它属于「模型推理」类别。插件负责在用户开始新会话时,自动把首屏标题从固定文案换成一句由模型生成的问候。
核心目标:让新会话的入口更有人味,同时尽量减少对模型和系统的额外开销。
核心功能¶
- Host 半:获取地点和天气,再请求模型生成问候。
- 地点:先通过 IP 定位,依次尝试 ipinfo.io、get.geojs.io、ipwho.is,获取公网 IP;再用 Open-Meteo 的地理编码服务把 IP 转成中文城市名。
- 天气:调用 Open-Meteo 获取当前天气,无需 API 密钥。
- 请求模型:只发一条 user 消息和一条简短的 system 提示词,不带工具定义、对话历史、DSH 系统提示词,并取模型声明的最低推理强度。这样能最小化调用开销。
- Client 半:把模型生成的问候渲染到首屏标题。
- 在模型返回之前,或者没有模型可用时,先显示一个基于本地时间的问候加一句关怀语,保证首屏不会空着。
- 通过样式表注入,不替换或重新注册任何 DSH 插槽。
- 缓存与容错:
- 生成的句子会根据「小时 + 天气代码 + 四舍五入后的温度」进行缓存,避免长对话重复调用模型。
- 调用失败时会在 5 分钟内回退到本地问候。
安装与启用¶
插件通过 DSH 的插件命令安装。在终端中执行:
dsh plugin --profile <your-profile> add dsh-welcome-greeting
安装后,需要重载 DSH 窗口,让客户端样式生效。
配置项¶
所有配置项都写在你的 profile 的 cordis.patch.yml 文件中:
- insert:
- id: welcome-greeting
name: 'dsh-welcome-greeting'
config:
city: '' # 空字符串 = 从公网 IP 检测
latitude: null # 同时设为 null 以跳过 IP 检测
longitude: null
timezone: '' # 空字符串 = 让 Open-Meteo 根据坐标判断时区
useLlm: true # false = 仅使用本地模板,不调用模型
llmProvider: '' # 空字符串 = 使用新会话默认模型
llmModel: ''
greetingSystem: '' # 空字符串 = 使用内置女友语气提示词
greetingAsk: ''
greetingMaxChars: 22
greetingMaxTokens: 120
greetingMinutes: 60 # 生成句子缓存时长
refreshMinutes: 15 # 地点和天气缓存时长
showCity: false # true 时在标题末尾追加 "城市 · 天气 16°C"
showWeather: false
showTemp: false
修改完 cordis.patch.yml 后,在 DSH 中重载插件即可生效。
典型用法¶
- 默认模式:
useLlm: true,插件会自动获取地点和天气,并调用模型生成一句问候。你只需要正常开始新会话,首屏标题会自动变成一句由模型写的短句。 - 仅本地模板:把
useLlm设为false,插件会完全跳过模型调用,只使用本地模板,适合不想消耗额外 token 的场景。 - 自定义模型:在
llmProvider和llmModel中指定模型,插件会使用你指定的模型生成问候。
适用场景与注意¶
- 适合希望在新会话开始时获得更贴近当前环境、更有人情味引导的开发者或用户。
- 插件以当前 DSH 进程的权限运行,建议在安装前检查源码和许可证(MIT)。
- 依赖的 IP 定位和天气服务在 README 中有说明,无需额外注册密钥。
- 如需自定义提示词或控制输出长度,可通过
greetingSystem、greetingAsk、greetingMaxChars、greetingMaxTokens等配置项调整。
短结尾¶
dsh-welcome-greeting 把固定的「探索未至之境」变成一句由当前模型生成的短问候,让新会话的入口更有温度。更多信息可以访问插件目录页或 GitHub 仓库查看。