news 2026/6/9 17:27:52

BGE-M3实战入门:curl命令行调用、Postman配置、Swagger接口文档生成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BGE-M3实战入门:curl命令行调用、Postman配置、Swagger接口文档生成

BGE-M3实战入门:curl命令行调用、Postman配置、Swagger接口文档生成

1. BGE-M3模型简介

BGE-M3是由113小贝二次开发构建的句子相似度模型,它是一个专为检索场景设计的"三合一"文本嵌入模型。这个模型的核心特点可以用一句话概括:

密集+稀疏+多向量三模态混合检索嵌入模型(dense & sparse & multi-vector retriever in one)

与生成式语言模型不同,BGE-M3属于双编码器(bi-encoder)类检索模型,它的主要功能是生成文本的嵌入表示,而不是直接生成文本内容。

2. 服务部署与验证

2.1 启动服务

推荐方式:使用启动脚本

bash /root/bge-m3/start_server.sh

替代方式:直接启动

export TRANSFORMERS_NO_TF=1 cd /root/bge-m3 python3 app.py

后台运行

nohup bash /root/bge-m3/start_server.sh > /tmp/bge-m3.log 2>&1 &

2.2 验证服务状态

检查服务端口是否正常监听:

netstat -tuln | grep 7860 # 或 ss -tuln | grep 7860

访问服务界面:

http://<服务器IP>:7860

查看实时日志:

tail -f /tmp/bge-m3.log

3. 模型参数与使用建议

3.1 关键参数

  • 向量维度: 1024
  • 最大长度: 8192 tokens
  • 支持语言: 100+ 种语言
  • 精度模式: FP16(加速推理)

3.2 场景推荐

场景推荐模式说明
语义搜索Dense适合语义相似度匹配
关键词匹配Sparse适合精确关键词检索
长文档匹配ColBERT适合长文档细粒度匹配
高准确度混合模式三种模式组合,准确度最高

4. 接口调用实战

4.1 curl命令行调用

获取文本嵌入的基本调用示例:

curl -X POST "http://localhost:7860/embed" \ -H "Content-Type: application/json" \ -d '{ "texts": ["这是一个测试句子", "这是另一个句子"], "mode": "dense" }'

批量处理多个文本:

curl -X POST "http://localhost:7860/batch_embed" \ -H "Content-Type: application/json" \ -d '{ "texts": [ ["句子1-1", "句子1-2"], ["句子2-1", "句子2-2"] ], "mode": "mixed" }'

4.2 Postman配置指南

  1. 新建POST请求,URL填写:http://<服务器IP>:7860/embed
  2. 在Headers中添加:
    • Content-Type: application/json
  3. 在Body中选择raw,输入JSON格式请求:
{ "texts": ["需要嵌入的文本"], "mode": "dense", "normalize": true }
  1. 点击Send发送请求

高级配置

  • 设置超时时间:在请求设置中调整Timeout
  • 保存环境变量:将服务器IP保存为环境变量方便管理

4.3 Swagger接口文档生成

在Python中自动生成Swagger文档的示例代码:

from flask_swagger_ui import get_swaggerui_blueprint SWAGGER_URL = '/api/docs' API_URL = '/swagger.json' swaggerui_blueprint = get_swaggerui_blueprint( SWAGGER_URL, API_URL, config={ 'app_name': "BGE-M3 API文档" } ) app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL) @app.route('/swagger.json') def swagger(): with open('swagger.json', 'r') as f: return jsonify(json.load(f))

Swagger文档内容示例

{ "openapi": "3.0.0", "info": { "title": "BGE-M3 Embedding API", "version": "1.0.0" }, "paths": { "/embed": { "post": { "summary": "获取文本嵌入", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "texts": { "type": "array", "items": { "type": "string" } }, "mode": { "type": "string", "enum": ["dense", "sparse", "colbert", "mixed"] } } } } } } } } } }

5. 注意事项与优化建议

