fix(ai): AtlasCloud üst sağlayıcısı kalıcı olarak atlanır (liste + danışman)
All checks were successful
Deploy / deploy (push) Successful in 9m34s
All checks were successful
Deploy / deploy (push) Successful in 9m34s
AtlasCloud reasoning_effort: "none" isteğine uymuyor; cevap ~50 sn sürüp yarım kalıyordu (07-liste-duzeltmeleri.md). Liste üretiminde tepkisel 6 saatlik atlamaya ek olarak kalıcı liste eklendi (client.ts); danışman sohbeti de aynı listeyi provider.ignore ile gönderir. Gerçek modelle doğrulandı: 3 soru + 2 listede istek gövdesinde alan var, yanıt 200. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { z } from "zod";
|
||||
import { getOpenRouter, raporModeli, saglayiciAdi } from "./client";
|
||||
import { getOpenRouter, kaliciDislananSaglayicilar, raporModeli, saglayiciAdi } from "./client";
|
||||
|
||||
/**
|
||||
* AI çağrı katmanı: tüm istekler OpenRouter'ın OpenAI-uyumlu API'sine gider
|
||||
@@ -75,10 +75,10 @@ const URETIM_ZAMAN_ASIMI_MS = 60_000;
|
||||
* maliyet; önbellek yüzünden yeniden deneme de aynı sağlayıcıya gidiyordu →
|
||||
* "iki denemede başarısız" ve 60 sn zaman aşımlarının kaynağı).
|
||||
*
|
||||
* Savunma tepkiseldir, sağlayıcı SEÇİLMEZ: isteğe uymadığı bu süreçte
|
||||
* gözlenen üst sağlayıcı bir süre `provider.ignore` ile atlanır; kalanlar
|
||||
* arasında yönlendirme OpenRouter'da kalır. Kalıcı çözüm hesap ayarıdır
|
||||
* (OpenRouter paneli → ignored providers) ve Bilal'in kararıdır.
|
||||
* İki katman: AtlasCloud kalıcı olarak atlanır (client.ts
|
||||
* `kaliciDislananSaglayicilar`, Bilal 5 Eki 2026); ayrıca isteğe uymadığı bu
|
||||
* süreçte gözlenen başka bir üst sağlayıcı bir süre tepkisel olarak atlanır.
|
||||
* Kalanlar arasında yönlendirme OpenRouter'da kalır.
|
||||
*/
|
||||
const DISLAMA_SURESI_MS = 6 * 60 * 60_000;
|
||||
const globalForCagri = globalThis as unknown as {
|
||||
@@ -136,7 +136,9 @@ export async function yapilandirilmisUret<T extends z.ZodType>(opts: {
|
||||
const sinyal = AbortSignal.timeout(URETIM_ZAMAN_ASIMI_MS);
|
||||
// provider alanı OpenRouter'a özgüdür; başka bir kapıda (AI_BASE_URL) gönderilmez
|
||||
const dislanan =
|
||||
saglayiciAdi() === "openrouter.ai" ? dislananSaglayicilar() : [];
|
||||
saglayiciAdi() === "openrouter.ai"
|
||||
? [...new Set([...kaliciDislananSaglayicilar(), ...dislananSaglayicilar()])]
|
||||
: [];
|
||||
const t0 = Date.now();
|
||||
const yanit = await geciciHatadaTekrarla(() =>
|
||||
getOpenRouter().chat.completions.create(
|
||||
|
||||
@@ -26,6 +26,20 @@ export function saglayiciAdi(): string {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* OpenRouter'ın hiç yönlendirmemesi gereken üst sağlayıcılar (istek gövdesinde
|
||||
* `provider.ignore`). AtlasCloud `reasoning_effort: "none"` isteğine uymuyor:
|
||||
* 4.000 token'ın 3.999'unu düşünmeye harcıyor, cevap ~50 sn sürüp yarım kalıyor
|
||||
* (ölçüm 5 Eki 2026, docs/gece-vardiyasi/2026-10-05/07-liste-duzeltmeleri.md).
|
||||
* Liste üretimi (cagri.ts) ve danışman sohbeti (sohbet-akisi.ts) ortak kullanır.
|
||||
* Başka bir kapıda (AI_BASE_URL) boş döner: `provider` alanı OpenRouter'a özgü.
|
||||
*/
|
||||
const KALICI_DISLANAN_SAGLAYICILAR = ["AtlasCloud"];
|
||||
|
||||
export function kaliciDislananSaglayicilar(): string[] {
|
||||
return saglayiciAdi() === "openrouter.ai" ? KALICI_DISLANAN_SAGLAYICILAR : [];
|
||||
}
|
||||
|
||||
export function raporModeli(): string {
|
||||
return (
|
||||
process.env.OPENROUTER_RAPOR_MODEL?.trim() ||
|
||||
|
||||
@@ -23,7 +23,7 @@ import {
|
||||
type UIMessageChunk,
|
||||
} from "ai";
|
||||
import { ARACLAR, aracSeti, type AracBaglami } from "./araclar";
|
||||
import { sohbetDilModeli } from "./client";
|
||||
import { kaliciDislananSaglayicilar, sohbetDilModeli } from "./client";
|
||||
import { KAYIT_DUZELTME_NOTU, kayitBeyaniVar, semaSizintisiVar, vaatDiliBul } from "./cikti-denetimi";
|
||||
import { cevapIhlalOlasiligi, JEV_DUZELTME_NOTU, JEV_IHLAL_ESIGI } from "./jev";
|
||||
|
||||
@@ -113,7 +113,13 @@ export function danismanAkisi(opts: {
|
||||
},
|
||||
maxOutputTokens: 1024,
|
||||
abortSignal: zamanAsimi,
|
||||
providerOptions: { openaiCompatible: { reasoningEffort: "none" } },
|
||||
providerOptions: {
|
||||
openaiCompatible: { reasoningEffort: "none" },
|
||||
// Sağlayıcı adı altındaki bilinmeyen alanlar istek gövdesine aynen geçer
|
||||
...(kaliciDislananSaglayicilar().length > 0
|
||||
? { openrouter: { provider: { ignore: kaliciDislananSaglayicilar() } } }
|
||||
: {}),
|
||||
},
|
||||
onError: ({ error }) => {
|
||||
// Hata nesnesinin tamamı istek gövdesini ve cevap başlıklarını
|
||||
// taşır; loga yalnız durum kodu ve mesaj gider.
|
||||
|
||||
Reference in New Issue
Block a user