Function Calling Beklediğim Gibi Çalışmadı
Şema var diye araç çağrılmaz

Araç bağlamayı 'artık serbest metin yok' diye okudum. İlk günde model, var olmayan bir enum değeri uydurdu. İkinci günde tarihi ISO yerine 'yarın' yazdı. Şema duruyordu. Doğrulama yoktu.
Function calling bir dilekçe değil, bir sözleşme. Sözleşmeyi model değil, senin kodun onurlandırır. Model aday üretir. Adayı kör çalıştırmak, SQL'i kullanıcıdan alıp çalıştırmaya yakın.
Şemayı dar tutmak
Serbest string cazip. Cazip olan yerde sapma büyür. Durum, tarih ve kimlik için enum, format ve desen yazıyorum. Açıklama cümlesi yardımcı; doğrulamanın yerine geçmiyor.
const searchNotes = {
name: "search_notes",
description: "Not basliginda ve govdesinde arar. Serbest sohbet degil.",
parameters: {
type: "object",
additionalProperties: false,
required: ["query", "limit"],
properties: {
query: { type: "string", minLength: 2, maxLength: 80 },
limit: { type: "integer", minimum: 1, maximum: 10 },
scope: { type: "string", enum: ["title", "body", "both"] },
},
},
} as const;
function parseArgs(raw: unknown): { query: string; limit: number; scope: "title" | "body" | "both" } {
if (typeof raw !== "object" || raw === null) throw new Error("args");
const rec = raw as Record;
const query = rec.query;
const limit = rec.limit;
const scope = rec.scope ?? "both";
if (typeof query !== "string" || query.trim().length < 2) throw new Error("query");
if (typeof limit !== "number" || limit < 1 || limit > 10) throw new Error("limit");
if (scope !== "title" && scope !== "body" && scope !== "both") throw new Error("scope");
return { query: query.trim(), limit, scope };
}
parseArgs patlayınca aracı çağırmiyorum. Modele kısa bir hata dönüp bir kez daha denettiriyorum. İkinci sapmada duruyorum. Aynı bozuk JSON'u beş kez denemek, token yazısında yazdığım faturayı büyütür, doğruluğu büyütmez.
Yan etkiyi geciktirmek
Arama masum. Silme, mail, ödeme değil. Yan etkili aracı ayrı bir onay adımına bağlıyorum — UI'da veya ikinci bir açık fonksiyon. 'Model emin duruyor' onay değildir. Emin duruş, function calling'in en ucuz numarası.
Yorumlar
Yorumlar (0)
Yorumlar üyelere açık. Üye ol · Giriş yap