設定模型服務端點對資源的存取權
本文說明如何設定從模型服務端點對外部和私人資源的存取。 模型服務支援使用 Databricks 祕密的純文字環境變數和祕密型環境變數。
需求
針對祕密型環境變數,
- 端點建立者必須對設定中參考的 Databricks 祕密具有 READ 存取權。
- 您必須將 API 金鑰或其他權杖等認證儲存為 Databricks 祕密。
新增純文字環境變數
使用純文字環境變數來設定無需隱藏的變數。 您可以在建立或更新端點時,於服務 UI 或 REST API 中設定變數。
從 [服務 UI] 中,您可以在 [進階設定] 中新增環境變數:
以下是使用 POST /api/2.0/serving-endpoints
REST API 和 environment_vars
欄位來設定環境變數,進而建立服務端點的範例。
{
"name": "endpoint-name",
"config":{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"TEXT_ENV_VAR_NAME": "plain-text-env-value"
}
}]
}
}
新增祕密型環境變數
您可以使用 Databricks 祕密安全地儲存認證,並使用祕密型環境變數在模型中參考這些祕密。 這可讓在服務時間,從模型服務端點的模型擷取認證。
例如,您可以傳遞認證來呼叫 OpenAI 和其他外部模型端點,或直接從模型服務存取外部資料儲存位置。
Databricks 建議使用此特徵將 OpenAI 和 LangChain MLflow 模型變體部署到服務中。 它也適用於需要認證的其他 SaaS 模型,但需要了解存取模式是以使用環境變數和 API 金鑰與權杖為基礎。
步驟 1:建立祕密範圍
在模型服務期間,透過祕密範圍和密鑰從 Databricks 祕密中擷取祕密。 這些會指派給可在模型內使用的祕密環境變數名稱。
首先,建立祕密範圍。 請參閱 管理秘密範圍。
下列為 CLI 命令:
databricks secrets create-scope my_secret_scope
然後,您可以將祕密新增至預期的祕密範圍和金鑰,如下所示:
databricks secrets put-secret my_secret_scope my_secret_key
然後,祕密資訊和環境變數的名稱可以在端點建立期間傳遞至您的端點組態,或作為現有端點組態的更新。
步驟 2:將祕密範圍新增至端點組態
您可以將祕密範圍新增至環境變數,並在端點建立或組態更新期間將該變數傳遞至您的端點。 請參閱建立自訂模型服務端點。
從 [服務 UI] 中,您可以在 [進階設定] 中新增環境變數。 必須使用下列語法來提供祕密型環境變數:{{secrets/scope/key}}
。 否則,環境變數會被視為純文字環境變數。
以下是使用 REST API 建立服務端點的範例。 在模型服務端點建立和組態更新期間,您能使用 environment_vars
欄位,為 API 要求內的每個服務模型提供祕密環境變數規格清單。
下列範例會將在提供的程式碼中建立的祕密值指派給環境變數 OPENAI_API_KEY
。
{
"name": "endpoint-name",
"config":{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}]
}
}
您也可以更新服務端點,如下文 PUT /api/2.0/serving-endpoints/{name}/config
REST API 範例所示:
{
"served_entities": [{
"entity_name": "model-name",
"entity_version": "2",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars":{
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}]
}
建立或更新端點之後,模型服務會自動從 Databricks 祕密範圍擷取祕密金鑰,並填入您模型推斷程式碼要使用的環境變數。
筆記本範例
如需如何為部署在具有祕密型環境變數的模型服務端點後方的 LangChain 擷取 QA 鏈結設定 OpenAI API 金鑰的範例,請參閱下列筆記本。