feat: embedding service — Cloudflare Worker + KV cache + Dashscope

- POST /embed: batch text → vector (max 100)
- KV cache: sha256(model+text), content-addressable, no expiry
- Dashscope text-embedding-v3 upstream (1024 dims)
- Bearer token auth
- Health endpoint

Deployed: https://embed.shazhou.workers.dev
This commit is contained in:
2026-04-29 07:21:46 +00:00
parent 1d225ed171
commit 396e005686
9 changed files with 2254 additions and 2 deletions
+43 -2
View File
@@ -1,3 +1,44 @@
# embed
# Embedding Service
Embedding computation service — text → vector + cache (Cloudflare Worker)
Text → vector 计算服务,nerve knowledge 的 embedding 后端。
## 接口
```
POST /embed
Authorization: Bearer <token>
{
"texts": ["chunk 1", "chunk 2"],
"model": "text-embedding-v3"
}
→ 200
{
"embeddings": [[0.012, ...], [0.056, ...]],
"model": "text-embedding-v3",
"dimensions": 1024,
"cached": [false, true]
}
```
## 特性
- **缓存**: KV 存储,key = sha256(model + text),永不过期
- **上游**: Dashscope text-embedding-v3(可配置)
- **批量**: 单次最多 100 条
- **鉴权**: Bearer token
## 开发
```bash
pnpm install
pnpm dev # 本地开发
pnpm deploy # 部署到 Cloudflare Workers
```
## 环境变量(Secrets)
- `AUTH_TOKEN` — 鉴权 token
- `DASHSCOPE_API_KEY` — Dashscope API key
- `DEFAULT_MODEL` — 默认模型(可选,默认 text-embedding-v3)