Dokümantasyon

Dokümantasyon

Oh My Pi

Oh My Pi, sağlayıcılarını tek bir YAML dosyasında tutar. Seçtiğiniz adın altına yazılan üç satır — baseUrl, api, apiKey — omp'nin tek bir anahtarla Claude ve GPT'ye yönlendirme yapmasını sağlar; model listesi elle yazılmak yerine getirilir.

~/.omp/agent/models.yml içindeki bir sağlayıcı bloğu — baseUrl, api, apiKey — Oh My Pi'yi Kunavo'ya yönlendirir; keşif, model listesini GET /v1/models üzerinden doldurur.

~/.omp/agent/models.yml
providers:
  kunavo:
    baseUrl: https://api.kunavo.com/v1
    api: openai-completions
    apiKey: KUNAVO_API_KEY       # an env-var name; literal text also works
    discovery:
      type: openai-models-list   # reads GET /v1/models

# Prefer a fixed list to a discovered one? Drop the discovery block and
# declare ids instead. Omitted metadata defaults to a 128,000-token context
# window and a 16,384-token output limit, so set the real numbers from
# /models when they differ.
#
#     models:
#       - id: claude-sonnet-5
#         name: Claude Sonnet 5
#         contextWindow: ...
#         maxTokens: ...
Temel URL'nin sonunda /v1 bulunmalıdır. omp, baseUrl değerini “Uç nokta kökü”, openai-completions değerini ise “OpenAI uyumlu Sohbet Tamamlama uç noktaları” olarak belgeler. 404 hatalarıyla ilgili sorun giderme maddesinde “Genel OpenAI uyumlu temel URL'ler genellikle /v1 ile biter” ifadesi yer alır. Her iki sayfadaki tüm özel sağlayıcı örnekleri aynı şekilde biter. “Genellikle” ifadesi, garantinin verilmediğini gösterir; ancak Kunavo /v1/chat/completions sunduğundan, https://api.kunavo.com/v1 bu adresi sağlayan köktür. Bu, yalın kaynak adresi isteyen Anthropic tarzı istemcilerin tersidir.
Bu yönlendirmede authHeader kullanmayın. omp, bu ayarın “özellikle Authorization: Bearer değerinin normal bir üst bilgi olarak eklenmesini gerektiren” bir ağ geçidi için olduğunu belirtir ve “standart sağlayıcı istemcileri kendi normal kimlik doğrulama yöntemlerini zaten uygular” diye ekler. OpenAI uyumlu istemci de bu yöntemi uygular ve Kunavo bunu kabul eder. Yalnızca aşağıdaki curl komutunun yeniden üretmediği bir 401 hatası görürseniz ekleyin.
Bu yapılandırma, aşağıda belirtilen tarihte doğrudan omp'nin kendi belgelerinden alınmıştır. Kunavo, omp'yi kendi uç noktasına karşı çalıştırmamıştır; ne oturum, ne akışlı bir tur, ne araç gidiş dönüşü, ne de yönlendirme kontrolü. Yayımlanmış bir kurulum sayfası test değildir ve buradaki hiçbir şey test olarak değerlendirilmemelidir. curl aşağıdaki komut, on saniyede doğrulayabileceğiniz kısımdır; geri kalanı size ve omp'ye bağlıdır.
Kunavo hiçbir gömme, metinden sese veya sesten metne modeli sunmaz; bu nedenle bu sağlayıcı yalnızca sohbet yanıtları verir. Kurulumunuzda sesi yazıya döken veya vektör dizini oluşturan her şey mevcut sağlayıcı anahtarını kullanmaya devam eder.
Henüz anahtarınız yok mu? Bir Kunavo hesabı oluşturun, bir anahtar oluşturun ( sk-kn- ile başlar) ve $10'dan kredi ekleyin — çağrılar bu bakiyeden ödenir ve başarısız çağrılar ücretlendirilmez. Ardından kontrol paneli Oh My Pi kurulumunda açılır.

Adım adım

  1. /app/keys adresinde bir anahtar oluşturup kopyalayın — anahtar yalnızca bir kez gösterilir.
  2. omp'yi başlatan kabukta KUNAVO_API_KEY olarak dışa aktarın. omp, önce apiKey değerini ortam değişkeni adı olarak çözümler; değişken bulunamazsa metni doğrudan anahtar olarak kullanır. Bu nedenle değişken adındaki bir yazım hatası sessizce yüklenir ve ilk istekte başarısız olur. ! ile başlayan değer ise kabuk komutu olarak çalıştırılır; bu, 1Password tarzı yöntemdir.
  3. Yukarıdaki bloğu ~/.omp/agent/models.yml içine koyun. Sağlayıcı kimliğini — burada kunavo — kendiniz seçersiniz; bu kimlik her seçicinin ilk bölümünü oluşturur.
  4. Dosyayı yüklemek ve yalnızca bu sağlayıcıyı listelemek için omp models kunavo komutunu çalıştırın. YAML veya şema sorunu varsa models.yml validation failed ve başarısız olan alan yazdırılır; omp models refresh kunavo ise önbelleğe alınmış kataloğu kullanmak yerine yeni bir keşif çağrısını zorlar.
  5. Bunu tam bir seçiciyle deneyin: omp -p --model kunavo/claude-sonnet-5 "Reply with only OK". Ardından omp programını başlatın, /model komutunu yazın ve istediğiniz kimliği Default olarak atayın; model merkezi açıldığında models.yml dosyasını yeniden yükler. /switch, yalnızca geçerli oturumu değiştirir.

