Kiln 模型支持全景指南:内置模型、Ollama、自定义 Provider 与 OpenAI 兼容服务器
人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用【免费下载链接】KilnBuild, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.项目地址https://gitcode.com/gh_mirrors/ki/Kiln点击查看免费下载Kiln 的模型支持体系分为四个层次官方测试过的内置模型、本地 Ollama 模型、现有 Provider 上的自定义模型、以及任意 OpenAI 兼容服务器LiteLLM、vLLM 等。本文基于仓库中的模型支持文档与libs/core/kiln_ai/adapters下的实现源码讲清楚每一类模型的接入方式、在 UI 中的呈现规则尤其是 Untested 分区的含义以及结构化输出等关键能力背后的源码机制。模型支持的四个层次Kiln 可以接入几乎所有 LLM 模型但模型来源不同可用性和可靠性也不同。原始文档将其分为四类Included models内置模型推荐经过 Kiln 各功能结构化输出、数据生成、微调等测试的模型Custom Ollama models本地 Ollama 服务器中已安装的任意模型Custom models from existing providersKiln 已支持、但不在内置清单里的某个 Provider 上的模型Custom OpenAI compatible servers任何提供 OpenAI 兼容 API 的自托管服务器LiteLLM、vLLM 等其中 LiteLLM 可进一步代理 100 多家 Provider。这四类模型在模型下拉框中的分组方式按 Provider 分组、Untested Models 分区、Not Recommended 分区直接由后端返回的untested_model、deprecated、能力标志位字段驱动前端逻辑见 available_models_dropdown.svelte。内置模型接入 Provider 后从下拉框直接选择使用方式内置模型是指已在 Kiln 各功能structured output、data gen、fine tuning 等上验证过的模型是最省心的选择。使用步骤在 Settings 页面连接任意一个 AI Provider官方建议 OpenRouter因为其模型覆盖面最广连接完成后在模型下拉框中选择需要的模型。需要注意部分模型可能只支持非结构化输出或者不支持数据生成。从源码结构看当尝试为某个功能选择不支持该能力的模型时下拉框会给出警告提示如果当前功能要求的能力如 logprobs模型不支持选择时还会弹出二次确认available_models_dropdown.svelte。完整清单在源码中文档中给出的完整模型清单入口是 ml_model_list.py。这个文件是整个模型支持体系的核心数据文件超过一万一千行其结构如下ModelFamilyL16-L47模型架构家族枚举涵盖gpt、llama、claude、gemini、qwen、deepseek、kimi、glm、mimo等 28 个家族ModelNameL51具体模型版本枚举例如claude_sonnet_4_6、gpt_5_2、llama_3_3_70b、qwen_3_235b_a22b等数百个条目built_in_modelsL771 起每个KilnModel由family、name、friendly_name和一组providers构成同一个模型可以挂在多个 Provider 下且每个 Provider 有独立的model_id与能力配置。例如 GPT-6.1 Sol 同时配置了openai与openrouter两个 Provider 条目L806-L864。KilnModelProvider决定能不能用的能力标志位KilnModelProviderL368-L482是每个模型×Provider组合的配置载体解释了文档中模型是否支持某功能的底层依据。关键字段包括字段含义默认值supports_structured_output是否支持结构化输出Truesupports_data_gen是否支持数据生成Truestructured_output_mode请求结构化输出所用的 API 模式StructuredOutputMode.defaultuntested_model是否未测试通常为用户添加的模型此时 supports_ 字段不适用Falsereasoning_capable模型是否以结构化格式输出思考内容如think影响 CoT 调用策略Falsesupports_function_calling是否支持工具调用Truesupports_logprobs是否返回 logprobsFalsesupports_doc_extraction/multimodal_capable/supports_vision文档抽取、多模态、视觉能力Falsedeprecated模型在该 Provider 上已弃用Falsestructured_output_mode的取值定义在 datamodel_enums.py共 8 种模式直接对应文档中不同服务器产生结构化输出方式不同这一提示json_schema使用 API 原生的 JSON Schema 能力function_calling借助函数调用能力请求 JSONjson_mode使用 API 的 JSON 模式保证合法 JSON 但不校验 Schemajson_instructions仅在 prompt 中追加指令要求输出符合 Schema 的 JSON不使用任何 API 能力未测试模型的默认值json_instruction_and_object指令 JSON 模式双管齐下json_custom_instructions系统提示词中已含自定义 JSON 指令不再追加default/unknown由 adapter 决定或运行时查找。此外文件顶部还维护了各推理模型的思考等级映射表如GPT_5_2_OPENROUTER_THINKING_LEVELS、CLAUDE_OPUS_5_ANTHROPIC_THINKING_LEVELSL507-L768配合available_thinking_levels/default_thinking_level字段为不同 Provider 的推理强度控制提供依据并有model_validator校验默认等级必须在可选集合内L472-L482。自定义 Ollama 模型使用方式Ollama 服务器上已安装的任何模型都可以被 Kiln 使用。添加模型只需在 Ollama CLI 中执行ollama pull model_name连接成功后模型会出现在下拉框中并分两种情况已测试的 Ollama 模型出现在 Kiln 内置清单中的自动归入对应 Provider 的正常分区未测试的 Ollama 模型仍然会显示但归入 Untested 分区。如果 Ollama 部署在非默认地址可在设置中配置自定义 Ollama URL前端入口见 connect_providers.svelte/setup/(setup)/connect_providers/connect_providers.svelte#L1075) 中的 Set Custom Ollama URL。源码如何区分已测试与未测试Ollama 的连接与模型发现逻辑集中在 ollama_tools.pyollama_base_url()L15-L26优先读取配置项ollama_base_url对应环境变量OLLAMA_BASE_URL见 config.py未配置时回落到默认地址http://localhost:11434get_ollama_connection()L152-L162请求 Ollama 的/api/tags接口获取已安装模型列表超时 5 秒失败时返回Noneparse_ollama_tags()L58-L149这是已测试 vs 未测试划分的实现处。它先从built_in_models中收集所有ModelProviderName.ollama条目的model_id外加ollama_model_aliases别名构成受支持集合然后把 Ollama 返回的每个模型逐个比对命中受支持集合含:latest变体的进入supported_models其余进入untested_models。嵌入模型则单独归入supported_embedding_models不与聊天模型混淆resolve_ollama_model_variant()L178-L213同一模型可能有多个 slug 通过别名指向同一底座该函数按主 model_id → 各别名的顺序探测实际安装的变体用于生成准确的报错信息。Ollama 是否被视为已启用的 Provider由 provider_tools.py 中的provider_enabled()判定能连上且supported_models或untested_models至少有一个非空才算可用。来自现有 Provider 的自定义模型使用方式当某个模型不在内置清单里、但位于 Kiln 已支持的 Provider 上时可以在 Settings 的 AI Providers Models 区域点击Add Model手动添加前端页面见 add_models/page.svelte/settings/providers/add_models/page.svelte)。添加后该模型会出现在下拉框的 untested 分区。源码UserModelEntry 与保守的能力假设新增的自定义模型通过user_model_registry配置项持久化config.py 中同时保留了旧版custom_models与新版user_model_registry两个列表。每个条目的数据结构是UserModelEntryuser_model_entry.pyclass UserModelEntry(BaseModel): provider_type: Literal[builtin, custom] # builtin 为内置 Provider 枚举custom 为 openai_compatible provider_id: str # builtin: 如 openaicustom: 自定义 Provider 名 model_id: str # 该 Provider API 使用的模型 ID name: str | None None # 显示名缺省为 model_id overrides: dict[str, Any] | None None # KilnModelProvider 字段覆盖 id: str Field(default_factorylambda: str(uuid.uuid4()))overrides允许用户覆盖KilnModelProvider上的任意字段例如确认支持结构化输出后设置supports_structured_output: true转换时只应用当前有效的字段未知字段被静默忽略以保证向前兼容user_model_to_provider。其中name、model_id、adapter三个字段禁止覆盖——adapter 由 Provider 决定防止把模型路由到无法调用它的客户端。对自定义模型kiln_model_provider_from 会构造一个运行时KilnModelProvider采用保守默认值untested_modelTrue、supports_structured_outputFalse、supports_data_genFalse、structured_output_modejson_instructions注释标明这是所有模型都能工作的唯一模式。这正解释了为什么这类模型只能进入 Untested 分区且在使用依赖结构化输出的任务前可能需要通过overrides调整能力声明。旧版自定义模型custom_models中以provider::model_id字符串保存仍由 get_legacy_custom_models 处理且注释明确警告其 ID 格式不可变更否则会破坏历史运行记录的匹配。自定义 OpenAI 兼容服务器使用方式与前置条件如果你有 OpenAI 兼容服务器LiteLLM、vLLM 等可以在 Settings 的 AI Providers Models 区域添加一个Custom API前端入口见 connect_providers.svelte/setup/(setup)/connect_providers/connect_providers.svelte#L285-L291) 与 L1234/setup/(setup)/connect_providers/connect_providers.svelte#L1234)。该 API 支持的所有模型会出现在 untested 分区。文档强调两点注意事项与源码实现一一对应API 必须支持/v1/models端点Kiln 靠它拉取模型列表同类探测逻辑可参考 docker_model_runner_tools.py 中对/v1/models的请求多数 Kiln 任务需要结构化JSON输出而自托管服务器往往需要针对每个服务器×模型组合单独配置才能稳定产出结构化输出tools 还是 json_mode 还是纯 JSON 解析、Schema 格式等即对应上文StructuredOutputMode的各种模式。源码base_url、占位 API key 与模型 ID 格式自定义 OpenAI 兼容 Provider 以openai_compatible_providers列表保存在配置中每项含name、base_url、可选api_key其中api_key为敏感字段见 config.py。运行时的连接构造在 lite_llm_core_config_for_provider 的openai_compatible分支中base_url为必填缺失时抛错api_key可选——Ollama 等本地服务不需要密钥但 LiteLLM 客户端构造时缺少 api_key 会报错因此未提供时注入占位值PLACEHOLDER_API_KEY NAL31-L33旧版 OpenAI 兼容模型 ID 采用{provider_name}::{model_id}格式LiteLLM 只需裸模型 ID内部自动构造openai/model_id前缀因此 lite_llm_provider_model 会剥离::前缀而完整 slug 保留在run_config.model_name上用于历史追溯。LiteLLM接入更多 Provider 的通用通道Kiln 与 LiteLLM 兼容——这是一个以 OpenAI 兼容 API 暴露 100 多家模型 Provider 的开源代理。当首选 Provider 未被 Kiln 内置支持时推荐做法是部署 LiteLLM然后直接在 Settings 的 Custom API 中填入 LiteLLM 的 URL 即可无需 Kiln 侧额外配置。值得注意的是Kiln 所有内置云端 Provider 的调用也统一走 LiteLLMModelAdapterIdml_model_list.py中litellm是默认 adapter各 Provider 的 base_url、请求头与鉴权参数由 lite_llm_core_config_for_provider 的 match 语句逐一定制。例如 OpenRouter 会附加HTTP-Referer/X-Title头并注入open_router_api_keyOllama 则走其/v1OpenAI 兼容端点注释说明为了使用json_schema等更高级特性Kiln 有意不走 LiteLLM 原生的 Ollama API 路径L738-L751。Provider 启用校验连接失败的明确报错每个云端 Provider 都有必填配置项的白名单检查。provider_warningsprovider_tools.py把 Provider 映射到所需配置键例如Provider必需配置键openaiopen_ai_api_keyopenrouteropen_router_api_keyanthropicanthropic_api_keyamazon_bedrockbedrock_access_key、bedrock_secret_keyfireworks_aifireworks_api_key、fireworks_account_idazure_openaiazure_openai_api_key、azure_openai_endpointvertexvertex_project_idcloudflarecloudflare_api_key、cloudflare_account_id缺失时在调用模型前由check_provider_warnings()抛出带明确提示的ValueError配置项大多支持同名环境变量如OPENAI_API_KEY、OPENROUTER_API_KEY在 config.py 中声明。Kiln 目前内置的 Provider 全量清单见ModelProviderName枚举datamodel_enums.py共 20 个包括 OpenAI、OpenRouter、Anthropic、Gemini API、Azure OpenAI、Amazon Bedrock、Ollama、Groq、Fireworks、Hugging Face、Vertex、Together AI、SiliconFlow、Cerebras、Featherless、Cloudflare、Docker Model Runner 等。Untested 分区的呈现与测试保障下拉框的分区规则集中在 format_model_optionsuntested_modelTrue的条目统一移入 Untested Models 分组deprecated条目单独成组并禁用能力不满足当前任务要求的条目归入 Not Recommended - Data Gen Not Supported / Structured Output Fails / Tool Calling Not Supported 等动态命名的分组。选中未测试模型时页面会持续显示 This model has not been tested with Kiln. It may not work as expected. 的警告L403-L406。这一整套行为由配套测试保障test_ml_model_list.py校验所有内置模型条目的 Provider 合法性、default_thinking_level必须在可选集合内、openrouter_reasoning_object仅限 openrouter Provider、未弃用 Provider 不被标记建议、多模态 MIME 类型非空等不变量test_provider_tools.py覆盖user_model_registry条目创建、UserModelEntry默认值与 overrides 行为test_ollama_tools.py验证/api/tags解析与已测试/未测试模型的划分。小结Kiln 的模型支持可以概括为内置模型保证开箱即用未测试模型保证灵活可用。选择建议优先连接一个 Provider 并使用内置模型需要本地推理时用ollama pull拉取模型让 Kiln 自动发现并区分已测试与未测试模型使用内置 Provider 之外的模型走 Add Model自托管或小众 Provider 则统一收敛到 Custom APIOpenAI 兼容端点LiteLLM 是覆盖最广的兜底方案。所有未测试模型的底层假设untested_modelTruejson_instructions都可在 ml_model_list.py 与 provider_tools.py 中对照源码逐行核实并在 Model Support 原始文档 中查阅官方说明。赞分享人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用【免费下载链接】KilnBuild, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more.项目地址https://gitcode.com/gh_mirrors/ki/Kiln点击查看免费下载相关推荐zerostack配置LLM完全指南OpenRouter、Ollama本地模型与自定义OpenAI兼容端点一步到位zerostack配置LLM完全指南OpenRouter、Ollama本地模型与自定义OpenAI兼容端点一步到位 zerostack 是一个用 Rust 编GSD Provider 配置全指南内置云端模型、本地推理与自定义 OpenAI-Compatible EndpointGSD Provider 配置全指南内置云端模型、本地推理与自定义 OpenAI Compatible Endpoint 导读 本文以 GSD 项目的 pr人工智能AI Agent代码智能体Agent 编排CLIAI 应用LightRAG模型集成OpenAI、Hugging Face、Ollama全支持LightRAG模型集成OpenAI、Hugging Face、Ollama全支持 还在为RAGRetrieval Augmented Generation人工智能RAG大模型知识图谱本地部署创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

