DeepSeek Provider —— OpenAI 兼容实现(统一由 base/defprovider 生成)。
需要 DEEPSEEK_API_KEY 或显式 :api-key。 模型:deepseek-chat、deepseek-reasoner。
DeepSeek 专属差异(均已支持):
作为 OpenAI 兼容实现,同样继承 common.openai-compat 的通用能力: :parallel-tool-calls、:response-format(json_object / json_schema+strict 结构化输出)、 :stream-options、:extra-body 等(:reasoning-effort/:verbosity 为 OpenAI 系参数, DeepSeek 当前忽略,但传入安全)。
(require '[im.ttalk.agent.provider.deepseek :as deepseek]) (def provider (deepseek/create-provider {:api-key "sk-..."}))
;; 前缀续写:让模型续写 "春天的风" (deepseek/call-prefix-completion {:model "deepseek-chat" :max-tokens 256} [{:role "user" :content "写一句诗"} {:role "assistant" :content "春天的风"}] nil)
DeepSeek Provider —— OpenAI 兼容实现(统一由 base/defprovider 生成)。
需要 DEEPSEEK_API_KEY 或显式 :api-key。
模型:deepseek-chat、deepseek-reasoner。
DeepSeek 专属差异(均已支持):
- reasoning_content:deepseek-reasoner 的思维链(同步 message.reasoning_content /
流式 delta.reasoning_content),统一归一化到 :reasoning 字段,:text 为干净答案;
流式推理 token 经回调 :reasoning-token 单独下发
- 前缀续写(beta):call-prefix-completion / call-prefix-completion-stream,
最后一条 assistant 消息标记 prefix:true,模型从该前缀继续生成
(自动走 https://api.deepseek.com/beta 路径),常与 :stop 搭配
- SSE 末块 usage:流式最后一个 chunk 原生携带 usage
(含 prompt_cache_hit_tokens / prompt_cache_miss_tokens),已捕获并归一化为
:cache-read-tokens / :cache-miss-tokens
- 注意:deepseek-reasoner 不支持 logprobs/top_logprobs(设置会报错),
temperature/top_p/presence_penalty/frequency_penalty 会被忽略 ——
本实现「存在才发送」,不传即安全
作为 OpenAI 兼容实现,同样继承 common.openai-compat 的通用能力:
:parallel-tool-calls、:response-format(json_object / json_schema+strict 结构化输出)、
:stream-options、:extra-body 等(:reasoning-effort/:verbosity 为 OpenAI 系参数,
DeepSeek 当前忽略,但传入安全)。
(require '[im.ttalk.agent.provider.deepseek :as deepseek])
(def provider (deepseek/create-provider {:api-key "sk-..."}))
;; 前缀续写:让模型续写 "春天的风"
(deepseek/call-prefix-completion
{:model "deepseek-chat" :max-tokens 256}
[{:role "user" :content "写一句诗"}
{:role "assistant" :content "春天的风"}]
nil)(call-deepseek config__10075__auto__
messages__10076__auto__
tools__10077__auto__)调用 deepseek API(同步)
调用 deepseek API(同步)
(call-deepseek-async config__10075__auto__
messages__10076__auto__
tools__10077__auto__)异步调用 deepseek API(返回 deferred<响应体>)
异步调用 deepseek API(返回 deferred<响应体>)
(call-deepseek-stream config__10075__auto__
messages__10076__auto__
tools__10077__auto__
on-token__10078__auto__)流式调用 deepseek API
流式调用 deepseek API
(call-deepseek-stream-async config__10075__auto__
messages__10076__auto__
tools__10077__auto__
on-token__10078__auto__)异步流式调用 deepseek API(返回 deferred<最终响应>)
异步流式调用 deepseek API(返回 deferred<最终响应>)
(call-prefix-completion config messages tools)对话前缀续写(同步,beta)
最后一条 assistant 消息的 content 作为前缀,模型从其继续生成。 config 与 call-deepseek 一致(建议搭配 :stop 控制结束位置)。
返回:OpenAI 格式响应(续写内容在 choices[0].message.content)。
对话前缀续写(同步,beta) 最后一条 assistant 消息的 content 作为前缀,模型从其继续生成。 config 与 call-deepseek 一致(建议搭配 :stop 控制结束位置)。 返回:OpenAI 格式响应(续写内容在 choices[0].message.content)。
(call-prefix-completion-stream config messages tools on-token)对话前缀续写(SSE 流式,beta)
参数:
返回:与同步调用兼容的最终响应(含末块 usage、真实 finish_reason)。
对话前缀续写(SSE 流式,beta)
参数:
- on-token: 回调 (fn [{:keys [token reasoning-token ...]}] ...)
返回:与同步调用兼容的最终响应(含末块 usage、真实 finish_reason)。(create-provider)(create-provider opts10194)创建 deepseek Provider
创建 deepseek Provider
(mark-prefix messages)把最后一条 assistant 消息标记为前缀(prefix: true)
参数:
返回:标记后的消息向量;最后一条非 assistant 时抛 ExceptionInfo。
把最后一条 assistant 消息标记为前缀(prefix: true) 参数: - messages: wire 格式消息列表,最后一条必须是 assistant 返回:标记后的消息向量;最后一条非 assistant 时抛 ExceptionInfo。
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |