Wysyłanie zapytań do zewnętrznych dostawców modeli (usługi dostawców modeli)

Odpytuj modele za pomocą Model Provider Service w Unity Gateway, który dostarcza przechowywane dane uwierzytelniające i kieruje żądanie do zewnętrznego dostawcy, aby wywołujący nie musieli obsługiwać sekretu dostawcy.

Requirements

Zidentyfikuj usługę dostawcy modelu

Usługę dostawcy modeli dla żądania wybiera się za pomocą nagłówka Databricks-Model-Provider-Service, ustawionego na trzyczęściową nazwę tej usługi:

Databricks-Model-Provider-Service: main.default.openai_prod

Uwierzytelnij się przy użyciu tokenu Azure Databricks, a nie poświadczeń dostawcy. Podstawowy adres URL to adres URL obszaru roboczego, po którym następuje /ai-gateway.

Sprawdź obsługiwane interfejsy API

Zarządzane ścieżki udostępniają API każdego dostawcy w ramach stabilnej ścieżki Unity Gateway. Unity Gateway pośredniczy między żądaniem a dostawcą, stosuje zasady nadzoru, takie jak zabezpieczenia i limity liczby żądań, oraz rejestruje użycie. Jest to zalecany sposób wysyłania zapytań do usługi dostawcy modeli.

Poniższy przykład wysyła uzupełnianie czatu za pośrednictwem usługi dostawcy modelu OpenAI przy użyciu zarządzanej ścieżki OpenAI. Ponieważ żądanie korzysta z API OpenAI Chat Completions, możesz skierować klienta OpenAI na bazowy adres URL Unity Gateway.

Python

from openai import OpenAI

client = OpenAI(
    api_key="<databricks-token>",
    base_url="https://<workspace-url>/ai-gateway/openai/v1",
    default_headers={"Databricks-Model-Provider-Service": "main.default.openai_prod"},
)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Say hello in exactly 3 words."}],
)
print(response.choices[0].message.content)

REST

curl https://<workspace-url>/ai-gateway/openai/v1/chat/completions \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Databricks-Model-Provider-Service: main.default.openai_prod" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Say hello in exactly 3 words."}]
  }'

Ścieżka zarządzana, której używasz, zależy od interfejsu API dostawcy:

API dostawcy Ścieżka zarządzana
OpenAI (ukończenie czatu) /ai-gateway/openai/v1/chat/completions
OpenAI (odpowiedzi) /ai-gateway/openai/v1/responses
OpenAI (osadzanie) /ai-gateway/openai/v1/embeddings
Anthropic (wiadomości) /ai-gateway/anthropic/v1/messages
Bliźnięta (generuj zawartość) /ai-gateway/gemini/v1beta/models/<model>:generateContent
Bliźnięta (generuj zawartość z odpowiedziami przesyłanymi strumieniowo) /ai-gateway/gemini/v1beta/models/<model>:streamGenerateContent

Model w treści żądania (lub segment ścieżki Gemini) musi być modelem, na który pozwala usługa dostawcy modelu.

Dla Amazon Bedrock Mantle wybierz usługę dostawcy modelu pod nagłówkiem Databricks-Model-Provider-Service i użyj identyfikatorów modeli Mantle. Dostawca Amazon Bedrock używa bedrock-runtime. Zmiana ścieżki API klienta lub ID modelu nie przełącza go na Mantle.

Wysyłanie zapytań do innych interfejsów API (przekazywanie dalej)

Jeśli zarządzana ścieżka nie obejmuje punktu końcowego dostawcy, takiego jak plik OpenAI lub punkt wsadowy, możesz przekazać żądanie do dostawcy bez zmian. Unity Gateway usuwa prefiks /ai-gateway , dołącza przechowywane dane uwierzytelniające i przekazuje pozostałą ścieżkę do dostawcy.

Aby włączyć niezarządzany tryb passthrough, podczas tworzenia lub aktualizowania usługi dostawcy modeli w interfejsie użytkownika wybierz w sekcji Opcje zaawansowane pozycję Przekazuj wszystkie ścieżki URL.

Note

Śledzenie wykorzystania tokenów i kosztów, limity szybkości zależne od liczby tokenów, kontrola dostępu do modelu oraz zasady dotyczące usługi nie mają zastosowania do żądań przekazywanych bez przetwarzania.

Po włączeniu trybu passthrough wywołaj natywną ścieżkę dostawcy pod /ai-gateway. Na przykład wyświetl pliki w endpointcie plików OpenAI:

curl https://<workspace-url>/ai-gateway/files \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Databricks-Model-Provider-Service: main.default.openai_prod"

Przekazywanie nagłówków i parametrów zapytania

Domyślnie Unity Gateway nie przekazuje nagłówków żądania klienta ani parametrów zapytania do dostawcy nadrzędnego. Dwie flagi konfiguracji usługi zmieniają to i mają zastosowanie zarówno do ścieżek zarządzanych, jak i niezarządzanych:

  • forward_headers: Gdy true, Unity Gateway przekazuje nagłówki żądań klienta do dostawcy. Włącz tę opcję, gdy dostawca wymaga nagłówka, którego Unity Gateway nie ustawia automatycznie, takiego jak OpenAI-Organization.
  • forward_query_parameters: Gdy true, Unity Gateway przekazuje parametry zapytania klienta do dostawcy.

Ustaw je w usłudze dostawcy modelu, tak jak w przypadku dowolnego innego pola konfiguracji:

curl https://<workspace-url>/api/2.1/unity-catalog/model-provider-services/main.default.openai_prod \
  -X PATCH \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" \
  -H "Content-Type: application/json" \
  -G \
  --data-urlencode "update_mask=config.forward_headers,config.forward_query_parameters" \
  --data '{ "config": { "forward_headers": true, "forward_query_parameters": true } }'

Następne kroki