059、低功耗模式唤醒延迟对连接事件的影响

059、低功耗模式唤醒延迟对连接事件的影响

一个让人抓狂的"丢包"现场 去年做一个无线传感节点的项目,设备平时跑在深度睡眠模式,靠定时器或者外部中断唤醒,醒来后跟中心节点完成一次数据交互,然后立刻回到睡眠。前后折腾了两周,反复出现一个怪现象&am…

2026/10/14 1:00:03 阅读更多 →
OpenCV傅里叶变换实战:从频谱分析到频域滤波的完整指南

OpenCV傅里叶变换实战:从频谱分析到频域滤波的完整指南

1. 为什么图像处理绕不开傅里叶变换刚接触OpenCV那会儿,我对傅里叶变换的态度就是"能跑就行"。教程里一段cv2.dft()跑出个频谱图,看着花花绿绿的挺唬人,但真到项目里该用它干什么、什么时候该用它、参数怎么调,脑子里其…

2026/10/14 1:00:03 阅读更多 →
060、固件升级中断后协议栈状态恢复的处理

060、固件升级中断后协议栈状态恢复的处理

一个让人后背发凉的现场 前两年做一款工业网关的固件升级功能,设备通过无线链路和后台服务器通信,升级包大概2MB左右,分片传输。测试环境跑了几十次都没问题,结果现场部署第一天就出了状况。 现场反馈:一台设备升级到大…

