一个为 AstrBot 框架设计的 Sentence Transformers 嵌入向量生成插件,提供本地部署的文本嵌入功能。
- 🚀 本地化部署: 使用 Sentence Transformers 模型在本地生成文本嵌入向量
- 🔧 无缝集成: 作为 AstrBot 的 Provider 适配器,可直接在框架配置中使用
- 📦 自动配置注册: 插件启动时自动注册配置项到 AstrBot 全局配置
- 🧹 资源清理: 插件卸载时自动清理注册的配置和适配器
- 🔌 即插即用: 简单的安装和配置流程
- Python 3.10+
- AstrBot 框架
pip install sentence-transformers插件会自动检查依赖,如果缺少 sentence-transformers 库,会在初始化时提示安装。
插件初始化时会自动向 AstrBot 注册以下配置:
{
"provider_group": {
"metadata": {
"provider": {
"config_template": {
"STEmbedding": {
"id": "STEmbedding",
"type": "STEmbedding",
"provider": "Local",
"STEmbedding_path": "./paraphrase-multilingual-MiniLM-L12-v2/",
"STEmbedding_torch_load_weights_only": "auto",
"provider_type": "embedding",
"enable": true,
"embedding_dimensions": 384
}
},
"items": {
"STEmbedding_path": {
"description": "SentenceTransformer模型的路径",
"type": "string"
},
"STEmbedding_torch_load_weights_only": {
"description": "torch.load 的 weights_only(auto/true/false)。PyTorch 2.6+ 默认 true,部分旧模型需 false(仅可信模型)",
"type": "string"
}
}
}
}
}
}| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
STEmbedding_path |
string | "./paraphrase-multilingual-MiniLM-L12-v2/" |
Sentence Transformer 模型路径,支持相对路径和绝对路径 |
STEmbedding_torch_load_weights_only |
string | "auto" |
torch.load 的 weights_only 行为:auto/true/false。PyTorch 2.6+ 若遇到 Weights only load failed 可设为 false(仅可信模型) |
embedding_dimensions |
integer | 384 |
嵌入向量的维度 |
enable |
boolean | true |
是否启用该 provider |
provider_type |
string | "embedding" |
Provider 类型 |
- 相对路径: 相对于 AstrBot 的
data_dir目录 - 绝对路径: 直接使用指定的完整路径
可以在插件配置里面选择开机自启
第一次需要用户手动操作启动,使用指令/ste register将提供商注册到嵌入向量提供者
然后可以通过嵌入式模型的创建页面创建这个嵌入向量提供者
使用 /ste help 获取帮助
插件默认使用 paraphrase-multilingual-MiniLM-L12-v2 模型,支持多种语言。
支持任何兼容的 Sentence Transformers 模型:
- 从 Hugging Face Model Hub 下载模型
- 将模型放置在本地目录
- 在配置中指定路径
paraphrase-multilingual-MiniLM-L12-v2(默认,多语言,384维)all-MiniLM-L6-v2(英语,384维)paraphrase-albert-small-v2(英语,768维)distiluse-base-multilingual-cased-v2(多语言,512维)
initialize(): 插件启动时调用,注册配置和适配器terminate(): 插件停止时调用,清理配置和适配器
插件使用 AstrBot 的日志系统,日志前缀为 [STEmbedding]。
# 安装依赖
pip install sentence-transformers- 检查模型路径是否正确
- 确认模型文件完整
- 检查磁盘空间和权限
当你看到类似错误:Weights only load failed ... weights_only ...,说明当前模型权重文件不兼容 PyTorch 2.6 默认的 weights_only=True 安全加载。
- 推荐:在 Provider 配置中设置
STEmbedding_torch_load_weights_only为false(仅可信模型) - 或者:升级/更换为支持
safetensors的模型与依赖组合
- 确认插件已正确加载
- 检查插件初始化日志
- 重启 AstrBot
- 使用更小的模型
- 增加系统内存
- 分批处理文本
- 初始版本发布
- 支持 Sentence Transformers 模型
- 自动配置注册和清理
- 提供基本的嵌入向量生成功能
- 修改注册和清理方法,防止报错
- 修改编码方法为线程池
- 修改模型读取代码
- 修改模型读取代码为异步,更改第三方包检测代码
- 添加重新加载数据库的代码,防止找不到本地编码器导致的数据库加载失败
- 完全重构代码,保持逻辑的一致性
- 修改卸载参数为异步方法
- 修改刷新数据库逻辑移动到astrbot初始化后
- 兼容torch 2.6的weights_only
- 提交 Issue: GitHub Issues
- QQ群: 1083090761
- Sentence Transformers - 用于生成嵌入向量
- AstrBot - 提供插件框架