Konfigurowanie dostępu do zasobów z poziomu punktów końcowych obsługujących model
W tym artykule opisano sposób konfigurowania dostępu do zasobów zewnętrznych i prywatnych z poziomu punktów końcowych obsługujących model. Obsługa modelu obsługuje zmienne środowiskowe zwykłego tekstu i zmienne środowiskowe oparte na wpisach tajnych przy użyciu wpisów tajnych usługi Databricks.
Wymagania
W przypadku zmiennych środowiskowych opartych na wpisach tajnych,
- Twórca punktu końcowego musi mieć dostęp do odczytu do wpisów tajnych usługi Databricks, do których odwołuje się w konfiguracjach.
- Musisz przechowywać poświadczenia, takie jak klucz interfejsu API lub inne tokeny jako wpis tajny usługi Databricks.
Dodawanie zmiennych środowiskowych zwykłego tekstu
Użyj zmiennych środowiskowych zwykłego tekstu, aby ustawić zmienne, które nie muszą być ukryte. Zmienne można ustawić w interfejsie użytkownika obsługi lub interfejsie API REST podczas tworzenia lub aktualizowania punktu końcowego.
Z poziomu interfejsu użytkownika obsługującego można dodać zmienną środowiskową w konfiguracjach zaawansowanych:
Poniżej przedstawiono przykład tworzenia punktu końcowego obsługującego przy użyciu interfejsu POST /api/2.0/serving-endpoints
API REST i environment_vars
pola do konfigurowania zmiennej środowiskowej.
{
"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"
}
}]
}
}
Dodawanie zmiennych środowiskowych opartych na wpisach tajnych
Poświadczenia można bezpiecznie przechowywać przy użyciu wpisów tajnych usługi Databricks i odwoływać się do tych wpisów tajnych w modelu obsługującym przy użyciu zmiennych środowiskowych opartych na wpisach tajnych. Dzięki temu poświadczenia mogą być pobierane z modelu obsługującego punkty końcowe w czasie obsługi.
Można na przykład przekazać poświadczenia w celu wywołania interfejsu OpenAI i innych punktów końcowych modelu zewnętrznego lub uzyskać dostęp do zewnętrznych lokalizacji przechowywania danych bezpośrednio z obsługi modelu.
Usługa Databricks zaleca tę funkcję do wdrażania odmian modeli OpenAI i LangChain MLflow do obsługi. Dotyczy to również innych modeli SaaS wymagających poświadczeń ze zrozumieniem, że wzorzec dostępu jest oparty na korzystaniu ze zmiennych środowiskowych i kluczy interfejsu API i tokenów.
Krok 1. Tworzenie zakresu wpisów tajnych
Podczas obsługi modelu wpisy tajne są pobierane z wpisów tajnych usługi Databricks według zakresu i klucza tajnego. Są one przypisywane do tajnych nazw zmiennych środowiskowych, które mogą być używane w modelu.
Najpierw utwórz zakres wpisów tajnych. Zobacz Zakresy wpisów tajnych.
Poniżej przedstawiono polecenia interfejsu wiersza polecenia:
databricks secrets create-scope my_secret_scope
Następnie możesz dodać wpis tajny do żądanego zakresu i klucza tajnego, jak pokazano poniżej:
databricks secrets put-secret my_secret_scope my_secret_key
Informacje tajne i nazwa zmiennej środowiskowej można następnie przekazać do konfiguracji punktu końcowego podczas tworzenia punktu końcowego lub jako aktualizację konfiguracji istniejącego punktu końcowego.
Krok 2. Dodawanie zakresów wpisów tajnych do konfiguracji punktu końcowego
Zakres wpisu tajnego można dodać do zmiennej środowiskowej i przekazać zmienną do punktu końcowego podczas tworzenia punktu końcowego lub aktualizacji konfiguracji. Zobacz Tworzenie niestandardowych punktów końcowych obsługujących model.
W interfejsie użytkownika obsługującego można dodać zmienną środowiskową w konfiguracjach zaawansowanych. Zmienna środowiskowa oparta na wpisach tajnych musi być podana przy użyciu następującej składni: {{secrets/scope/key}}
. W przeciwnym razie zmienna środowiskowa jest uznawana za zmienną środowiskową w postaci zwykłego tekstu.
Poniżej przedstawiono przykład tworzenia punktu końcowego obsługującego przy użyciu interfejsu API REST. Podczas tworzenia i aktualizowania konfiguracji punktu końcowego modelu można podać listę specyfikacji zmiennych środowiskowych wpisów tajnych dla każdego obsługiwanego modelu wewnątrz żądania interfejsu API przy użyciu environment_vars
pola .
Poniższy przykład przypisuje wartość z wpisu tajnego utworzonego w podanym kodzie do zmiennej środowiskowej 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}}"
}
}]
}
}
Możesz również zaktualizować punkt końcowy obsługujący, tak jak w poniższym PUT /api/2.0/serving-endpoints/{name}/config
przykładzie interfejsu API REST:
{
"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}}"
}
}]
}
Po utworzeniu lub zaktualizowaniu punktu końcowego model obsługujący automatycznie pobiera klucz tajny z zakresu wpisów tajnych usługi Databricks i wypełnia zmienną środowiskową dla kodu wnioskowania modelu do użycia.
Przykład notesu
Zapoznaj się z poniższym notesem, aby zapoznać się z przykładem konfigurowania klucza interfejsu API OpenAI dla łańcucha kontroli jakości pobierania langchaina wdrożonego za modelem obsługującym punkty końcowe z zmiennymi środowiskowymi opartymi na wpisach tajnych.