dsh-our-free-model 开发指南:内核接缝、inject 依赖注入与 3 个耗时的内核行为
dsh-our-free-model 开发指南内核接缝、inject 依赖注入与 3 个耗时的内核行为【免费下载链接】dsh-our-free-model在 dsh 里装上这个插件即可无需登录、注册或填 API Key就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型——完全免费不限量。 All you do is install this plugin in dsh: no login, no sign-up, no API key — the frontier models are just there, DeepSeek V4.1 Flash and Kimi K3 among them. Completely free, with no usage cap.项目地址: https://gitcode.com/gh_mirrors/ds/dsh-our-free-modeldsh-our-free-model 是 dsh 的免费模型插件装上即可使用 DeepSeek V4.1 Flash、Kimi K3 等前沿模型——无需登录、注册或 API Key完全免费不限量。这篇文章面向想给这个免费模型插件写代码的贡献者讲清插件坐在内核上的两个结构性决策内核接缝与inject 依赖注入并复盘 3 个真实消耗过调试时间的内核行为帮你少走弯路。整体架构一个适配器两条 provider 路由先建立全局认知。这个插件是纯挂载式不改内核、零依赖、无构建步骤同一份代码能同时跑在 dsh 0.1.5 与 0.1.7 两代内核上。目录分工如下位置职责index.jsHost 半身适配器注册、探测、存储、路由、转发端口、升级接线adapter/内核接缝全包唯一允许 import 内核模块的位置src/adapter.js结构性 LlmAdapterlistModels / resolveModel / stream 等src/messages.js消息投影到三种线协议 工具调用配对修复client.js浏览器半身设置页六个页面手写 bundle核心技巧是结构化实现鸭子类型内核从不执行 instanceof 检查因此插件不 import 具体内核类型、不锁定内核版本靠约定好的结构契约挂载。这一点对多内核版本兼容至关重要。内核接缝一行 grep 就能审计的依赖边界adapter/kernel.js 是全包唯一允许点名deepseek-ai/*模块的文件——这条生态打包规则adapter 层外不允许引用内核模块用一行 grep 即可审计。目前接缝上只承载一件事归因 User-Agent。设计上有两个值得借鉴的点窄类型声明——adapter/dsh-llm.d.ts 只声明接缝实际调用的那一个函数刻意比内核自身表面更窄类型检查就只检查这一小片。懒加载 降级——见 resolveAttributionUserAgent插件不锁定内核版本模块由宿主解析若当前 composition 供不出该模块就降级为一个字面量 User-Agent保证归因始终存在。 启示把「对内核的依赖」收敛到一个文件其余源码就变成纯消费者未来内核升级时改动面一目了然。inject 依赖注入三种服务访问方式插件与内核cordis 容器交互的核心是一张表——不同的服务访问方式不同缺失时的行为天差地别方式语义服务缺失时本插件用法inject [llm]硬依赖声明即待命整条 fiber 保持 PENDING模型车道唯一硬依赖ctx.get(name)机会式查找返回undefined不抛错connection、attachments 等可选服务ctx.inject(deps, cb)服务就绪后运行回调回调挂起等待就绪后执行webServer、credentials属性直读ctx.xxx读未声明服务的 mixin直接抛错不是 undefined禁用见下文行为 ③硬依赖声明在 index.js只有一行export const inject [llm]这是刻意的最小化llm是插件存在的全部理由其它任何服务都不许出现在顶层 inject 里——否则在无 HTTP 服务的极简 composition如 TUI中插件会因等待一个永不提供的服务而永久不激活。headless 环境宁可「有模型、没有设置页」也不能什么都没有。webServer 的正确打开方式独立 fiber 待命设置页路由挂在 webServer 上而浏览器半身总是在插件加载之后才发布 webServer。于是有两种读法两种结局❌apply时读一次ctx.get(webServer)→ 得到undefined→ 路由全部未注册 → 设置页没有数据源而 web server 正在用它自己的页面「服务」你✅ 用 ctx.inject 独立 fiber回调在 webServer 就绪前挂起自己的 fiber就绪后自动执行并注册路由且从不阻塞上面的模型车道。connection服务同理但它更微妙浏览器半身发布它也在插件之后所以插件逐请求查找而不是在 apply 时快照一次快照会让信任围栏在整个进程周期内退化为降级形态。3 个真实消耗过调试时间的内核行为以下三条来自 README.md 的开发者复盘编写 provider 插件时基本都会遇到① providerRetryPolicy() 的返回值会被「原样保存并使用」两代内核都不解析该返回值退避调度器直接读顶层的initialDelayMs / maxDelayMs / jitterRatio。如果把这些字段嵌套在backoff: {}里调度器读到undefinedundefined * 2ⁿ NaN而持久会话日志拒绝非有限数值——一个本可恢复的瞬时故障因此报废整轮对话。正确做法是返回已解析完毕的扁平策略见 providerRetryPolicy同时注意retryableCodes里刻意不含RATE_LIMIT429 的 retry-after 是递增的自动重试等于把同一回合付费三次。② 一次被中断的工具调用会永久污染该会话工具调用与结果之间被中断用户取消、进程崩溃会在持久历史里留下一条「没有对应结果的工具调用」。重放时上游返回400 invalid_request_error此后该会话的每一次请求都失败。插件的解法是在发送前统一修复配对三种线协议Chat / Messages / Responses共用同一处逻辑见 repairToolPairing。③ 未在 inject 中声明的服务属性直读抛错ctx.get() 却返回 undefined这是本轮踩过的两个坑的合流把 inject 缩减为仅剩llm后读ctx.intervaltimer 服务上的 mixin直接抛出cannot get property timer without inject——插件在所有 composition 中不再激活。修法后台循环改用普通 unref 定时器完全不碰未声明服务改用ctx.get(webServer)后得到undefined——原因不是缺服务而是加载顺序插件先于 web 半身。修法见上节ctx.inject(deps, callback)为该服务开一条独立 fiber 使其待命避免在加载瞬间做一次性判断。一句话总结硬依赖进 inject可选服务用 ctx.get 逐次读晚到服务用 ctx.inject 开 fiber 等待。验证不出网、不消耗额度的离线套件上述每个行为都有常驻断言守门改动后跑一条命令即可全量回归npm test套件守住的行为scripts/retry-safety-test.mjs退避策略可持久化、429 不再自动重试、usage 计数scripts/picker-test.mjs选择器只广播可用模型、401 信任围栏scripts/tui-test.mjs无 web server 的 composition 中插件照常启动scripts/speed-stat-test.mjs任何一次调用不被平均成虚假的 tok/s全部离线不出网、不消耗免费额度共享测试脚手架会把两条免密来源默认指向已关闭的本机端口。用量看板数据留在本机布局修复有对照统计只落在本机stats.json。早期看板有一处纯视觉问题——Token 热力图格子间距过大、无法按周对齐修复后呈现连贯的贡献图谱观感对应 issue #11布局本身已是列优先周对齐只需 gap 归零与圆角收小开发者速查清单✅ 内核 import 只进 adapter/其余源码保持纯结构消费者✅ 顶层inject只声明llm其余服务全部「可选」✅ 晚到的服务webServer 等用ctx.inject独立 fiber不在 apply 时做一次性快照✅ 重试策略返回扁平的完整对象字段别嵌套✅ 发送前跑一遍工具配对修复覆盖三种线协议✅ 每个修复配一条离线断言用 npm test 防回归掌握内核接缝与 inject 的分层思路、避开这三个内核行为的陷阱你就能在这个免费模型插件上安全地做二次开发。更多背景见 README.md 的「实现结构」与「已知边界」两节。【免费下载链接】dsh-our-free-model在 dsh 里装上这个插件即可无需登录、注册或填 API Key就能使用包括 DeepSeek V4.1 Flash、Kimi K3 在内的前沿模型——完全免费不限量。 All you do is install this plugin in dsh: no login, no sign-up, no API key — the frontier models are just there, DeepSeek V4.1 Flash and Kimi K3 among them. Completely free, with no usage cap.项目地址: https://gitcode.com/gh_mirrors/ds/dsh-our-free-model创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

