[一站式解决方案:如何在LangChain应用中使用Databricks嵌入模型]

86 阅读3分钟

一站式解决方案:如何在LangChain应用中使用Databricks嵌入模型

引言

在数据驱动的世界中,能够有效利用数据以进行预测和决策是许多企业成功的关键。Databricks Lakehouse Platform正如其名,融合了数据、分析及AI,提供了一个统一的平台。本文旨在帮助您快速入门Databricks的嵌入模型,并展示如何将其集成到您的LangChain应用中。

主要内容

Databricks Embeddings简介

Databricks Embeddings封装了一个嵌入模型端点,这些端点托管在Databricks Model Serving中。使用Databricks Embeddings类,可以轻松地将这些端点用作LangChain应用中的嵌入模型。

支持的方法

Databricks Embeddings支持Embeddings类的所有方法,包括异步API。

端点要求

Databricks Embeddings封装的服务端点必须具有兼容OpenAI的嵌入输入/输出格式。可以使用任何托管在Databricks Model Serving上的端点类型:

  • 基础模型:如BAAI General Embedding,提供现成可用的最先进基础模型。
  • 自定义模型:通过MLflow可以部署自定义嵌入模型。
  • 外部模型:Databricks端点可以作为代理服务外部托管的模型,如OpenAI text-embedding-3。

设置

为了访问Databricks模型,需要创建Databricks帐户,设置凭据(如果你在Databricks工作区外),并安装必要的软件包。

凭据

在Databricks内运行LangChain应用时可跳过此步骤。否则,需要手动设置Databricks工作区主机名和个人访问令牌为DATABRICKS_HOSTDATABRICKS_TOKEN环境变量。

import os
import getpass

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代理服务提高访问稳定性
    # 可以在此指定嵌入查询和文档的参数
    # query_params={...},
    # document_params={...},
)

# 嵌入单个文本
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端点时可能会遇到连接问题。可以考虑使用API代理服务来提高访问的稳定性。

自定义模型部署困难

确保您的自定义模型部署时input/output格式兼容OpenAI,如果遇到问题,请查阅Databricks文档

总结和进一步学习资源

本文讨论了如何在LangChain应用中集成Databricks嵌入模型。通过理解端点的设置和支持的方法,您可以在应用中高效地利用这些模型。进一步学习可以参考:

参考资料

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