# 如何在LangChain中使用Databricks LLM模型:快速入门指南
## 引言
Databricks Lakehouse平台通过统一的数据、分析和AI功能,为用户提供了一站式解决方案。在这篇文章中,我们将探讨如何在LangChain应用中使用Databricks LLM模型,并提供详细的设置和代码示例,帮助开发者快速上手。
## 主要内容
### DatabricksLLM概述
DatabricksLLM类包装了一个completion端点,可以作为以下两种端点类型之一进行托管:
- Databricks Model Serving:推荐用于生产和开发
- Cluster driver proxy app:推荐用于交互式开发
### 局限性
- DatabricksLLM类是旧实现,有多项功能兼容性限制。
- 仅支持同步调用,不支持流式或异步API。
- 不支持批量API。
要使用异步、流式等功能,请改用新的ChatDatabricks类。
### 设置步骤
#### 准备工作
您需要一个Databricks帐户,设置凭据(仅在不在Databricks工作区时需要),并安装必要的软件包。
#### 凭据设置
如果在Databricks工作区内运行LangChain应用,则可跳过此步骤。否则,需要手动设置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: ")
或者,在初始化Databricks类时传递这些参数:
from langchain_community.llms import Databricks
databricks = Databricks(
host="https://your-workspace.cloud.databricks.com",
token=dbutils.secrets.get(scope="YOUR_SECRET_SCOPE", key="databricks-token"), # 使用API代理服务提高访问稳定性
)
安装所需包
Databricks的LangChain集成在langchain-community包中。同时,mlflow >= 2.9也是必需的:
%pip install -qU langchain-community mlflow>=2.9.0
包装模型服务端点
前提条件
- 已注册并部署LLM到Databricks服务端点
- 拥有对端点的“Can Query”权限
预期的MLflow模型签名为:输入 prompt 和 stop,输出为字符串。
调用示例
from langchain_community.llms import Databricks
llm = Databricks(endpoint_name="YOUR_ENDPOINT_NAME")
response = llm.invoke("How are you?")
print(response) # 输出示例:'I am happy to hear that you are in good health and as always, you are appreciated.'
转换输入输出
如果服务端点的模型签名不兼容,或需要额外的配置,可以使用transform_input_fn和transform_output_fn来调整:
def transform_input(**request):
full_prompt = f"""{request["prompt"]}
Be Concise.
"""
request["prompt"] = full_prompt
return request
def transform_output(response):
return response.upper()
llm = Databricks(
endpoint_name="YOUR_ENDPOINT_NAME",
transform_input_fn=transform_input,
transform_output_fn=transform_output,
)
response = llm.invoke("How are you?")
print(response) # 输出示例:'I AM DOING GREAT THANK YOU.'
常见问题和解决方案
- 访问限制问题:在某些地区,直接访问Databricks API可能受到网络限制。建议使用API代理服务以提高访问稳定性。
- 凭据管理:不要在代码中硬编码访问令牌,使用环境变量或秘密管理工具存储凭据。
总结和进一步学习资源
Databricks与LangChain的集成为开发者提供了强大的LLM能力。在实际开发中,合理设置和安全管理凭据至关重要。要深入了解更多功能,建议查看以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---