omp) może używać GoModel jako
własnego providera. Jeden blok providera w pliku models.yml omp automatycznie
wykrywa każdy model udostępniany przez GoModel, więc konfigurujesz gateway raz,
zamiast definiować każdy model ręcznie.
Przepływ:
oh-my-pi (omp) -> GoModel -> upstream model providers
Zanim zaczniesz
- Zainstaluj oh-my-pi, na przykład
poleceniem
curl -fsSL https://omp.sh/install | sh. - Wybierz master key GoModel do administrowania gatewayem, na przykład
change-me. - Upewnij się, że GoModel ma dane uwierzytelniające upstreamu dla modeli, których chcesz używać.
1. Uruchom GoModel
Uruchom GoModel z master key i co najmniej jednym providerem upstream. Ten przykład używa Anthropic:GOMODEL_MASTER_KEY to startowe i administracyjne dane uwierzytelniające gatewaya.
Nie umieszczaj go w konfiguracji omp. ANTHROPIC_API_KEY należy do GoModel i jest
używany wyłącznie w requeście do upstreamu.
2. Utwórz dedykowany klucz API dla omp
Otwórz dashboard GoModel pod adresem http://localhost:8080/admin/dashboard i zaloguj się przy użyciuGOMODEL_MASTER_KEY. Przejdź do
API Keys -> Create API Key, a następnie:
- Nazwij klucz
oh-my-pi. - Ustaw User Path na
/agents/omp. - Pozostaw Dashboard access wyłączone.
- Utwórz klucz i skopiuj wartość
sk_gom_.... Jest wyświetlana tylko raz.
/agents/omp.
3. Skonfiguruj omp
Utwórz lub edytuj~/.omp/agent/models.yml i dodaj providera gomodel:
discovery sprawia, że omp przy starcie pobiera katalog /v1/models z
GoModel, więc każdy model, który GoModel potrafi routować, automatycznie pojawia
się w omp – razem z oknem kontekstu i limitami wyjścia z metadanych modeli
GoModel. Nie musisz wymieniać modeli ręcznie.
Ogranicz dostęp do pliku poleceniem chmod 600 ~/.omp/agent/models.yml. Jeśli
wolisz nie przechowywać klucza bezpośrednio w pliku, apiKey akceptuje też
nazwę zmiennej środowiskowej (na przykład apiKey: GOMODEL_API_KEY) albo
polecenie poprzedzone !, którego stdout jest sekretem (na przykład
apiKey: "!op read op://dev/gomodel/api-key").
Jeśli GoModel działa na innym hoście, zastąp localhost:8080 adresem https://,
z TLS terminowanym na reverse proxy lub load balancerze przed GoModel; zwykłego
HTTP używaj tylko przy developmencie na loopbacku. Zachowaj /v1 w base URL.
4. Wybierz model i uruchom omp
Wyświetl listę modeli wykrytych przez omp za pośrednictwem gatewaya:<provider>/<model-id>. ID modeli w GoModel
już zawierają prefiks providera (anthropic/claude-sonnet-5), więc pełny
selektor ma dwa prefiksy:
ok.
omp przechowuje wykryte katalogi w lokalnej bazie danych. Po dodaniu modeli lub
providerów do GoModel uruchom
omp models refresh, aby wymusić ponowne pobranie.5. Włącz reasoning effort
Poziomy--thinking w omp (low, medium, high, …) są wysyłane jako
kompatybilne z OpenAI pole reasoning_effort, a GoModel tłumaczy to pole dla
każdego upstreamu – dla modeli Anthropic staje się ono budżetem thinking, a
thinking modelu wraca w streamie jako reasoning_content, które omp renderuje
jako bloki myśli.
omp wysyła reasoning_effort tylko dla modeli, o których wie, że obsługują
reasoning, a modele wykryte ze zwykłej listy /v1/models nie są tak oznaczone.
Włącz je przez modelOverrides:
--thinking jest
po cichu pomijane dla tego modelu.
Opcjonalnie: użyj endpointu Anthropic Messages w GoModel
omp może też komunikować się z GoModel w formacie Anthropic przez endpoint/v1/messages w GoModel. Na tej ścieżce
wykrywanie modeli nie jest dostępne, więc zdefiniuj modele jawnie:
6. Sprawdź ruch w GoModel
Otwórz logi audytowe w dashboardzie GoModel: http://localhost:8080/admin/dashboard/audit Potwierdź, że streamowane requesty omp doPOST /v1/chat/completions pojawiają
się pod ścieżką użytkownika /agents/omp i że GoModel kieruje je do właściwego
providera. Zaloguj się przy użyciu master key; klucz omp celowo nie może otworzyć
tej strony.
Rozwiązywanie problemów
401 Unauthorized
Wartość apiKey w models.yml musi być zarządzanym kluczem sk_gom_.... Jeśli
zamiast tego podajesz nazwę zmiennej środowiskowej, upewnij się, że ta zmienna jest
wyeksportowana w powłoce, z której uruchamiasz omp.
Model nie został znaleziony
Selektory omp wymagają pełnego wykrytego ID łącznie z prefiksem providera z GoModel:gomodel/anthropic/claude-sonnet-5, a nie gomodel/claude-sonnet-5. Skopiuj
dokładne ID z omp models gomodel.
Nowe modele GoModel się nie pojawiają
Uruchomomp models refresh. W przeciwnym razie omp korzysta z katalogu w cache’u.
--thinking nie działa
Dodaj reasoning: true dla tego modelu w modelOverrides, jak pokazano wyżej.
Bez tego omp nie wysyła reasoning_effort, więc GoModel nigdy nie otrzymuje
wartości effort do przetłumaczenia.
Thinking działa w modelach Anthropic, ale nie w innych
GoModel mapujereasoning_effort osobno dla każdego providera. Sprawdź flagę
capabilities.reasoning modelu w metadanych /v1/models; modele bez reasoningu
ignorują lub odrzucają wartości effort.
Źródła
- oh-my-pi: Model and provider configuration (
models.yml) - oh-my-pi: CLI reference
- GoModel: Anthropic Messages API
Zweryfikowano 31 sierpnia 2026
Ten przewodnik zweryfikowano na:- lokalnej instancji GoModel pod
http://localhost:8080 - oh-my-pi
18.0.11(omp) anthropic/claude-haiku-4-5-20251001przez GoModel
discovery: openai-models-listzaimportowało pełny katalog GoModel (955 modeli) z oknami kontekstu i limitami wyjścia- prompty headless
omp -pi wywołania narzędzia shell zakończyły się powodzeniem przezomp -> GoModel -> Anthropicz dedykowanym zarządzanym kluczem - po włączeniu reasoningu przez
modelOverridesopcja--thinking highdawałareasoning_effort: "high"w requeście, GoModel tłumaczył to na thinking Anthropic, a omp renderował zwrócone bloki myślireasoning_content; bez tego włączenia omp pomijał to pole - wariant providera
api: anthropic-messagesobsłużył te same prompty przez endpoint/v1/messagesw GoModel