Skip to content

feat(vertex): support OpenAI-compatible embeddings - #1

Open
jerry-airjelly wants to merge 3 commits into
mainfrom
airjelly/vertex-embedding
Open

feat(vertex): support OpenAI-compatible embeddings#1
jerry-airjelly wants to merge 3 commits into
mainfrom
airjelly/vertex-embedding

Conversation

@jerry-airjelly

Copy link
Copy Markdown
Member

⚠️ 提交说明 / PR Notice

Important

  • 本 PR 的实现与测试由提交者使用 AI Coding Agent 协助完成,描述已根据实际代码路径整理。

📝 变更描述 / Description

为 Vertex AI 渠道补充 OpenAI-compatible /v1/embeddings 支持。请求会转换为 Vertex :predictinstances 格式,响应会转回 OpenAI data[] 格式,并传递 prompt token usage。

实现对当前 Vertex :predict 能力保持明确边界:仅接受单个非空文本输入,验证 encoding_formatdimensions,并在上游响应数量与请求不一致时返回带归因的错误。

上游已有 QuantumNous#4640 尝试解决同一能力缺口。本 PR 是基于当前 main 的替代实现,区别是将 Vertex request/response DTO 和转换边界放在 Vertex adaptor 中,并提供针对单输入、维度、usage 和无效响应的确定性回归测试,供维护者比较。

🚀 变更类型 / Type of change

  • 🐛 Bug 修复 (Bug fix) - 请关联对应 Issue,避免将设计取舍、理解偏差或预期不一致直接归类为 bug
  • ✨ 新功能 (New feature) - 重大特性建议先通过 Issue 沟通
  • ⚡ 性能优化 / 重构 (Refactor)
  • 📝 文档更新 (Documentation)

🔗 关联任务 / Related Issue

✅ 提交前检查项 / Checklist

  • 人工确认: 我已亲自整理并撰写此描述,没有直接粘贴未经处理的 AI 输出。
  • 非重复提交: 我已搜索现有的 IssuesPRs,确认不是重复提交。
  • Bug fix 说明: 本 PR 不是 Bug fix。
  • 变更理解: 我已理解这些更改的工作原理及可能影响。
  • 范围聚焦: 本 PR 未包含任何与当前任务无关的代码改动。
  • 本地验证: 已在本地运行 Vertex 定向测试和全仓 Go 测试。
  • 安全合规: 代码中无敏感凭据,且符合项目代码规范。

📸 运行证明 / Proof of Work

  • go test ./relay/channel/vertex
  • GOWORK=off go test ./...
  • 回归用例覆盖单文本输入、维度限制、非 float encoding、Vertex 响应转换、token usage 和异常响应数量。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants