Konfiguracja AIConfiguration
Plik aiconfiguration.json jest centralnym punktem konfiguracji AI Proxy - definiuje w nim wszystkie połączenia z dostawcami AI, dostępne modele oraz strategie ich wykorzystania. Ten plik określa, które modele są dostępne dla WEBCON, w jakiej kolejności są wybierane (priority), oraz jakie parametry połączenia są używane do komunikacji z poszczególnymi dostawcami.
W tym przewodniku znajdziesz pełną strukturę pliku konfiguracji z przykładami dla wszystkich trzech obsługiwanych dostawców: Google Vertex AI, OpenAI oraz Azure AI Foundry. Każda sekcja jest szczegółowo opisana z wyjaśnieniem parametrów i przykładami wartości. Możesz użyć pełnej konfiguracji jako punkt wyjścia lub wybrać tylko te sekcje, które odpowiadają Twoim potrzebom.
W trybie Self-hosted wartości w ProviderConfiguration zawierają rzeczywiste klucze API (nie nazwy sekretów z Key Vault). Nie commituj tego pliku do repozytorium.
Czego dowiesz się z tego przewodnika
- Jak zdefiniować połączenia z dostawcami AI (ProviderConnections)
- Jak skonfigurować dostępne modele i ich priorytety (ProviderModels)
- Jak przypisać modele do konretnych funkcji WEBCON (MethodTypesConfiguration)
- Jakie parametry są wymagane dla każdego dostawcy
- Jak skonfigurować strategie failover między dostawcami
Struktura konfiguracji
Plik zawiera trzy sekcje:
- ProviderConnections - definicje połączeń z dostawcami AI
- ProviderModels - lista dostępnych modeli
- MethodTypesConfiguration - przypisanie modeli do funkcji
Przykład kompletnej konfiguracji
Poniżej znajduje się kompletna konfiguracja z trzema dostawcami AI (Azure, Google Vertex, 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
Definicje połączeń z dostawcami AI. Każdy wpis zawiera:
- Type - typ dostawcy:
AzureAi,Gemini,OpenAi - ProviderConfiguration - klucze API i inne parametry połączenia
Możesz usunąć nieużywanych dostawców z konfiguracji. Jeśli używasz tylko Google Vertex, możesz usunąć sekcje AzureFoundry i OpenAi.
ProviderModels
Lista dostępnych modeli AI. Każdy model zawiera:
- ConnectionName - nazwa połączenia z sekcji
ProviderConnections - Priority - priorytet (wyższy = preferowany), używany przy automatycznym wyborze
- Name - unikalna nazwa modelu
- TextModel, ImageModel, AudioModel, EmbeddingModel - nazwy konkretnych modeli dla różnych typów operacji
MethodTypesConfiguration
Mapowanie typów operacji na modele. Określa które modele będą używane dla różnych funkcji:
- ConciergePrompt - odpowiedzi na pytania użytkowników
- ConciergeExecuteTool - wykonywanie narzędzi przez AI
Kolejność w tablicy określa preferencje - AI Proxy spróbuje najpierw użyć pierwszego modelu, a jeśli nie będzie dostępny, przejdzie do następnego.
Podstawowe kroki konfiguracji
1. Przygotuj klucze API
Zdobądź klucze API od swoich dostawców:
- Google Vertex AI - Service Account JSON, Project ID, Region
- OpenAI - API Key rozpoczynający się od
sk- - Azure OpenAI - API Key i Endpoint URL
2. Edytuj plik aiconfiguration.json
Uzupełnij wartości w sekcji ProviderConfiguration:
"ProviderConfiguration": {
"ApiKey": "sk-your-actual-api-key-here"
}
3. Zapisz plik
Upewnij się, że:
- Format JSON jest poprawny (brak brakujących przecinków/nawiasów)
- Wszystkie klucze API są uzupełnione
- Plik znajduje się w tym samym katalogu co docker-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
Typowe przyczyny:
- Nieprawidłowy klucz API
- Klucz wygasł lub został odwołany
- Endpoint 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
Przyczyny:
ConnectionNamenie pasuje do nazwy wProviderConnections- Model nie istnieje u dostawcy (literówka w
ModelName) NamewMethodTypesConfigurationnie pasuje doNamewProviderModels
Rozwiązanie: Sprawdź zgodność nazw we wszystkich sekcjach - muszą dokładnie pasować (wielkość liter ma znaczenie).