omp'nin Sağlayıcılar sayfası ile 21 Eylül 2026 tarihinde kontrol edilmiştir. Üçüncü taraf ayarları değişebilir; buradaki alan adı gördüğünüzle artık eşleşmiyorsa yetkili kaynak bu sayfa değil, ilgili sayfadır.

Kısa sürüm budur. Model seçimi, gerçek bir oturumun maliyeti ve hata durumlarını içeren tam rehber Oh My Pi ile OpenCode karşılaştırması içindedir.

İstemcide hata ayıklamadan önce doğrulayın

Tek bir istek, hatanın uç noktadan mı, anahtardan mı yoksa yapılandırma dosyasından mı kaynaklandığını kesinleştirir. Bu JSON döndürürse aynı temel URL ve anahtar Oh My Pi içinde çalışır.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

Alana hangi model kimliği yazılmalı

Her metin modeline model kimliğiyle erişilebilir — güncel liste GET /v1/models, fiyatları içeren katalog ise modeller sayfasında. Ücretler 1 milyon token başına USD cinsindendir; giriş / çıkış.

Model kimliğiKunavo giriş / çıkışOh My Pi içinde kullanım alanı
claude-sonnet-5$1.40 / $7.00varsayılan rol — çoğu oturumda gerçekten kullanılan model
claude-opus-5$3.50 / $17.50plan rolü; hatalı bir planın maliyeti belirteçlerden daha fazladır
claude-haiku-4-5$0.70 / $3.50smol rolü: ilk değerlendirme, özetler ve hiç bitmeyen çağrılar
gpt-5-6-sol$2.00 / $12.00aynı sağlayıcı bloğunu kullanan, başka bir model ailesinden ikinci görüş
Faturalandırma aylık ücret olmadan, ön ödemeli bakiyeden token başına yapılır — faturalandırmaya bakın. Tekrarlanan bağlamda — bir düzenleyicinin veya sohbet istemcisinin gönderdiği içeriğin çoğu budur — istem önbellekleme, faturayı model seçiminden daha fazla değiştirir.

Keşif: hangi tür seçilmeli ve seçicide ne görünür?

omp altı discovery.type değeri sunar ve bunlardan ikisi bir ağ geçidi için uygun görünür. Ancak yalnızca biri uygundur. proxy, “model satırlarında supported_endpoint_types bilgisi sunan, OpenAI ve Anthropic'i birlikte destekleyen bir proxy” için belgelenmiştir ve her modelin iletişim biçimini bu alana göre belirler. Kunavo GET /v1/models değerini yayımlamadığından proxy kullanıldığında tüm satırlar sağlayıcı düzeyindeki api değerine döner; bu değer de ayarlanmamışsa satırlar listeden çıkarılır. “Genel bir OpenAI uyumlu GET /v1/models uç noktası” olarak belgelenen openai-models-list kullanılması gereken seçenektir; yukarıdaki bloğun api: openai-completions içermesinin nedeni de budur: omp'nin kuralına göre “proxy dışında, keşif için sağlayıcı düzeyinde api gerekir”.

Seçiciyi açmadan önce bilmeniz gereken bir sonuç var. Kunavo'nun model listesi, etkin kataloğun tamamını içerir; bu nedenle keşfedilen bir sağlayıcıda sohbet modellerinin yanında görüntü, video ve müzik kimlikleri de görünür, ancak sohbet aktarımı bunları çağıramaz. Kunavo, sohbet satırlarında context_length değerini yayımlar. omp'nin modellerle ilgili belgelerine göre genel keşif bu alanı max_model_len alanından sonra okur; medya satırlarında ise bu alan bulunmaz. Bu nedenle bu satırlar gerçek bir değer yerine omp'nin varsayılan 128,000 belirteç değeriyle gelir. Kısa ve doğru bir seçici istiyorsanız keşif bloğunu kaldırın ve gerçekten kullandığınız üç veya dört kimliği tanımlayın.

