OpenAI Provider —— OpenAI 兼容实现(统一由 base/defprovider 生成)。
生成:default-config、call-openai{,-stream,-async,-stream-async}、create-provider。 同步(单次 HTTP)与流式(SSE)调用均支持;流式回调 (fn [{:keys [token ...]}] ...)。
调用 config 支持的 OpenAI 专属能力(均「存在才发送」,详见 common.openai-compat/build-params):
:stream-options {:include_usage true};
显式 false / {} 关闭;非流式恒不发 stream_options工具定义:deftool 生成的 schema(:input_schema 形态)与 OpenAI 风格 (:parameters 形态)均被 schema.openai/tool->schema 正确识别,参数不丢失。
(require '[im.ttalk.agent.provider.openai :as openai]) (def provider (openai/create-provider {:api-key "sk-..."}))
OpenAI Provider —— OpenAI 兼容实现(统一由 base/defprovider 生成)。
生成:default-config、call-openai{,-stream,-async,-stream-async}、create-provider。
同步(单次 HTTP)与流式(SSE)调用均支持;流式回调 (fn [{:keys [token ...]}] ...)。
调用 config 支持的 OpenAI 专属能力(均「存在才发送」,详见
common.openai-compat/build-params):
- 工具调用::tool-choice、:parallel-tool-calls(并行工具调用开关,精确透传 false)
- 推理控制::reasoning-effort(o 系列 / GPT-5:low|medium|high)
:verbosity(GPT-5 输出冗长度:low|medium|high)
- 多模态输出::modalities(如 ["text" "audio"]):audio({:voice X :format Y},gpt-4o-audio)
- 结构化输出::response-format
{:type "json_object"} 或
{:type "json_schema" :json_schema {:name "X" :strict true :schema {...}}}
(可用 core 的 converter.json-schema/to-openai-response-format 从 schema 生成)
- 采样::temperature :top-p :max-tokens :stop :seed :n
:frequency-penalty :presence-penalty :logprobs :top-logprobs
- 流式 usage:流式缺省 `:stream-options {:include_usage true}`;
显式 `false` / `{}` 关闭;非流式恒不发 `stream_options`
- 私有字段逃生通道::extra-body(直接 merge 进请求体)
- prompt caching:OpenAI 自动生效,命中 token 归一化到响应 usage 的
:cache-read-tokens(源自 prompt_tokens_details.cached_tokens)
工具定义:deftool 生成的 schema(:input_schema 形态)与 OpenAI 风格
(:parameters 形态)均被 schema.openai/tool->schema 正确识别,参数不丢失。
(require '[im.ttalk.agent.provider.openai :as openai])
(def provider (openai/create-provider {:api-key "sk-..."}))(call-openai config__10075__auto__ messages__10076__auto__ tools__10077__auto__)调用 openai API(同步)
调用 openai API(同步)
(call-openai-async config__10075__auto__
messages__10076__auto__
tools__10077__auto__)异步调用 openai API(返回 deferred<响应体>)
异步调用 openai API(返回 deferred<响应体>)
(call-openai-stream config__10075__auto__
messages__10076__auto__
tools__10077__auto__
on-token__10078__auto__)流式调用 openai API
流式调用 openai API
(call-openai-stream-async config__10075__auto__
messages__10076__auto__
tools__10077__auto__
on-token__10078__auto__)异步流式调用 openai API(返回 deferred<最终响应>)
异步流式调用 openai API(返回 deferred<最终响应>)
(create-provider)(create-provider opts10413)创建 openai Provider
创建 openai Provider
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 |