Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ Requirements:

If you already have your own OpenAI-compatible services, just replace the relevant block:

- `embedding`: change `apiKey` / `model` / `baseURL` / `dimensions`
- `embedding`: change `apiKey` / `model` / `baseURL` / `dimensions` / `omitDimensions`
- `retrieval`: change `rerankProvider` / `rerankEndpoint` / `rerankModel` / `rerankApiKey`
- `llm`: change `apiKey` / `model` / `baseURL` / `timeoutMs`

Expand Down Expand Up @@ -357,6 +357,7 @@ Query → BM25 FTS ─────┘
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"omitDimensions": false,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
Expand Down Expand Up @@ -633,6 +634,7 @@ npm install
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"omitDimensions": false,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
Expand All @@ -645,6 +647,8 @@ npm install
}
```

> If your embedding endpoint rejects the `dimensions` request field (common with some local/OpenAI-compatible models such as Qwen3-Embedding), keep `embedding.dimensions` set for schema/registration purposes and set `"omitDimensions": true` so the plugin does not send the parameter upstream.

3. Restart and verify:

```bash
Expand Down
6 changes: 5 additions & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ openclaw logs --follow --plain | rg "memory-lancedb-pro"

如果你已经有自己的 OpenAI-compatible 服务,只需替换对应区块:

- `embedding`:改 `apiKey` / `model` / `baseURL` / `dimensions`
- `embedding`:改 `apiKey` / `model` / `baseURL` / `dimensions` / `omitDimensions`
- `retrieval`:改 `rerankProvider` / `rerankEndpoint` / `rerankModel` / `rerankApiKey`
- `llm`:改 `apiKey` / `model` / `baseURL` / `timeoutMs`

Expand Down Expand Up @@ -357,6 +357,7 @@ Query → BM25 FTS ─────┘
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"omitDimensions": false,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
Expand Down Expand Up @@ -633,6 +634,7 @@ npm install
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"omitDimensions": false,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
Expand All @@ -645,6 +647,8 @@ npm install
}
```

> 如果你的嵌入接口不接受 `dimensions` 请求字段(常见于部分本地/OpenAI-compatible 模型,比如 Qwen3-Embedding),建议继续保留 `embedding.dimensions` 以满足 schema/注册校验,同时设置 `"omitDimensions": true`,这样插件就不会把该参数继续发给上游接口。

3. 重启并验证:

```bash
Expand Down
6 changes: 6 additions & 0 deletions index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ interface PluginConfig {
model?: string;
baseURL?: string;
dimensions?: number;
omitDimensions?: boolean;
taskQuery?: string;
taskPassage?: string;
normalized?: boolean;
Expand Down Expand Up @@ -1628,6 +1629,7 @@ const memoryLanceDBProPlugin = {
model: config.embedding.model || "text-embedding-3-small",
baseURL: config.embedding.baseURL,
dimensions: config.embedding.dimensions,
omitDimensions: config.embedding.omitDimensions,
taskQuery: config.embedding.taskQuery,
taskPassage: config.embedding.taskPassage,
normalized: config.embedding.normalized,
Expand Down Expand Up @@ -3274,6 +3276,10 @@ export function parsePluginConfig(value: unknown): PluginConfig {
// Accept number, numeric string, or env-var string (e.g. "${EMBED_DIM}").
// Also accept legacy top-level `dimensions` for convenience.
dimensions: parsePositiveInt(embedding.dimensions ?? cfg.dimensions),
omitDimensions:
typeof embedding.omitDimensions === "boolean"
? embedding.omitDimensions
: undefined,
taskQuery:
typeof embedding.taskQuery === "string"
? embedding.taskQuery
Expand Down
9 changes: 9 additions & 0 deletions openclaw.plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@
"type": "integer",
"minimum": 1
},
"omitDimensions": {
"type": "boolean",
"description": "When true, omit the dimensions parameter from embedding requests even if dimensions is configured"
},
"taskQuery": {
"type": "string",
"description": "Embedding task for queries (provider-specific, e.g. Jina: retrieval.query)"
Expand Down Expand Up @@ -525,6 +529,11 @@
"help": "Override vector dimensions for custom models not in the built-in lookup table",
"advanced": true
},
"embedding.omitDimensions": {
"label": "Omit Request Dimensions",
"help": "Do not send the dimensions parameter to the embedding API even if embedding.dimensions is configured. Useful for local models like Qwen3-Embedding that reject the field.",
"advanced": true
},
"embedding.taskQuery": {
"label": "Query Task",
"placeholder": "retrieval.query",
Expand Down
Loading