5.1 部署注意事项

  1. 环境变量:必须设置TRANSFORMERS_NO_TF=1禁用 TensorFlow
  2. 模型路径:使用本地缓存/root/.cache/huggingface/BAAI/bge-m3
  3. GPU支持:自动检测CUDA,若无GPU则使用CPU
  4. 端口冲突:确保7860端口未被占用

5.2 性能优化建议

  • 批量处理:尽量使用batch接口减少请求次数
  • 缓存结果:对重复文本考虑本地缓存嵌入结果
  • 模式选择:根据场景选择最适合的检索模式
  • 长度控制:过长的文本考虑分段处理

6. 总结

BGE-M3作为多功能嵌入模型,通过本文介绍的curl、Postman和Swagger三种方式,可以方便地集成到各种应用中。无论是简单的命令行测试,还是复杂的系统集成,都能找到合适的调用方式。

实际使用中建议:

  1. 先通过curl快速验证接口可用性
  2. 使用Postman进行详细接口测试
  3. 通过Swagger文档规范API使用
  4. 根据业务场景选择合适的检索模式

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 7:45:24

STM32 OTG音频设备应用项目实战

以下是对您提供的博文内容进行深度润色与工程化重构后的版本。我以一位深耕嵌入式音频多年、亲手调通过数十款STM32UAC2方案的工程师视角&#xff0c;重新组织逻辑、强化实战细节、剔除AI腔调&#xff0c;并注入真实开发中踩过的坑、验证过的参数、调试时的心得——让这篇文章读…

作者头像 李华
网站建设 2026/6/7 7:09:12

XInputTest控制器性能检测工具全面解析与实战指南

XInputTest控制器性能检测工具全面解析与实战指南 【免费下载链接】XInputTest Xbox 360 Controller (XInput) Polling Rate Checker 项目地址: https://gitcode.com/gh_mirrors/xin/XInputTest XInputTest作为专业的Xbox 360控制器性能检测工具&#xff0c;为游戏开发者…

作者头像 李华
网站建设 2026/6/7 6:15:31

2分钟部署VibeThinker-1.5B:开发者实测推荐镜像方案

2分钟部署VibeThinker-1.5B&#xff1a;开发者实测推荐镜像方案 1. 为什么这款小模型值得你花2分钟试试&#xff1f; 你有没有遇到过这样的情况&#xff1a;想快速验证一个算法思路&#xff0c;却要等大模型加载半天&#xff1b;想在本地跑个数学推理任务&#xff0c;发现显存…

作者头像 李华
网站建设 2026/6/7 6:55:46

Qwen3-TTS-Tokenizer-12Hz详细步骤:Supervisor进程管理与自动重启配置

Qwen3-TTS-Tokenizer-12Hz详细步骤&#xff1a;Supervisor进程管理与自动重启配置 1. 为什么需要Supervisor来管理Qwen3-TTS-Tokenizer-12Hz&#xff1f; 你可能已经试过直接运行python app.py启动Qwen3-TTS-Tokenizer-12Hz的Web服务&#xff0c;但很快会遇到几个现实问题&am…

作者头像 李华
网站建设 2026/6/7 11:54:04

Qwen3-Embedding-0.6B真实体验:轻量模型响应飞快

Qwen3-Embedding-0.6B真实体验&#xff1a;轻量模型响应飞快 你有没有遇到过这样的场景&#xff1a;想快速给一批商品描述生成向量做相似匹配&#xff0c;但一跑大模型就卡在显存不足、启动要两分钟、单次embedding耗时800毫秒&#xff1f;或者在做实时搜索排序时&#xff0c;…

作者头像 李华
网站建设 2026/6/7 12:31:47

告别AppImage管理烦恼:Linux桌面应用的无缝集成解决方案

告别AppImage管理烦恼&#xff1a;Linux桌面应用的无缝集成解决方案 【免费下载链接】AppImageLauncher Helper application for Linux distributions serving as a kind of "entry point" for running and integrating AppImages 项目地址: https://gitcode.com/g…

作者头像 李华