Skip to content

Latest commit

 

History

History
143 lines (99 loc) · 3.81 KB

File metadata and controls

143 lines (99 loc) · 3.81 KB

GitHub Stars Vectorize Worker

极简 Cloudflare Worker,作为 Cloudflare Vectorize 的代理。前端负责 Embedding 生成,Worker 只负责向量的存/查/删。

前置条件

首次部署

1. 创建 Vectorize 索引

索引维度必须与你选择的 Embedding 模型一致:

# OpenAI text-embedding-3-small (1536维)
npx wrangler vectorize create github-stars --dimensions=1536 --metric=cosine

# Ollama nomic-embed-text (768维)
npx wrangler vectorize create github-stars --dimensions=768 --metric=cosine

# Cohere embed-multilingual-v3.0 (1024维)
npx wrangler vectorize create github-stars --dimensions=1024 --metric=cosine

# Gemini text-embedding-004 (768维)
npx wrangler vectorize create github-stars --dimensions=768 --metric=cosine

# 硅基流动 BAAI/bge-large-zh-v1.5 (1024维)
npx wrangler vectorize create github-stars --dimensions=1024 --metric=cosine

2. 安装依赖

npm install

3. 设置认证令牌

wrangler secret put AUTH_TOKEN
# 输入一个安全的随机字符串,例如:openssl rand -hex 32

4. 部署

npm run deploy

部署成功后,Wrangler 会输出 Worker 的 URL,格式类似:

https://github-stars-vectorize.<your-subdomain>.workers.dev

5. 在 App 中配置

在 GitHub Stars Manager 的 设置 → 向量搜索 中:

  • Worker 地址: 填入上一步的 URL
  • 认证 Token: 填入你设置的 AUTH_TOKEN 值

6. 测试连接

在设置页点击 测试 Worker 连接,看到 "连接成功" 即可。


更新部署(代码变更后)

当你更新了 Worker 代码(例如从 GitHub 拉取了新版本),需要重新部署:

cd cloudflare-worker

# 如果依赖有变更(package.json 更新了)
npm install

# 重新部署
npm run deploy

注意:更新部署不需要重新创建 Vectorize 索引,已有向量数据不受影响。


更换 Embedding 模型

⚠️ 更换模型后必须重建索引! 不同模型生成的向量维度不同,混用会导致查询失败。

步骤:

  1. 在 App 设置中更换 Embedding 模型
  2. 如果新模型的维度与旧模型不同,需要删除旧索引并创建新索引
    # 删除旧索引
    npx wrangler vectorize delete github-stars
    
    # 创建新索引(维度与新模型一致)
    npx wrangler vectorize create github-stars --dimensions=1024 --metric=cosine
  3. 在 App 中点击 重建向量索引

文件说明

文件 说明
src/index.ts Worker 源码(TypeScript,CLI 部署使用)
worker.js Worker 代码(纯 JS,备用)
wrangler.toml Wrangler 部署配置
package.json 依赖声明

API 接口

方法 路径 说明
POST /upsert 批量写入向量
POST /query 向量相似度查询
POST /delete 删除指定向量
POST /cleanup 清理不在 keepIds 列表中的向量
GET /status 获取索引状态

所有请求需要 Authorization: Bearer <AUTH_TOKEN> 头。

本地开发

npm run dev

常见 Embedding 模型维度参考

模型 维度 多语言 价格
OpenAI text-embedding-3-small 1536 $0.02/M
OpenAI text-embedding-3-large 3072 $0.13/M
Gemini text-embedding-004 768 免费
Cohere embed-multilingual-v3.0 1024 $0.1/M
Ollama nomic-embed-text 768 免费
Ollama bge-m3 1024 免费
硅基流动 BAAI/bge-large-zh-v1.5 1024 ¥0.5/M