2026/10/14 1:00:03 阅读更多 →

最新新闻

组合导航中的杆臂效应与外参标定:从原理到工程实践

组合导航中的杆臂效应与外参标定:从原理到工程实践

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

2026/10/14 1:43:13 阅读更多 →
单相逆变器下垂控制原理与工程实践

单相逆变器下垂控制原理与工程实践

1. 项目概述:下垂控制在单相逆变器并机中的核心价值在分布式发电系统中,多台逆变器并联运行是提升系统容量和可靠性的关键技术。传统控制方法在并联运行时往往面临环流问题、功率分配不均等挑战。下垂控制通过模拟同步发电机的调频特性,实现了…

2026/10/14 1:43:13 阅读更多 →
医美CRM客户生命周期管理:从咨询到复购的数据主干网

医美CRM客户生命周期管理:从咨询到复购的数据主干网

简介:宏脉医美系统使用手册是一份面向医疗美容机构运营管理人员、前台接待、咨询顾问及信息化实施人员的标准化操作指南,聚焦客户数据规范化采集、新老客户精准识别与全流程业务协同管理,切实解决医美行业客户信息分散、填写不全、跨部门衔接…

2026/10/14 1:43:13 阅读更多 →
串口通信稳定性实践:分帧、超时与断线重连机制详解

串口通信稳定性实践:分帧、超时与断线重连机制详解

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

2026/10/14 1:43:13 阅读更多 →
支腿反力与静态稳定性:吊装安全计算模块全解析

支腿反力与静态稳定性:吊装安全计算模块全解析

干吊装这行越久,越明白一个道理:绝大多数事故都不是“胆大胡来”造成的,而是“以为没问题”造成的。尤其是支腿反力和整车静态稳定性这两件事,现场最容易漏算,也最容易在临界工况上出问题。支腿反力大一点、重心偏一点…

2026/10/14 1:43:13 阅读更多 →
北航机试工程思维:输入解析、缓存优化与格式鲁棒性

北航机试工程思维:输入解析、缓存优化与格式鲁棒性

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

2026/10/14 1:42:11 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →