@acosmi/sdk-ts 2.9.0 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,20 @@ All notable changes to `@acosmi/sdk-ts` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.10.0] - 2026-06-20 — 多模态向量 / 重排序 (qwen3-vl-embedding / qwen3-vl-rerank)
9
+
10
+ 向量与重排序端点扩展为**多模态**(text / image / **video**),对接 DashScope `qwen3-vl-embedding`(多模态向量端点)与 `qwen3-vl-rerank`(原生 rerank 端点 + 多模态 content)。面向自建搜索引擎的图文 / 视频检索场景。计费口径不变(`total_tokens` 套 input 费率),上游模型名仍由管理员后台自填,不在 SDK / 网关硬编码。
11
+
12
+ ### Added
13
+
14
+ - **`EmbeddingRequest.contents`** — 多模态向量输入:`MultimodalContent[]`(`{ text?, image?, video? }`)。与 `input`(文本线路)二选一;多模态托管模型用 `contents`。同时新增可选 `output_type` / `fps` / `enable_fusion` 参数。
15
+ - **`RerankRequest` 多态 query / documents** — `query: RerankQuery`(`string | { text?, image? }`),`documents: RerankDocument[]`(`(string | { text?, image?, video? })[]`);新增可选 `fps`(多模态视频文档抽帧率)。文本调用完全向后兼容(仍可传 `string` / `string[]`)。
16
+ - **类型** — `MultimodalContent` / `RerankQuery` / `RerankDocument`。
17
+
18
+ ### Changed
19
+
20
+ - **`EmbeddingRequest.input` 改为可选**(`input?: string | string[]`)——多模态线路改用 `contents`。文本调用方无需改动(仍可只传 `input`)。
21
+
8
22
  ## [2.9.0] - 2026-06-20 — 向量 (Embedding) + 重排序 (Rerank) 端点 + listModels 全集模式
9
23
 
10
24
  托管模型网关新增向量与重排序两类模型(上游接阿里云百炼 DashScope),SDK 订阅会员可经现有会员计费体系(Hold→Settle→Release,按 `total_tokens` 套 input 费率)直接调用。具体上游模型名(`text-embedding-v4` / `gte-rerank-v2` / `qwen3-rerank` 等)由管理员在托管模型后台自填,不在 SDK / 网关硬编码。
package/README.md CHANGED
@@ -215,6 +215,28 @@ for (const r of resp.results) {
215
215
 
216
216
  > 重排序对外是**统一扁平契约**;网关内部按模型绑定的线路(DashScope 原生嵌套 `gte-rerank-v2` / OpenAI 兼容扁平 `qwen3-rerank`)自动转换并归一化响应,SDK 侧无需关心。
217
217
 
218
+ ### 多模态向量 / 重排序(v2.10+,text / image / video)
219
+
220
+ 对接 DashScope `qwen3-vl-embedding`(多模态向量)与 `qwen3-vl-rerank`(多模态重排序)。向量用 `contents` 取代 `input`;重排序的 `query` / `documents` 接受多模态对象(`{ text? , image?, video? }`)。适用于自建搜索引擎的图文 / 视频检索。
221
+
222
+ ```ts
223
+ // 多模态向量:图 / 视频 / 文本混合
224
+ const emb = await client.embeddings(mmEmbModel!.id, {
225
+ contents: [{ text: '一只橘猫' }, { image: 'https://…/cat.png' }, { video: 'https://…/clip.mp4' }],
226
+ output_type: 'dense', // 可选
227
+ fps: 2, // 可选:视频抽帧率
228
+ });
229
+
230
+ // 多模态重排序:query 与候选可为多模态对象,也可混入纯文本字符串
231
+ const rr = await client.rerank(mmRerankModel!.id, {
232
+ query: { text: '红色跑车' },
233
+ documents: [{ image: 'https://…/car.png' }, { video: 'https://…/road.mp4' }, '一段描述文字'],
234
+ fps: 1.5, // 可选
235
+ });
236
+ ```
237
+
238
+ > 文本调用完全向后兼容:`input` / 字符串 `query` / 字符串 `documents` 行为不变。多模态托管模型须由管理员在后台勾选对应能力位与输入模态(text/image/video)。
239
+
218
240
  ## 双格式红线(设计核心)
219
241
 
220
242
  SDK 同时提供 **Anthropic + OpenAI 两条 endpoint**,**等地位**,对应两个不同下游产品。
@@ -2206,9 +2206,16 @@ var Client = class _Client {
2206
2206
  fetchImpl;
2207
2207
  /** 互斥锁 (TS 用 Promise chain 替代 sync.Mutex) */
2208
2208
  mu = Promise.resolve();
2209
- /** WebSocket 状态 (实际方法由 ws.ts mixin 维护) */
2209
+ /**
2210
+ * WebSocket 状态 (实际方法由 ws.ts mixin 维护)。
2211
+ * @internal — 实现细节: 跨模块 (ws.ts mixin) 需可见故为 public, 但非消费者 API,
2212
+ * 消费者用 connect/subscribe 等高层方法; 引用的 WSState 不进公开文档。
2213
+ */
2210
2214
  ws = null;
2211
- /** v0.15.1: token 就绪等待机制 — login 成功后 resolve, 等待方解除阻塞 */
2215
+ /**
2216
+ * v0.15.1: token 就绪等待机制 — login 成功后 resolve, 等待方解除阻塞。
2217
+ * @internal — 内部同步原语 (Deferred), 非消费者 API。
2218
+ */
2212
2219
  tokenReady = newDeferred();
2213
2220
  /** Login 进行中 — 等待方需等而非 fail-fast */
2214
2221
  loginInFlight = false;