基于YOLOv8的手势识别实战:从数据集到部署的完整指南

基于YOLOv8的手势识别实战:从数据集到部署的完整指南

简介:基于YOLOv8的手势识别应用包,面向深度学习、图像识别方向的开发者与学生,解决人机交互、自动驾驶、虚拟现实等场景中手势动作快速识别的问题。YOLOv8作为YOLO系列最新版本,在保证实时检测速度的同时提升了精度,特…

2026/10/9 13:33:22 阅读更多 →
EMC必须认识的几种EMI频谱

EMC必须认识的几种EMI频谱

摘要:本文面向EMC行业的FAE和工程师,介绍五种常见EMI频谱的识别方法,包括电源包络、CLK时钟尖峰、电机杂波、PWM脉冲尖峰和高频信号包络,并给出对应的滤波优化方案。 对于刚接触或者从事 EMC 行业的 FAE 或者工程师,经…

2026/10/9 13:32:21 阅读更多 →
金吧台台球管理系统V:本地化场馆运营中枢部署指南

金吧台台球管理系统V:本地化场馆运营中枢部署指南

简介:金吧台台球管理系统V是一款面向中小型台球厅经营者及IT运维人员的商用级信息化管理软件,聚焦解决人工排桌低效、会员留存困难、库存损耗难控、财务对账繁琐等实际运营痛点。资源包共158个文件,含10个可执行程序(exe&#xff…

2026/10/9 13:32:21 阅读更多 →

最新新闻

工资管理系统数据库设计:从课程作业到企业级HR建模

工资管理系统数据库设计:从课程作业到企业级HR建模

简介:本资源是一份面向高校信息管理与信息系统专业本科生的数据库课程设计报告,聚焦工资管理系统的全流程数据库设计与实现,帮助学习者掌握从需求分析到运行维护的完整工程实践能力。报告严格遵循数据库设计规范,系统覆盖引言、需…

2026/10/9 14:06:10 阅读更多 →
Cursor不能白嫖还不安全:DeepSeek V3+Cline,最强国产双开源解决方案

Cursor不能白嫖还不安全:DeepSeek V3+Cline,最强国产双开源解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 14:06:09 阅读更多 →
SQL Server脚本导出导入工具:C# SMO实现跨环境数据库迁移

SQL Server脚本导出导入工具:C# SMO实现跨环境数据库迁移

简介:C#实现的SQLSERVER脚本导出导入工具,面向需要在SQL Server数据库间迁移结构或数据的开发人员与运维人员。其核心功能与SQL Server 2014 Management Studio的“生成脚本”操作相似,可代替手工逐表操作,提升数据库备份与还原脚…

2026/10/9 14:06:09 阅读更多 →
MySQL后台注入靶场源码搭建与SQL手工注入实战全流程

MySQL后台注入靶场源码搭建与SQL手工注入实战全流程

简介:这套MySQL后台注入靶场源码,是一份面向Web安全学习者与渗透测试初学者的漏洞环境搭建包。它基于常见的PHPMySQL技术栈,构建了一个带完整后台的网站,可用于练习SQL注入漏洞的发现、利用与基础加固。资源共844个文件&#xff0…

2026/10/9 14:06:08 阅读更多 →
Python ai-html-parse 包实战案例与常见错误

Python ai-html-parse 包实战案例与常见错误

1. 引言在 Python 爬虫与数据清洗领域,解析 HTML 是绕不开的核心环节。虽然 BeautifulSoup、lxml 等老牌库功能强大,但面对结构复杂、属性繁多的现代网页,开发者往往需要编写大量样板代码。ai-html-parse 正是为解决这一痛点而生的新一代 HTM…

2026/10/9 14:05:07 阅读更多 →
DAY7 CSS184-196

DAY7 CSS184-196

DAY1→HTML1-29 DAY2→HTML29-53 DAY3→HTML&CSS53-79 DAY4→CSS79-108 DAY5→CSS108-133 DAY6→CSS133-147&182-183 61.伸缩盒模型 (一)简介 (1)轻松控制元素分布方式,元素对齐方式,元素视觉顺序…

2026/10/9 14:05:07 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →