# 引言
随着数据科学和人工智能的快速发展,Databricks Lakehouse平台提供了一种将数据、分析和AI集成在一起的高效解决方案。在这篇文章中,我们将深入探讨如何在Databricks中使用嵌入模型,让您更轻松地在LangChain应用程序中集成这些功能。本指南旨在帮助您快速上手,同时也为高级用户提供一些有价值的见解。
# 主要内容
## DatabricksEmbeddings简介
`DatabricksEmbeddings`类封装了一个嵌入模型的端点,该端点通过Databricks Model Serving托管。此类支持所有`Embeddings`类的方法,包括异步API。
### 支持的端点类型
1. **基础模型**:可以在Databricks工作区中使用的先进基础模型。
2. **自定义模型**:通过MLflow部署自己选择的嵌入模型。
3. **外部模型**:可以作为代理提供外部模型服务。
## 环境设置
要访问Databricks模型,您需要创建一个Databricks账户、设置凭证(如果在Databricks工作区外部),并安装所需的包。
### 凭证设置(仅适用于Databricks外部)
如果您在Databricks中运行LangChain应用程序,可以跳过此步骤。否则,需要手动设置工作区主机名和个人访问令牌。
```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
查询托管为基础模型的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]) # 显示每个嵌入的前3个元素
常见问题和解决方案
连接失败或超时
由于某些地区的网络限制,访问Databricks API时可能会遇到连接问题。建议使用API代理服务来提高访问的稳定性。
权限和认证问题
确保凭证设置正确,并具有访问指定Databricks工作区的权限。如果有问题,请参考认证文档。
总结和进一步学习资源
通过本文,您已经了解了如何在Databricks中使用嵌入模型,并在LangChain应用中集成这些功能。更多详细信息可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---