ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TextGen /v1/embeddings 接口怎么用:调用方式与 OPENEDAI_EMBEDDING_MODEL 换模型

TextGen /v1/embeddings 接口怎么用:调用方式与 OPENEDAI_EMBEDDING_MODEL 换模型 TextGen /v1/embeddings 接口怎么用调用方式与 OPENEDAI_EMBEDDING_MODEL 换模型【免费下载链接】textgenOpen-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.项目地址: https://gitcode.com/GitHub_Trending/te/textgenTextGen 内置的 OpenAI 兼容 API 提供了一个/v1/embeddings端点可以把本地文本转成向量供检索、分类、moderations 等场景使用。这个端点目前处于 alpha 状态底层使用sentence-transformers库加载 HuggingFace 模型默认模型为sentence-transformers/all-mpnet-base-v2768 维。本文给出从启动 API、发起调用到验证返回再到用OPENEDAI_EMBEDDING_MODEL环境变量更换嵌入模型的完整操作路径。准备条件两件事需要先确认安装sentence-transformers。嵌入端点依赖这个库而 chat / completions 端点不依赖它未安装时那两个端点仍正常工作。如果你调用/v1/embeddings时看到The sentence_transformers module has not been found. Please install it manually with pip install -U sentence-transformers.的报错按提示安装即可pip install -U sentence-transformers启动时加--api标志开启 API 服务器。默认监听端口是 5000可用--api-port 1234改成其他端口1234 换成你实际要用的端口号如需鉴权加--api-key yourkey。这些标志可以直接跟在启动命令后也可以写入user_data/CMD_FLAGS.txt持久化。python server.py --api --api-port 5000调用 /v1/embeddings端点完整路径是http://127.0.0.1:5000/v1/embeddings方法为 POST。请求体中最关键的是input参数缺省会直接返回 400 错误Missing required argument input。input支持单个字符串也支持字符串/整数列表定义见 EmbeddingsRequestcurl http://127.0.0.1:5000/v1/embeddings \ -H Content-Type: application/json \ -d { input: Hello, this is a test text. }其他参数encoding_formatfloat默认或base64控制向量以浮点数组还是 base64 字符串返回model未使用的占位参数。换模型不能通过这个字段只能改环境变量见下文user未使用的占位参数。如果启动时配置了--api-key请求要带上鉴权头headers { Content-Type: application/json, Authorization: Bearer yourPassword123 }其中yourPassword123替换成你启动时--api-key设置的值。理解并验证返回结果返回是一个 JSON 对象结构由 embeddings.py 固定object为listdata是数组每个元素包含object: embedding、embedding向量本身、indexmodel字段返回实际加载的嵌入模型名这是判断换模型是否生效的直接依据usage中prompt_tokens和total_tokens固定为 0该端点不统计 token 用量。验证要点数值来自 docs/12 - OpenAI API.md 的模型对比表默认模型all-mpnet-base-v2产生768 维向量即data[0].embedding长度为 768改用all-MiniLM-L6-v2后向量变为384 维返回的model字段应显示你通过环境变量设置的模型名。嵌入模型是懒加载的第一次调用/v1/embeddings时才真正加载所以首次请求会明显慢一些属正常现象逻辑见 get_embeddings_model。如果模型加载失败端点会返回 503错误信息为Error: Failed to load embedding model: {model}此时检查模型名是否拼写正确、网络能否访问 HuggingFace。用 OPENEDAI_EMBEDDING_MODEL 更换模型请求体里的model参数不生效换模型必须在启动服务器之前设置环境变量OPENEDAI_EMBEDDING_MODELtyping.py 中的说明即为 set ... environment variables before starting the server。文档给出的示例值是all-MiniLM-L6-v2# Linux / macOS OPENEDAI_EMBEDDING_MODELall-MiniLM-L6-v2 python server.py --api:: Windows set OPENEDAI_EMBEDDING_MODELall-MiniLM-L6-v2 python server.py --api选哪个模型可以参照文档中的对比表model namedimensionsinput max tokensspeedsizeAvg. performanceall-mpnet-base-v27683842800420M63.3all-MiniLM-L6-v23842561420080M58.8文档的结论是all-MiniLM-L6-v2快 5 倍、显存/内存占用小 5 倍、体积小 2 倍质量仍然不错。另外可以用OPENEDAI_EMBEDDING_DEVICE指定嵌入模型运行的设备如cuda默认cpuauto表示自动选择例如OPENEDAI_EMBEDDING_MODELall-MiniLM-L6-v2 OPENEDAI_EMBEDDING_DEVICEcuda python server.py --api换模型后重复上面的 curl 调用确认返回的model字段和向量维度384都变了说明切换成功。警告文档原文提示不能混用不同模型产生的嵌入即使维度相同也不可互相比较。如果你更换了模型之前用旧模型算出的向量需要重算。已知限制该端点标注为 alpha当前模型sentence-transformers/all-mpnet-base-v2与嵌入维度未来可能改变不要把 768 维写死进依赖代码请求参数里的model字段不生效模型只能靠启动前的环境变量决定改模型需要重启服务并重新加载/v1/moderations端点也基于同一套嵌入实现同样受sentence-transformers安装与否影响。各端点参数类型与更多细节可查服务自带文档http://127.0.0.1:5000/docs或在 docs/12 - OpenAI API.md 中对照。【免费下载链接】textgenOpen-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.项目地址: https://gitcode.com/GitHub_Trending/te/textgen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表