Cohere Embed-v4多模态嵌入

Azure AI 平台上 Cohere Embed-v4 和 Rerank-v4 模型的接入与测试,以及从 Jina 到 Cohere 的 LanceDB Pro 记忆插件迁移。

概述

Cohere Embed-v4 是一款多模态嵌入模型,维度为1536维,相比之前使用的 Jina 模型(1024维)有更好的语义理解能力。项目涉及在两个 Azure AI Services 节点(resley-sweden 和 prism-foundry)上测试 Cohere Rerank v4.0-pro 和 Embed-v4 的可用性,以及将本地 LanceDB Pro 记忆插件从 Jina 切换到 Cohere 的完整迁移过程。

迁移过程中发现了多个关键差异:Cohere embed 的 input 必须是数组而非字符串、API 路径格式与 OpenAI 不同(/providers/cohere/v2/rerank vs /models/embeddings)、以及维度变化(1024→1536)导致需要重建整个 LanceDB 向量数据库。

关键点

  • Cohere Embed-v4 优势:多模态、1536维、支持图片嵌入、配合 rerank 效果更好
  • Cohere vs OpenAI Embedding:Embed-v4 综合更强,但 text-embedding-3-large 维度更高(3072维)
  • API 路径差异:Azure 上三种模型 API 走三个不同路径
  • input 格式要求:Cohere embed 的 input 必须是数组 ["text"],不能是字符串
  • 维度迁移:1024→1536,需要重建 LanceDB 数据库(275条记忆)
  • 双节点验证:resley-sweden 和 prism-foundry 两个节点均通过测试

技术细节

Cohere Rerank v4.0-pro API

POST {base}/providers/cohere/v2/rerank
Header: api-key: {KEY}
Body: {
    "model": "Cohere-rerank-v4.0-pro",
    "query": "What is Python?",
    "documents": ["Python is a programming language", "Java is popular", "The sky is blue"],
    "top_n": 2
}
# 结果:Python → 0.94, Java → 0.39

Cohere Embed-v4 API

POST {base}/openai/v1/embeddings
Header: api-key: {KEY}
Body: {
    "model": "embed-v-4-0",
    "input": ["text"]  # ⚠️ 必须是数组!
}
# 1536维向量

OpenAI text-embedding-3-large API

POST {base}/models/embeddings?api-version=2024-05-01-preview
Header: api-key: {KEY}
Body: {
    "model": "text-embedding-3-large",
    "input": "text"  # 可以是字符串
}
# 3072维向量

Cohere vs OpenAI 对比

|        | Cohere embed-v4         | OpenAI text-embedding-3-large |
| ------ | ----------------------- | ----------------------------- |
| 维度   | 1536                    | 3072                          |
| 多模态 | ✅ (支持图片)           | ❌                            |
| Rerank | 原生配合                | 需第三方                      |
| 推荐   | RAG + 多模态场景        | 纯文本高精度场景              |

LanceDB Pro 迁移步骤

  1. config.json — 切换 embedding 和 rerank 配置到 Cohere
  2. src/embedder.ts — 添加 Cohere embed-v4 的 provider profile(input 必须是数组)
  3. src/retriever.ts — 添加 "cohere" rerank provider adapter
  4. 数据库重建 — 维度变化(1024→1536),重新索引275条记忆
  5. 修复 scope 权限memory_updatememory_forget scope 权限问题

关键差异总结

| 对比项   | Jina                  | Cohere (Azure)                |
| -------- | --------------------- | ----------------------------- |
| Auth     | Authorization: Bearer | api-key header                |
| Input    | 字符串/数组均可       | 必须是数组                    |
| 维度     | 1024                  | 1536                          |
| Rerank   | results[].relevance_score | results[].relevance_score |

时间线

  • 2026-03-19: 测试 Cohere rerank-v4.0-pro,发现 API 走 /providers/cohere/ 路径
  • 2026-03-19: 验证两个节点(resley-sweden, prism-foundry)的 rerank 和 embed 可用性
  • 2026-03-19: 验证全部6个 Azure AI endpoint(3种API × 2节点)
  • 2026-03-19: 开始 LanceDB Pro 从 Jina 迁移到 Cohere
  • 2026-03-19: 完成代码修改和数据库重建(275条记忆),修复 scope 权限问题
  • 2026-03-20: 确认 store/recall/update/forget 全部验证通过

相关页面