1. Hugging Face 本地模型
使用场景
在数据保密要求较高的场景下,当数据不允许传输到外网时,可以选择使用 Hugging Face 本地嵌入模型。
配置步骤
- 安装必要包
- 安装 langchain-huggingface
- LangChain 团队基于 huggingface 封装的第三方社区包
- 安装 sentence-transformers
- 用于生成和使用预训练的文本嵌入
- 基于 transformer 架构
- 目前使用量最大的本地文本嵌入模型
- 命令如下:
- 安装 langchain-huggingface
pip install -U langchain-huggingface sentence-transformers
使用说明
- 模型加载特点
- sentence-transformers 首次加载时会将模型从本地加载到内存
- 首次加载速度相对较慢
- 后续调用恢复正常速度
- 代码示例
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings()
query_vector = embeddings.embed_query("你好,我是xxx,我喜欢打篮球")
print(query_vector)
print(len(query_vector))
- 加载自定义模型
- 可以加载任意本地文本嵌入模型
- 需要传递以下参数:
- model_name
- cache_folder
- 代码示例
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name="neuml/pubmedbert-base-embeddings",
cache_folder="./embeddings/"
)
query_vector = embeddings.embed_query("你好,我是慕小课,我喜欢打篮球")
print(query_vector)
print(len(query_vector))
注意事项
配置完成后,可以像普通文本嵌入模型一样使用,无需额外设置。
2 使用中转大模型
资源准备
- API Key:此项配置填写在一步API官网
https://yibuapi.com
创建API令牌,一键直达API令牌创建页面 - 创建API令牌步骤请参考API Key的获取和使用
- API Host:此项配置填写https://yibuapi.com/v1
- 查看支持的模型请参考这篇教程模型在线查询
配置自己的项目或者AI工具即可
3 HuggingFace远程嵌入模型
部分模型的文件比较大,如果只是短期内调试,可以考虑使用 HuggingFace 提供的远程嵌入模型,首先安装对应的依赖:
pip install huggingface_hub
然后在 Hugging Face 官网(https://huggingface.co/)的 setting 中添加对应的访问秘钥,并配置到 .env 文件中:
HUGGINGFACEHUB_API_TOKEN=xxx
接下来就可以使用 Hugging Face 提供的推理服务,这样在本地服务器上就无需配置对应的文本嵌入模型了。
import dotenv
from langchain_huggingface import HuggingFaceEndpointEmbeddings
dotenv.load_dotenv()
embeddings = HuggingFaceEndpointEmbeddings(model="sentence-transformers/all-MiniLM-L12-v2")
query_vector = embeddings.embed_query("你好,我是xxx,我喜欢打篮球")
print(query_vector)
print(len(query_vector))
相关资料信息:
- 💡大模型中转API推荐
- ✨中转使用教程
- Hugging Face 官网:https://huggingface.co/
- HuggingFace 嵌入文档:https://python.langchain.com/v0.2/docs/integrations/text_embedding/sentence_transformers/
- HuggingFace 嵌入翻译文档:http://imooc-langchain.shortvar.com/docs/integrations/text_embedding/sentence_transformers/
3. 百度千帆文本嵌入模型
如果想对接国内的文本嵌入模型提供商,可以考虑百度千帆,是目前国内生态最好,支持的模型最多(Embedding-V1、bge-large-zh、bge-large-en、tao-8k),速度最快的 AI 应用开发平台。
由于目前百度千帆并没有单独封装到独立的包,可以直接从 langchain_community 中导入,使用示例如下:
import dotenv
from langchain_community.embeddings.baidu_qianfan_endpoint import QianfanEmbeddingsEndpoint
dotenv.load_dotenv()
embeddings = QianfanEmbeddingsEndpoint()
query_vector = embeddings.embed_query("我叫xxx,我喜欢打篮球游泳")
print(query_vector)
print(len(query_vector))
相关资料信息:
- 💡大模型中转API推荐
- ✨中转使用教程
- 百度千帆预设模型列表:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu
- 百度千帆嵌入文档:https://python.langchain.com/v0.2/docs/integrations/text_embedding/baidu_qianfan_endpoint/
- 百度千帆嵌入翻译文档:http://imooc-langchain.shortvar.com/docs/integrations/text_embedding/baidu_qianfan_endpoint/