omp ayrıca anthropic-messages protokolünü kullanabilir ve Kunavo /v1/messages rotasındaki isteklere yanıt verir. Bu sayfada bu ikili için bir yapılandırma bloğu sunulmuyor: burada atıf yapılan iki sayfada OpenAI uyumlu rota için temel URL biçimi açıklanıyor, ancak Anthropic rotasında sondaki /v1 bölümünün nasıl ele alındığı belirtilmiyor. Bir yapılandırma bloğunun amacı, okuyucunun onu kopyalayıp kullanabilmesidir. Bu yolu izlerseniz, Anthropic uyumlu bir uç noktada araç çağrıları 400 hatası verdiğinde belgelerde önerilen çözüm disableStrictTools: true ayarıdır.

Sık sorulan sorular

Oh My Pi'ye özel bir API sağlayıcısını nasıl eklerim?

Her şey ~/.omp/agent/models.yml dosyasında yapılır. `providers:` altında bir anahtar ekleyin; adı size aittir ve seçicinin sağlayıcı bölümünü oluşturur. Ardından omp'nin kendi "Add a custom provider" örneğindeki sırayı izleyerek baseUrl, api ve apiKey alanlarını ekleyin. Modelleri `models:` altında elle listeleyin veya omp'nin getirmesi için bir `discovery:` bloğu ekleyin. Sonra dosyanın yüklendiğini doğrulamak için `omp models <your-provider-id>` komutunu çalıştırın ve `omp --model <provider>/<model-id>` komutuyla ya da oturum içindeki /model merkeziyle bir model seçin.

Oh My Pi baseUrl değerinin sonunda /v1 olmalı mı?

OpenAI uyumlu bir uç nokta için evet. omp, baseUrl değerini uç nokta kökü olarak adlandırır ve tanımladığınız api ailesine ait rotayı ekler; dolayısıyla `api: openai-completions`, belirttiğiniz kökün altında sohbet tamamlama istekleri gönderileceği anlamına gelir. 404 hatalarıyla ilgili sorun giderme notunda, genel OpenAI uyumlu temel URL'lerin genellikle /v1 ile bittiği belirtilir ve belgelerdeki her özel sağlayıcı örneği de böyledir. Kunavo /v1/chat/completions hizmetini sunar; bu nedenle https://api.kunavo.com/v1 yazılmalıdır. /v1 eksikse kimlik doğrulama hatası yerine 404 veya "desteklenmeyen uç nokta" hatası görülür.

Oh My Pi API anahtarını nerede arar ve hangi değer önceliklidir?

models.yml içindeki apiKey değeri üç adımda çözümlenir: ! ile başlayan bir değer kabuk komutu olarak çalıştırılır ve baştaki ve sondaki boşlukları temizlenmiş stdout kullanılır; aksi durumda omp, tam olarak bu adda bir ortam değişkeni arar; böyle bir değişken yoksa metnin kendisini anahtar olarak kullanır. Son seçenek tuzak olabilir: hatalı yazılmış bir değişken adı sessizce yüklenir ve ilk istekte başarısız olur. Daha geniş öncelik sıralamasında models.yml anahtarı, omp'nin belgelerine göre kasıtlı olarak depolanmış OAuth'tan önce gelir. Dolayısıyla ağ geçidi için sağlanan bir anahtar, üst sistemdeki oturum açma bilgileriyle değiştirilmez.

omp'de bir ağ geçidi hangi keşif türünü kullanmalı?

Model başına supported_endpoint_types bilgisini ağ geçidi duyurmuyorsa proxy yerine openai-models-list kullanın. proxy, bir modelin /v1/messages ya da /v1/chat/completions adresine yönlendirilip yönlendirilmeyeceğine bu alana göre karar verir. Bu bilgi yoksa modeller sağlayıcı düzeyindeki api değerine döner veya listeden çıkarılır. Kunavo'nun /v1/models yanıtında bu alan yayımlanmadığından doğru tür genel OpenAI listesidir. omp, proxy dışındaki tüm keşif türleri için sağlayıcı düzeyinde bir api değeri ister. Önbelleğe alınmış kataloğu kullanmak yerine yeni bir veri çekimini zorlamak için `omp models refresh <provider>` komutunu çalıştırın.

Kunavo, Oh My Pi'yi kendi uç noktasına karşı test etti mi?

Hayır. 21 Eylül 2026 tarihinde kontrol edilen şey omp'nin kendi belgeleridir: alan adları, alanların sırası, anahtar çözümleme kuralı ve keşif türleri bu belgelerden alıntılanmıştır. Ayrıca iki ayrıntı varsayımda bulunmak yerine Kunavo'nun kendi /v1/models rotasında doğrulanmıştır. Burada api.kunavo.com'a karşı hiçbir omp oturumu çalıştırılmamıştır; istemci içindeki akış, araç gidiş dönüşleri veya model yönlendirmesi hakkında da hiçbir iddiada bulunulmamaktadır. Tek başına doğrulanabilecek şey, uç noktanın ve anahtarın çalışıp çalışmadığıdır; bu sayfadaki curl komutu bunu gösterir.