Liking cljdoc? Tell your friends :D

im.ttalk.agent.provider.common.embeddings

Embedding HTTP 调用与响应归一(两种线上形态)

  1. OpenAI 兼容 POST {base}/embeddings body {:model .. :input ["a" "b"] :dimensions n? :encoding_format ..} resp {:data [{:index 0 :embedding [..]} ..] :model .. :usage {:prompt_tokens ..}} 覆盖:OpenAI / 智谱 / SiliconFlow / Ollama / Gemini(兼容端点) / Mistral / xAI …

  2. DashScope 原生 POST .../services/embeddings/text-embedding/text-embedding body {:model .. :input {:texts [..]} :parameters {:dimension n :text_type ..}} resp {:output {:embeddings [{:text_index 0 :embedding [..]}]} :usage {:total_tokens n}}

两条路的公共约定:

  • 返回向量与入参 texts 同序等长(按服务端返回的 index 重排,不假定顺序)
  • 超批自动切片(:batch-size),usage 逐片累加
  • 失败一律抛规范错误(D5),与 chat 路径同一套词汇
Embedding HTTP 调用与响应归一(两种线上形态)

1. **OpenAI 兼容** `POST {base}/embeddings`
   body  {:model .. :input ["a" "b"] :dimensions n? :encoding_format ..}
   resp  {:data [{:index 0 :embedding [..]} ..] :model .. :usage {:prompt_tokens ..}}
   覆盖:OpenAI / 智谱 / SiliconFlow / Ollama / Gemini(兼容端点) / Mistral / xAI …

2. **DashScope 原生** `POST .../services/embeddings/text-embedding/text-embedding`
   body  {:model .. :input {:texts [..]} :parameters {:dimension n :text_type ..}}
   resp  {:output {:embeddings [{:text_index 0 :embedding [..]}]} :usage {:total_tokens n}}

两条路的公共约定:
- 返回向量与入参 texts **同序等长**(按服务端返回的 index 重排,不假定顺序)
- 超批自动切片(`:batch-size`),usage 逐片累加
- 失败一律抛规范错误(D5),与 chat 路径同一套词汇
raw docstring

batchedclj

(batched batch-size texts call-chunk)

把 texts 按 batch-size 切片,逐片调 call-chunk,结果按原序拼回。

参数:

  • batch-size: 每片最大条数(nil / <=0 视为不切)
  • call-chunk: (fn [chunk] {:embeddings [..] :usage {..} :model ..})
把 texts 按 batch-size 切片,逐片调 call-chunk,结果按原序拼回。

参数:
- batch-size: 每片最大条数(nil / <=0 视为不切)
- call-chunk: (fn [chunk] {:embeddings [..] :usage {..} :model ..})
sourceraw docstring

build-paramsclj

(build-params {:keys [model dimensions encoding-format user extra-body]} texts)

OpenAI 兼容 embeddings 请求体(字段一律「存在才发送」)

  • :dimensions 输出维度(text-embedding-3 系列 / bge 等支持降维)
  • :encoding-format "float"(默认)| "base64"
  • :user 终端用户标识
  • :extra-body 私有字段逃生通道,直接 merge 进请求体
OpenAI 兼容 embeddings 请求体(字段一律「存在才发送」)

- :dimensions       输出维度(text-embedding-3 系列 / bge 等支持降维)
- :encoding-format  "float"(默认)| "base64"
- :user             终端用户标识
- :extra-body       私有字段逃生通道,直接 merge 进请求体
sourceraw docstring

call-dashscope-embeddingsclj

(call-dashscope-embeddings api-url api-key config texts)

调用 DashScope 原生 text-embedding 端点(自动切片;单次上限官方为 10 条)

config 额外支持 :dimensions(→ parameters.dimension)与 :text-type("query" | "document",→ parameters.text_type)。

调用 DashScope 原生 text-embedding 端点(自动切片;单次上限官方为 10 条)

config 额外支持 :dimensions(→ parameters.dimension)与
:text-type("query" | "document",→ parameters.text_type)。
sourceraw docstring

call-embeddingsclj

(call-embeddings api-url api-key config texts)

调用 OpenAI 兼容 embeddings 端点(自动切片)

参数:

  • api-url: 完整端点 URL(如 https://api.openai.com/v1/embeddings)
  • api-key: API Key(Bearer)
  • config: {:model .. :dimensions .. :batch-size .. :timeout .. :retry .. :extra-headers {..} :provider-name :openai}
  • texts: 字符串列表

返回:{:embeddings [[..] ..] :model .. :usage {..} :provider ..}

调用 OpenAI 兼容 embeddings 端点(自动切片)

参数:
- api-url: 完整端点 URL(如 https://api.openai.com/v1/embeddings)
- api-key: API Key(Bearer)
- config:  {:model .. :dimensions .. :batch-size .. :timeout .. :retry ..
            :extra-headers {..} :provider-name :openai}
- texts:   字符串列表

返回:{:embeddings [[..] ..] :model .. :usage {..} :provider ..}
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
←Move to previous article
→Move to next article
Ctrl+/Jump to the search field
× close