跳到主要内容

Ollama

@dsh-ai-providers/ollama 是 Firefox2100 在本项目中维护的 Ollama 原生提供方。它直接使用 Ollama 自己的 API,而不是其 OpenAI 兼容层,因为原生 API 提供了兼容层所没有的请求控制项。它不是 DSH 或 Ollama 官方软件包。

支持能力​

能力原生端点
语言模型POST /api/chat(按行分隔的 JSON 流)
模型发现GET /api/tags,再对每个模型调用 POST /api/show
模型控制状态用 GET /api/ps;加载用不带提示词的 POST /api/generate,卸载则加上 keep_alive: 0
嵌入POST /api/embed

本插件不涉及 Ollama 的重排、TTS、STT 或图像生成,因此不会注册这些服务。

配置连接​

打开 设置 > 提供方 > Ollama 连接。默认连接指向本地服务器:

DSH 设置中的 Ollama 连接

设置默认值
基础 URLhttp://localhost:11434(末尾带不带 /api 均可)
凭据引用空:本地服务器不需要密钥
流静默上限5 分钟
嵌入请求超时2 分钟

托管或经代理的服务器,请填写凭据名称并保存令牌;它会作为 Authorization: Bearer 发送。密钥通过 DSH 凭据服务保存,不会写入配置档案。

配置路由与模型​

创建路由,选择连接,并按 Ollama 中的确切名称添加模型(例如 qwen3:8b)。点击 列出服务器上的模型 会查询 /api/tags 和 /api/show,并按服务器报告的能力添加模型:图像输入、思考和上下文窗口。只用于嵌入的模型不会出现在列表中。

支持思考的模型会通过发现得到推理等级:多数模型为 关 和 开(think: false 与 think: true);gpt-oss 只接受等级、无法关闭思考,因此是 低、中、高。

:::warning 请设置 numCtx 模型的上下文窗口是它所支持的长度,而 Ollama 为一次请求分配的上下文是 num_ctx。请求没有设置时,服务器使用自己的默认值,往往只有 4096 个 token 甚至更少,过长的提示词会从开头被悄悄截掉。DSH 依据模型的 contextWindow 决定何时压缩对话,所以两者必须一致:请在路由或模型上把 numCtx 设为你愿意占用内存的上下文长度。提供方不会替你调高它,因为模型的最大长度所需内存可能远超机器所有。 :::

控制项​

路由、模型和策略的采样设置在同一个对象里,既有所有提供方通用的字段,也有 Ollama 自己的字段。缺省表示使用服务器默认值。

字段请求字段说明
temperature、topP、topK、minP、seed、stopoptions.*通用字段
frequencyPenalty、presencePenaltyoptions.frequency_penalty、options.presence_penalty通用字段
repetitionPenaltyoptions.repeat_penalty通用字段
maxTokensoptions.num_predict通用字段;未设置时使用模型的输出上限
numCtxoptions.num_ctx见上方提示
repeatLastN、typicalP、penalizeNewlineoptions.repeat_last_n、typical_p、penalize_newline
mirostat、mirostatTau、mirostatEtaoptions.mirostat*
numKeep、numBatch、numGpu、mainGpu、numThread、useMmapoptions.*运行时调优
keepAlivekeep_alive5m、1h,-1 表示一直保留,0 表示立即卸载
thinkthinktrue、false,或 low、medium、high
formatformatjson,或答案必须遵循的 JSON Schema
body顶层服务器接受的其他任何字段

聊天所选的推理等级,以及 body,优先于带类型的字段。toolChoice: none 会不提供工具。Ollama 无法要求必须调用工具,因此 required 和指定工具无法强制,由模型自行决定。

原生请求映射​

提供方支持系统提示、文本与图像内容(图像以 base64 发送,模型需标记为支持视觉)、工具声明与工具结果、流式文本、思考和工具调用,以及 token 用量。Ollama 返回的工具调用是完整的、没有标识,提供方会为每个调用生成标识;工具结果则按工具名称对应。文件仍是工具可读的文本句柄,已卸载的图像仍是占位符。

嵌入​

在 嵌入 标签中选择 Ollama,选好连接和模型(默认 nomic-embed-text)。文本按 batchSize 分批发送。可设置:

  • 向量维度:适用于可缩短向量的模型,也是会话第一次请求前就要选定的请求选项。
  • 上下文(num_ctx) 与 超出上下文的文本:截断以适应(默认)或拒绝。
  • 保持加载:请求后模型在内存中保留多久。

Ollama 不区分查询与文档,因此 inputType 会被忽略。

错误与取消​

HTTP 和流式失败会映射为 DSH 语言模型的失败类别:认证、限流、用量上限、无效请求(包括尚未拉取的模型)、上下文溢出、服务器故障、超时和取消。服务器在流中途报告的错误以同样方式分类。