引言
在大数据和AI的时代,Databricks Lakehouse平台以统一数据、分析和AI的能力而备受关注。本篇文章旨在帮助你快速了解如何在Databricks环境中使用嵌入模型,并展示如何将其集成到LangChain应用中。
主要内容
DatabricksEmbeddings概览
DatabricksEmbeddings类封装了一个嵌入模型端点,通过Databricks模型服务托管。它支持所有Embeddings类的方法,包括异步API。
端点要求
该端点必须具备OpenAI兼容的嵌入输入/输出格式。DatabricksEmbeddings可用于在Databricks模型服务上托管的任何端点类型:
- 基础模型:例如BAAI General Embedding (BGE),这些模型无需设置即可在Databricks工作区中使用。
- 自定义模型:通过MLflow部署自定义嵌入模型。
- 外部模型:作为代理服务,用于托管如OpenAI text-embedding-3等外部模型。
设置
要访问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 Databricks集成在langchain-community包中,并需要安装mlflow版本≥2.9。
%pip install -qU langchain-community mlflow>=2.9.0
代码示例
查询模型
下面展示了如何查询托管为基础模型端点的BGE模型。
from langchain_community.embeddings import DatabricksEmbeddings
embeddings = DatabricksEmbeddings(
endpoint="databricks-bge-large-en", # 使用API代理服务提高访问稳定性
)
# 嵌入单个文本
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]) # 显示每个嵌入的前3个元素
常见问题和解决方案
-
网络限制:由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。
-
版本兼容性:确保安装的
mlflow版本与langchain-community包兼容,以避免潜在的版本冲突。
总结和进一步学习资源
Databricks的嵌入模型提供了一种可靠的方式来统一处理数据、分析和AI。推荐阅读以下资源以深入了解:
参考资料
- api.python.langchain.com/en/latest/e…
- Databricks官方文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---