Konfiguracja AIConfiguration
Plik aiconfiguration.json stanowi centralny element konfiguracji AI Proxy. Definiuje połączenia z dostawcami AI, dostępne modele oraz strategie ich wykorzystania. To właśnie w nim określasz, które modele są udostępniane w WEBCON, w jakiej kolejności mają być wybierane (priority) oraz jakie parametry połączenia są używane do komunikacji z poszczególnymi dostawcami.
W tym przewodniku przedstawiono pełną strukturę pliku konfiguracyjnego wraz z przykładami dla trzech obsługiwanych dostawców: Google Vertex AI, OpenAI oraz Azure AI Foundry. Każda sekcja została opisana wraz z wyjaśnieniem parametrów i przykładowymi wartościami. Możesz wykorzystać kompletną konfigurację jako punkt wyjścia albo uwzględnić tylko te elementy, które odpowiadają Twoim potrzebom.
W trybie Self-hosted wartości w sekcji ProviderConfiguration zawierają rzeczywiste klucze API, a nie nazwy sekretów z Key Vault. Z tego powodu nie należy commitować tego pliku do repozytorium.
Czego dowiesz się z tego przewodnika
- jak definiować połączenia z dostawcami AI (
ProviderConnections), - jak konfigurować dostępne modele i ich priorytety (
ProviderModels), - jak przypisywać modele do konretnych funkcji WEBCON (
MethodTypesConfiguration), - jakie parametry są wymagane dla poszczególnych dostawców,
- jak skonfigurować strategie failover między dostawcami.
Struktura konfiguracji
Plik składa się z trzech głównych sekcji:
- ProviderConnections - definicje połączeń z dostawcami AI,
- ProviderModels - lista dostępnych modeli,
- MethodTypesConfiguration - przypisanie modeli do poszczególnych funkcji.
Przykład kompletnej konfiguracji
Poniżej znajduje się przykładowa kompletna konfiguracja obejmująca trzech dostawców AI: Azure AI Foundry, Google Vertex AI oraz OpenAI.
{
"ProviderConnections": {
"AzureFoundry": {
"Description": "Azure AiFoundry Connector Provider",
"Type": "AzureAi",
"ProviderConfiguration": {
"ApiKey": "your-azure-api-key-here",
"Endpoint": "https://your-endpoint.openai.azure.com/"
}
},
"GoogleVertex": {
"Description": "Google Connector Provider",
"Type": "Gemini",
"ProviderConfiguration": {
"ApiKey": "your-google-api-key-here",
"ServiceAccount": "{\"type\":\"service_account\",\"project_id\":\"your-project\"...}",
"ProjectId": "your-project-id",
"Region": "us-central1",
"BucketName": "your-bucket-name",
"DocumentationProcessBuilderRagCorpus": "your-corpus-id"
}
},
"OpenAi": {
"Description": "OpenAi Connector Provider",
"Type": "OpenAi",
"ProviderConfiguration": {
"ApiKey": "sk-your-openai-api-key-here"
}
}
},
"ProviderModels": [
{
"ConnectionName": "GoogleVertex",
"Priority": 4,
"Name": "Gemini 2.0-flash-lite-001",
"Description": "",
"TextModel": {
"ModelName": "gemini-2.0-flash-lite-001"
},
"ImageModel": {
"ModelName": "imagen-3.0-fast-generate-001"
},
"AudioModel": {
"ModelName": "gemini-2.0-flash-lite-001"
},
"EmbeddingModel": {
"ModelName": "gemini-embedding-001"
}
},
{
"ConnectionName": "GoogleVertex",
"Priority": 3,
"Name": "Vertex gemini 2.5-flash-lite",
"Description": "",
"TextModel": {
"ModelName": "gemini-2.5-flash-lite"
},
"ImageModel": {
"ModelName": "imagen-3.0-fast-generate-001"
},
"AudioModel": {
"ModelName": "gemini-2.5-flash-lite"
},
"EmbeddingModel": {
"ModelName": "gemini-embedding-001"
}
},
{
"ConnectionName": "GoogleVertex",
"Priority": 2,
"Name": "Vertex gemini 2.5-flash",
"Description": "",
"TextModel": {
"ModelName": "gemini-2.5-flash"
},
"ImageModel": {
"ModelName": "imagen-3.0-fast-generate-001"
},
"AudioModel": {
"ModelName": "gemini-2.5-flash"
},
"EmbeddingModel": {
"ModelName": "gemini-embedding-001"
}
},
{
"ConnectionName": "OpenAi",
"Priority": 1,
"Name": "OpenAi BasicTier",
"Description": "",
"TextModel": {
"ModelName": "gpt-4o-mini-2024-07-18"
},
"ImageModel": {
"ModelName": "gpt-4o-mini-2024-07-18"
},
"AudioModel": {
"ModelName": "whisper-01"
},
"EmbeddingModel": {
"ModelName": "text-embedding-3-small"
}
}
],
"MethodTypesConfiguration": {
"ConciergePrompt": [
"Vertex gemini 2.5-flash-lite",
"Gemini 2.0-flash-lite-001"
],
"ConciergeExecuteTool": [
"Vertex gemini 2.5-flash-lite",
"Gemini 2.0-flash-lite-001"
]
}
}
Wyjaśnienie sekcji
ProviderConnections
Sekcja zawierająca definicje połączeń z dostawcami AI. Każdy wpis obejmuje:
- Type - typ dostawcy:
AzureAi,Gemini,OpenAi, - ProviderConfiguration - parametry połączenia, takie jak klucze API i inne ustawienia wymagane przez danego dostawcę.
Z konfiguracji możesz usunąć nieużywanych dostawców. Na przykład, jeśli korzystasz wyłącznie z Google Vertex AI, możesz pominąć sekcje AzureFoundry i OpenAi.
ProviderModels
Sekcja zawierająca listę dostępnych modeli AI. Każdy model obejmuje:
- ConnectionName - nazwę połączenia zdefiniowanego w sekcji
ProviderConnections, - Priority - priorytet modelu; wyższa wartość oznacza większe pierwszeństwo przy automatycznym wyborze,
- Name - unikalną nazwę modelu,
- TextModel, ImageModel, AudioModel, EmbeddingModel - nazwy modeli wykorzystywanych do poszczególnych typów operacji.
MethodTypesConfiguration
Sekcja odpowiadająca za mapowanie typów operacji na modele. Określa, które modele będą używane w ramach poszczególnych funkcji, na przykład:
- ConciergePrompt - generowanie odpowiedzi na pytania użytkowników,
- ConciergeExecuteTool - wykonywanie narzędzi przez AI.
Kolejność modeli w tablicy określa preferencję ich użycia. AI Proxy najpierw spróbuje skorzystać z pierwszego modelu na liście, a jeśli będzie on niedostępny, przejdzie do kolejnego.
Podstawowe kroki konfiguracji
1. Przygotuj klucze API
Przygotuj dane dostępowe wymagane przez wybranych dostawców AI:
- Google Vertex AI - plik Service Account w formacie JSON, identyfikator projektu (Project ID) oraz region,
- OpenAI - API Key rozpoczynający się od
sk-, - Azure OpenAI - API Key oraz Endpoint URL.
2. Edytuj plik aiconfiguration.json
Uzupełnij odpowiednie wartości w sekcji ProviderConfiguration:
"ProviderConfiguration": {
"ApiKey": "sk-your-actual-api-key-here"
}
3. Zapisz plik konfiguracyjny
Przed uruchomieniem upewnij się, że:
- plik JSON ma poprawną składnię, bez brakujących przecinków i nawiasów,
- wszystkie wymagane klucze API oraz parametry połączenia zostały uzupełnione,
- plik
aiconfiguration.jsonznajduje się w tym samym katalogu codocker-compose.yml.
4. Uruchom kontener
docker-compose up -d
Rozwiązywanie problemów
Błąd: Invalid JSON format
# Sprawdź poprawność JSON online lub edytorem
# Upewnij się, że:
# - Wszystkie cudzysłowy są podwójne "
# - Przecinki między elementami (ale nie po ostatnim)
# - Wszystkie nawiasy {} i [] są zamknięte
Błąd: Authentication failed
Możliwe przyczyny:
- klucz API jest nieprawidłowy,
- klucz wygasł lub został unieważniony,
- adres endpointu jest niepoprawny (dla Azure).
Rozwiązanie:
# Sprawdź logi kontenera
docker-compose logs ai-proxy
# Wygeneruj nowy klucz API u dostawcy
# Zaktualizuj aiconfiguration.json
# Zrestartuj kontener
docker-compose restart ai-proxy
Model nie jest używany
Możliwe przyczyny:
- wartość
ConnectionNamenie odpowiada nazwie zdefiniowanej w sekcjiProviderConnections, - wskazany model nie istnieje u dostawcy, np. z powodu literówki w
ModelName, - wartość
Namew sekcjiMethodTypesConfigurationnie odpowiada wartościNamezdefiniowanej wProviderModels.
Rozwiązanie: Sprawdź, czy nazwy we wszystkich sekcjach są ze sobą zgodne. Muszą być identyczne, łącznie z wielkością liter.