Documentation Index
Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
Use this file to discover all available pages before exploring further.
Databricks Lakehouse 平台在一个平台上统一了数据、分析和 AI。
本指南提供了快速入门 Databricks LLM 模型 的概述。有关所有功能和配置的详细文档,请前往 API 参考。
Databricks LLM 类封装了一个完成端点,该端点托管为以下两种端点类型之一:
此示例笔记本展示了如何包装您的 LLM 端点并将其用作 LangChain 应用程序中的 LLM。
Databricks LLM 类是遗留实现,在功能兼容性方面存在若干限制。
- 仅支持同步调用。不支持流式传输或异步 API。
batch API 不受支持。
要使用这些功能,请使用新的 ChatDatabricks 类代替。ChatDatabricks 支持 ChatModel 的所有 API,包括流式传输、异步、批处理等。
要访问 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"
if "DATABRICKS_TOKEN" not in os.environ:
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",
# We strongly recommend NOT to hardcode your access token in your code, instead use secret management tools
# or environment variables to store your access token securely. The following example uses Databricks Secrets
# to retrieve the access token that is available within the Databricks notebook.
token=dbutils.secrets.get(scope="YOUR_SECRET_SCOPE", key="databricks-token"),
)
LangChain Databricks 集成位于 langchain-community 包中。此外,需要 mlflow >= 2.9 才能运行此笔记本中的代码。
pip install -qU langchain-community mlflow>=2.9.0
包装模型服务端点
先决条件
预期的 MLflow 模型签名如下:
- 输入:
[{"name": "prompt", "type": "string"}, {"name": "stop", "type": "list[string]"}]
- 输出:
[{"type": "string"}]
from langchain_community.llms import Databricks
llm = Databricks(endpoint_name="YOUR_ENDPOINT_NAME")
llm.invoke("How are you?")
'I am happy to hear that you are in good health and as always, you are appreciated.'
llm.invoke("How are you?", stop=["."])
转换输入和输出
有时您可能希望包装具有不兼容模型签名的服务端点,或者想要插入额外的配置。您可以使用 transform_input_fn 和 transform_output_fn 参数来定义额外的预处理/后处理。
# Use `transform_input_fn` and `transform_output_fn` if the serving endpoint
# expects a different input schema and does not return a JSON string,
# respectively, or you want to apply a prompt template on top.
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,
)
llm.invoke("How are you?")
'I AM DOING GREAT THANK YOU.'