Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengonfigurasi akses ke sumber daya eksternal dan privat dari endpoint penyajian model. Model Serving mendukung variabel lingkungan berupa teks biasa dan variabel lingkungan berbasis rahasia yang menggunakan secrets Databricks.
Persyaratan
Untuk variabel lingkungan berbasis rahasia,
- Pembuat endpoint harus memiliki akses BACA ke secret Databricks yang direferensikan dalam konfigurasi.
- Anda harus menyimpan kredensial seperti kunci API atau token lain sebagai rahasia Databricks.
Menambahkan variabel lingkungan teks biasa
Gunakan variabel lingkungan teks biasa untuk mengatur variabel yang tidak perlu disembunyikan. Anda dapat mengatur variabel di Antarmuka Pengguna penyajian, REST API, atau SDK saat membuat atau memperbarui titik akhir.
Menyajikan Antarmuka Pengguna
Dari Antarmuka pengguna Penyajian, Anda dapat menambahkan variabel lingkungan dalam Konfigurasi tingkat lanjut:
REST API
Berikut ini adalah contoh untuk membuat endpoint penyajian menggunakan REST API POST /api/2.0/serving-endpoints dan parameter environment_vars untuk menyetel variabel lingkungan Anda.
{
"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"
}
}
]
}
}
WorkspaceClient SDK
Berikut ini adalah contoh untuk membuat titik akhir penyediaan menggunakan WorkspaceClient SDK dan parameter environment_vars untuk mengonfigurasi variabel lingkungan Anda.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"MY_ENV_VAR": "value_to_be_injected",
"ADS_TOKEN": "abcdefg-1234"
}
)
]
)
)
SDK MLflow untuk Penyebaran
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan SDK Penyebaran Mlflow dan environment_vars bidang untuk mengonfigurasi variabel lingkungan Anda.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="unity-catalog-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"MY_ENV_VAR": "value_to_be_injected",
"ADS_TOKEN": "abcdefg-1234"
}
}
]
}
)
Log pencarian fitur DataFrames ke tabel inferensi
Jika Anda mengaktifkan tabel inferensi di titik akhir, Anda dapat mencatat bingkai data pencarian fitur otomatis ke tabel inferensi tersebut menggunakan ENABLE_FEATURE_TRACING. Ini memerlukan MLflow 2.14.0 atau lebih tinggi.
Atur ENABLE_FEATURE_TRACING sebagai variabel lingkungan di Antarmuka Pengguna Penyajian, REST API, atau SDK saat Anda membuat atau memperbarui titik akhir.
Menyajikan Antarmuka Pengguna
- Di Konfigurasi tingkat lanjut, pilih ** + Tambahkan variabel lingkungan**.
- Ketik
ENABLE_FEATURE_TRACINGsebagai nama lingkungan. - Pada kolom di sebelah kanan, ketik
true.
REST API
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan POST /api/2.0/serving-endpoints REST API dan bidang environment_vars untuk mengonfigurasi variabel lingkungan ENABLE_FEATURE_TRACING.
{
"name": "endpoint-name",
"config": {
"served_entities": [
{
"entity_name": "model-name",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": "true",
"environment_vars": {
"ENABLE_FEATURE_TRACING": "true"
}
}
]
}
}
WorkspaceClient SDK
Berikut ini adalah contoh pembuatan endpoint layanan menggunakan WorkspaceClient SDK dan environment_vars untuk mengonfigurasi variabel lingkungan ENABLE_FEATURE_TRACING.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"ENABLE_FEATURE_TRACING": "true"
}
)
]
)
)
SDK MLflow untuk Penyebaran
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan SDK Penyebaran Mlflow dan environment_vars bidang untuk mengonfigurasi ENABLE_FEATURE_TRACING variabel lingkungan.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="unity-catalog-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"ENABLE_FEATURE_TRACING": "true"
}
}
]
}
)
Menambahkan variabel lingkungan berbasis rahasia
Anda dapat menyimpan kredensial dengan aman menggunakan rahasia Databricks dan mereferensikan rahasia tersebut dalam model yang melayani menggunakan variabel lingkungan berbasis rahasia. Ini memungkinkan kredensial diambil dari endpoint penyajian model saat waktu penyajian.
Misalnya, Anda dapat meneruskan kredensial untuk memanggil OpenAI dan titik akhir model eksternal lainnya atau mengakses lokasi penyimpanan data eksternal langsung dari penyajian model.
Databricks merekomendasikan fitur ini untuk menyebarkan varian model OpenAI dan LangChain MLflow untuk penyajian. Ini juga berlaku untuk model SaaS lain yang memerlukan kredensial dengan pemahaman bahwa pola akses didasarkan pada penggunaan variabel lingkungan dan kunci dan token API.
Langkah 1: Membuat cakupan rahasia
Selama proses penyajian model, rahasia diambil dari Databricks secrets berdasarkan lingkup dan kunci rahasia. Ini ditetapkan ke nama variabel lingkungan rahasia yang dapat digunakan di dalam model.
Pertama, buat cakupan rahasia. Lihat Mengelola cakupan rahasia.
Berikut ini adalah perintah CLI:
databricks secrets create-scope my_secret_scope
Anda kemudian dapat menambahkan rahasia Anda ke cakupan dan kunci rahasia yang diinginkan seperti yang ditunjukkan di bawah ini:
databricks secrets put-secret my_secret_scope my_secret_key
Informasi rahasia dan nama variabel lingkungan kemudian dapat diteruskan ke konfigurasi titik akhir Anda selama pembuatan titik akhir atau sebagai pembaruan untuk konfigurasi titik akhir yang ada.
Langkah 2: Menambahkan cakupan rahasia ke konfigurasi titik akhir
Anda dapat menambahkan cakupan rahasia ke variabel lingkungan dan meneruskan variabel tersebut ke titik akhir Anda selama pembuatan titik akhir atau pembaruan konfigurasi. Lihat Buat titik akhir penyajian model kustom.
Menyajikan Antarmuka Pengguna
Dari Antarmuka pengguna Penyajian, Anda dapat menambahkan variabel lingkungan dalam Konfigurasi tingkat lanjut. Variabel lingkungan berbasis rahasia harus disediakan menggunakan sintaks berikut: {{secrets/scope/key}}. Jika tidak, variabel lingkungan dianggap sebagai variabel lingkungan teks biasa.
REST API
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan REST API. Selama model yang melayani pembuatan titik akhir dan pembaruan konfigurasi, Anda dapat memberikan daftar spesifikasi variabel lingkungan rahasia untuk setiap model yang dilayani di dalam permintaan API menggunakan bidang environment_vars.
Contoh berikut menetapkan nilai dari rahasia yang dibuat dalam kode yang disediakan ke variabel lingkungan 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}}"
}
}
]
}
}
Anda juga dapat memperbarui titik akhir penyajian, seperti dalam contoh REST API PUT /api/2.0/serving-endpoints/{name}/config berikut:
{
"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}}"
}
}
]
}
WorkspaceClient SDK
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan WorkspaceClient SDK. Selama model yang melayani pembuatan titik akhir dan pembaruan konfigurasi, Anda dapat memberikan daftar spesifikasi variabel lingkungan rahasia untuk setiap model yang dilayani di dalam permintaan API menggunakan bidang environment_vars.
Contoh berikut menetapkan nilai dari rahasia yang dibuat dalam kode yang disediakan ke variabel lingkungan OPENAI_API_KEY.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ServedEntityInput, EndpointCoreConfigInput, ServingModelWorkloadType
w = WorkspaceClient()
endpoint_name = "example-add-model"
model_name = "main.default.addmodel"
w.serving_endpoints.create_and_wait(
name=endpoint_name,
config=EndpointCoreConfigInput(
served_entities=[
ServedEntityInput(
entity_name = model_name,
entity_version = "2",
workload_type = ServingModelWorkloadType("CPU"),
workload_size = "Small",
scale_to_zero_enabled = False,
environment_vars = {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
)
]
)
)
SDK MLflow untuk Penyebaran
Berikut ini adalah contoh untuk membuat titik akhir penyajian menggunakan Mlflow Deployments SDK. Selama model yang melayani pembuatan titik akhir dan pembaruan konfigurasi, Anda dapat memberikan daftar spesifikasi variabel lingkungan rahasia untuk setiap model yang dilayani di dalam permintaan API menggunakan bidang environment_vars.
Contoh berikut menetapkan nilai dari rahasia yang dibuat dalam kode yang disediakan ke variabel lingkungan OPENAI_API_KEY.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="unity-catalog-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": True,
"environment_vars": {
"OPENAI_API_KEY": "{{secrets/my_secret_scope/my_secret_key}}"
}
}
]
}
)
Setelah titik akhir dibuat atau diperbarui, penyajian model secara otomatis mengambil kunci rahasia dari ruang lingkup rahasia Databricks dan mengatur variabel lingkungan agar dapat digunakan oleh kode inferensi model Anda.
Contoh buku catatan
Lihat notebook berikut untuk contoh cara mengonfigurasi kunci API OpenAI untuk LangChain Retrieval QA Chain yang diterapkan di belakang endpoint model serving dengan variabel lingkungan berbasis rahasia.