资讯动态

AIRI 接入 LM Studio:本地大模型配置、自动校验与 Consciousness 模块联动解析

发布时间:2026/10/16 2:30:32 来源:尧图企业网站定制
人工智能AI AgentMCP 服务工具调用GUI 自动化语音数字人交互助手【免费下载链接】airi 自托管、归你拥有的 Grok 风格 AI 伴侣与 waifu / 赛博生命灵魂容器目标是接近 Neuro-sama 的高度支持实时语音聊天、Minecraft 和 Factorio 游玩支持 Web / macOS / Windows。项目地址https://gitcode.com/moeru-ai/airi点击查看免费下载本文基于 AIRI 仓库的官方文档 docs/content/en/docs/manual/config/providers/consciousness/lm-studio.md 与packages/provider-inference的实际源码讲解如何把本地 LM Studio 服务配置为 AIRI 的 Chat 模型提供方从启动本地服务、跨设备网络与 CORS 配置到 AIRI 设置页的填写、自动校验与 Ping API 的底层校验链路最后覆盖模型选择接入 Consciousness 模块和常见故障排查。读完本文你可以在自己的设备上完整跑通本地模型 AIRI链路并理解 AIRI 是如何在源码层面校验与接管这一配置的。LM Studio 在 AIRI 中的定位LM Studio 可以在本机运行模型并以 OpenAI 兼容的 API 形式对外提供服务。文档给出的核心结论是它适合希望在自己设备上运行模型、自行管理模型文件的用户默认情况下不需要 API Key。从源码结构看AIRI 把 LM Studio 归入本地local提供方家族。在 提供方注册表入口 中providerLmStudio与providerOllama、浏览器 Web Speech API 等并列注册进portableProviderDefinitions列表约第 140 行供各运行时宿主加载。它的元信息展示名称、描述文案来自 i18n 词条 settings.yamltitle: LM Studio、description: lmstudio.ai。AIRI 中实际存在两个基于 LM Studio 的设置页Chat对应 Consciousness 模块chat/lm-studio.vueprovider id 为lm-studio本文主线Visionvision/lm-studio.vueprovider id 为vision-lm-studio配置方式与前者一致仅验证通过后的跳转目标改为/settings/modules/vision。第一步启动 LM Studio 本地服务按照文档的操作步骤执行从 LM Studio 官方下载页安装并打开 LM Studio下载并加载一个chat 模型对话类模型而非纯 embedding 模型打开 LM Studio 的Local Server标签页点击启动本地服务器如果 AIRI 与 LM Studio 运行在不同设备上需要在 LM Studio 中启用Serve on Local Network或将服务器绑定到非回环non-loopback地址此时在 AIRI 中填写的是LM Studio 所在设备的局域网LAN地址而不是localhost如果浏览器因 CORS 拦截请求在 LM Studio 的 Server Settings 中勾选Enable CORS。注意文档特别强调CORS 解决的是跨域许可问题它既不提供网络可达性也不提供任何认证。::: warning 网络安全 不要将 LM Studio 服务器暴露到公网仅在可信的局域网中使用。 :::第二步在 AIRI 中配置打开Settings → Providers → Chat → LM Studio保留默认 Base URLhttp://localhost:1234/v1/如果服务在另一台设备上把localhost替换为该设备的 LAN 地址如果 LM Studio 服务开启了鉴权填写 API Key否则留空。这一页的组件实现见 chat/lm-studio.vue。其中baseUrl是一个 computed 属性直接读写 Pinia 中providers[lm-studio].baseUrl第 22–29 行输入框的 placeholder 就是http://localhost:1234/v1/第 63 行。页面本身不写任何硬编码的服务端逻辑只负责绑定凭据并渲染校验结果——真正的默认值与校验规则全部下沉到 provider 定义中见下节。源码深潜lm-studio provider 的定义LM Studio 的 provider 定义位于 packages/provider-inference/src/providers/local/lm-studio/index.ts是理解哪些字段、哪些默认值、哪些校验的权威来源。配置 SchemaAPI Key 可选Base URL 有默认值const lmStudioConfigSchema z.object({ apiKey: z .string(API Key) .optional(), baseUrl: z .string(Base URL) .optional() .default(http://localhost:1234/v1/), })index.ts#L8-L16两点与文档严格对应apiKey是optional的——这就是文档说默认不需要 API Key的源码依据baseUrl带zod 默认值http://localhost:1234/v1/——设置页里保留默认 Base URL并非 UI 占位文案而是 schema 层面的默认值。能力注册chat 任务 三类 Provider 的合并export const providerLmStudio defineProviderLMStudioConfig, lm-studio({ id: lm-studio, order: 3, name: LM Studio, tasks: [chat], // ... createProvider(config) { return merge( createChatProvider({ apiKey: config.apiKey, baseURL: config.baseUrl! }), createEmbedProvider({ apiKey: config.apiKey, baseURL: config.baseUrl! }), createModelProvider({ apiKey: config.apiKey, baseURL: config.baseUrl! }), ) },index.ts#L20-L50createProvider把同一组apiKey/baseURL合并进 Chat、Embed、Model 三个能力说明 LM Studio 端点同时承担聊天生成与模型列表查询而tasks: [chat]决定了它出现在Providers → Chat分组下这正是文档菜单路径的来源。apiKey为undefined时由底层 HTTP 客户端自行省略 Authorization 头因此空 Key 完全合法。校验机制自动验证与 Ping API 的完整链路文档Verify configuration一节说AIRI 在你编辑配置时会自动校验如果出现了Ping API按钮可以用它发起一次真实请求测试。这段体验对应两段源码。自动校验为什么默认跳过 chat ping自动校验逻辑在 use-provider-validation.ts。一个值得注意的细节// Settings pages always skip chat ping check during automatic validation // to avoid unexpected API billing. Users can trigger it manually. const validationResult await providersStore.validateProviderConfig(providerId, configToValidate(), { skipChatPingCheck: true, })自动校验跳过 chat ping是出于避免云端 API 产生意外计费的考虑——对 LM Studio 这类本地免费服务没有计费问题但这一策略对所有 provider 统一生效所以文档才保留手动Ping API按钮。手动测试走runManualTest()第 163–175 行以onlyChatPingCheck: true发起一次真实对话请求。自动校验成功时composable 还会调用markProviderAdded(providerId)其注释明确点出了 LM Studio 这一场景// When a provider validates successfully on its settings page, // mark it as added so it appears in the model selector (e.g. Consciousness module). // This fixes providers like LM Studio that use default config and may not // need an API key, yet should be selectable after successful validation. if (isValid.value) { providerStore.markProviderAdded(providerId) }第 140–146 行也就是说只要验证通过哪怕你没填任何 Key该 provider 就会出现在模型选择器中供 Consciousness 模块选用。三级校验器check-config、Connectivity、ModelList、ChatCompletionsLM Studio 的validators直接复用 AIRI 的 OpenAI 兼容校验工厂index.ts#L52-L68validators: { ...createOpenAICompatibleValidators({ checks: [ProviderValidationCheck.Connectivity, ProviderValidationCheck.ModelList, ProviderValidationCheck.ChatCompletions], skipApiKeyCheck: true, schedule: { mode: interval, intervalMs: 15_000, }, // connectivityFailureReason / modelListFailureReason: 生成带排查指引的失败文案 }), },createOpenAICompatibleValidators的实现位于 validators/openai-compatible.ts四个校验点与文档中Validate configuration的实际行为一一对应校验触发方式实际动作源码依据check-config编辑时自动校验 Base URL 为必填且是绝对 URLskipApiKeyCheck: true时不要求 API Key第 229–260 行Connectivity自动15s 间隔轮询向{baseUrl}/models发 GET 请求10 秒超时HTTP ≥500 或网络异常判为失败第 262–311 行ModelList自动15s 间隔拉取模型列表若为空则报 no models found第 340–369 行ChatCompletions手动 Ping API用第一个可用模型发送一条内容为ping的消息max_tokens: 16做最小化探测第 121–181 行结果有缓存与互斥锁避免并发重复探测schedule.mode: intervalintervalMs: 15_000解释了 UI 上编辑配置时持续自动校验的轮询节奏凭据变化会触发防抖重校验同时 provider 端按 15 秒间隔保持心跳式检查。另一个细节validationRequiredWhen的定义是!!config.baseUrl?.trim()第 52–54 行即 Base URL 非空才需要校验由于 schema 自带默认值打开该页几乎总是满足校验前置条件校验器会立即开始工作。验证通过后接入 Consciousness 模块文档Select Model →一步的源码对应设置页底部的ProviderValidationAlerts组件回调ProviderValidationAlerts :is-validisValid ... :on-go-to-model-selection() router.push(/settings/modules/consciousness) /chat/lm-studio.vue#L67-L78即点击后跳转到Settings → Modules → Consciousness路由/settings/modules/consciousness页面为 consciousness.vue在那里从下拉列表选择你已加载到 LM Studio 的模型。由于前文提到的markProviderAdded机制验证成功的lm-studio已自动出现在可选 provider 中。故障排查Troubleshooting文档给出的排查要点结合源码可进一步精确化确认 Local Server 正在运行且端口与 Base URL 一致。默认端口 1234如果你改过 LM Studio 的端口Base URL 必须同步修改。Connectivity 校验失败时AIRI 会在 UI 直接展示一段带操作指引的错误文案来源是 provider 定义里的connectivityFailureReasonindex.ts#L63-L64其中已经写明到 LM Studio 的Local Server标签点击Start Server跨设备场景确认 Base URL 使用的是 AIRI 设备可路由到的LAN 地址而非localhost并在 LM Studio 中启用Serve on Local Network。从源码结构看localhost写死后只会访问本机这正是另一台设备连不上的头号原因CORS 拦截Connectivity 探测走的是浏览器fetchopenai-compatible.ts#L275-L282跨源请求会被浏览器按 CORS 策略处理表现为网络错误。按错误文案提示在 LM Studio 的 Server Settings 中勾选Enable CORS。再次强调CORS 开关不解决根本连不通的问题要先确认第 1、2 条5xx 错误服务端返回 HTTP ≥500 时校验会报Server error: HTTP {status}并附上排查文案通常意味着 LM Studio 进程活着但内部加载模型失败可检查 LM Studio 侧日志与模型是否处于已加载状态仍然卡住的兜底设置页提供强制通过入口forceValid()use-provider-validation.ts#L255-L261在确认服务可用例如 Electron 宿主下网络环境特殊而浏览器校验失败时可用但它只是把 provider 标记为已配置不改变请求链路本身。小结LM Studio 在 AIRI 中是一个OpenAI 兼容的本地 Chat providerschema 默认http://localhost:1234/v1/、API Key 可选源码见 lm-studio/index.ts配置路径为Settings → Providers → Chat → LM Studio验证成功后经markProviderAdded自动进入模型选择器并在Settings → Modules → Consciousness中完成最终选型自动校验由 check-config Connectivity(/models探测) ModelList 构成15 秒间隔轮询手动Ping API额外执行一次max_tokens: 16的最小化 chat 探测实现位于 validators/openai-compatible.ts排查顺序固定为Local Server 是否启动 → 端口与 Base URL 是否一致 → 跨设备时用 LAN 地址 → 最后才是 CORS全程仅在可信局域网内使用切勿暴露公网。赞分享人工智能AI AgentMCP 服务工具调用GUI 自动化语音数字人交互助手【免费下载链接】airi 自托管、归你拥有的 Grok 风格 AI 伴侣与 waifu / 赛博生命灵魂容器目标是接近 Neuro-sama 的高度支持实时语音聊天、Minecraft 和 Factorio 游玩支持 Web / macOS / Windows。项目地址https://gitcode.com/moeru-ai/airi点击查看免费下载相关推荐AIRI 接入本地 LM Studio 模型从 Local Server 启动到 Ping API 验证的完整配置指南AIRI 接入本地 LM Studio 模型从 Local Server 启动到 Ping API 验证的完整配置指南 本文基于 AIRI 官方手册《LM S人工智能AI AgentMCP 服务工具调用GUI 自动化语音数字人交互助手后端用 10 分钟语音数据训练 AI 音色RVC 变声器从安装到实时变声指南用 10 分钟语音数据训练 AI 音色RVC 变声器从安装到实时变声指南 RVC 变声器是一个基于 VITS 架构的开源语音克隆工具录 10 分钟你的声音人工智能深度学习语音音频AI 应用微调ComfyUI-WanVideoWrapper3 步跑通你的第一条 WanVideo 工作流ComfyUI WanVideoWrapper3 步跑通你的第一条 WanVideo 工作流 ComfyUI WanVideoWrapper 是 ComfyU人工智能大模型媒体生成视频上一篇异步并发下载技术方案解决B站高清视频批量获取的完整指南下一篇从安装到调优foobox-cn 让 foobar2000 换上现代化 DUI 界面的完整实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