Name Last Update
..
CLOUD_EMBEDDING_README.md Loading commit data...
README.md Loading commit data...
__init__.py Loading commit data...
bge_model.py Loading commit data...
clip_as_service_encoder.py Loading commit data...
clip_model.py Loading commit data...
cloud_embedding_usage.md Loading commit data...
cloud_text_encoder.py Loading commit data...
config.py Loading commit data...
image_encoder.py Loading commit data...
protocols.py Loading commit data...
server.py Loading commit data...
text_encoder.py Loading commit data...

README.md

Embeddings 模块

请求示例docs/QUICKSTART.md §3.3。


这个目录是一个完整的“向量化模块”,包含:

  • HTTP 客户端text_encoder.py / image_encoder.py(供搜索/索引模块调用)
  • 本地模型实现bge_model.py / clip_model.py
  • clip-as-service 客户端clip_as_service_encoder.py(图片向量,推荐)
  • 向量化服务(FastAPI)server.py
  • 统一配置config.py
  • 接口契约protocols.ImageEncoderProtocol(图片编码统一为 encode_image_urls(urls, batch_size),本地 CN-CLIP 与 clip-as-service 均实现该接口)

服务接口

  • POST /embed/text

    • 入参:["文本1", "文本2", ...]
    • 出参:[[...], null, ...](与输入按 index 对齐,失败为 null
  • POST /embed/image

    • 入参:["url或本地路径1", ...]
    • 出参:[[...], null, ...](与输入按 index 对齐,失败为 null

图片向量:clip-as-service(推荐)

默认使用 third-party/clip-as-service 的 Jina CLIP 服务生成图片向量。

  1. 安装 clip-client(首次使用):

    pip install -e third-party/clip-as-service/client
    
  2. 启动 CN-CLIP 服务(独立 gRPC 服务,默认端口 51000,详见 docs/CNCLIP_SERVICE说明文档.md):

    ./scripts/start_cnclip_service.sh
    
  3. 配置embeddings/config.py 或环境变量):

    • USE_CLIP_AS_SERVICE=true(默认)
    • CLIP_AS_SERVICE_SERVER=grpc://127.0.0.1:51000

启动服务

使用仓库脚本启动(默认端口 6005):

./scripts/start_embedding_service.sh

修改配置

编辑 embeddings/config.py

  • PORT: 服务端口(默认 6005)
  • TEXT_MODEL_DIR, TEXT_DEVICE, TEXT_BATCH_SIZE
  • USE_CLIP_AS_SERVICE, CLIP_AS_SERVICE_SERVER:图片向量(clip-as-service)
  • IMAGE_MODEL_NAME, IMAGE_DEVICE:本地 CN-CLIP(当 USE_CLIP_AS_SERVICE=false 时)