Μετάβαση στο περιεχόμενο
16/30Κεφάλαιο 16 από 30

Το context window, τα tokens και ο λογαριασμός, μετρημένα

Μια συνομιλία 40 γύρων κοστίζει 22 φορές το μήκος της σε input tokens. Το caching το μειώνει 68%· λάθος timestamp προσθέτει 20%.

Σε αυτή τη σελίδα

Ακολουθεί μια συνομιλία υποστήριξης σαράντα γύρων, χρεωμένη γύρο προς γύρο. Δεν έχει τίποτα ασυνήθιστο: ένας developer ρωτά για ένα API, ένας assistant απαντά σε μία ή δύο παραγράφους. Ολόκληρη η ανταλλαγή είναι 5.090 tokens κειμένου — περίπου οκτώ σελίδες.

γύροςprompt tokensνέο κείμενοoutputκόστος αυτού του γύρουτρέχον σύνολο
121318183$0.002622$0.002622
589214123$0.003260$0.014354
101,65619114$0.004680$0.035530
202,86818103$0.006972$0.094426
303,9412099$0.009070$0.174170
404,94717142$0.011598$0.274386

Διαβάστε μαζί τη δεύτερη και την τρίτη στήλη. Στον γύρο 40 ο χρήστης πληκτρολόγησε δεκαεπτά tokens και χρεώθηκε για 4.947. Η ερώτηση δεν ήταν πιο δύσκολη από την πρώτη· ήταν πιο σύντομη. Αυτό που άλλαξε είναι ότι το αίτημα μετέφερε μαζί του ολόκληρη τη συνομιλία, ξανά, για τεσσαρακοστή φορά.

Συνολικά input tokens που χρεώθηκαν σε αυτά τα σαράντα calls: 112.617. Η συνομιλία έχει μήκος 5.090 tokens. Την πληρώσατε είκοσι δύο φορές.

Αυτό το κεφάλαιο εξηγεί γιατί συμβαίνει αυτό, πώς ονομάζεται στο invoice κάθε provider και για ποια από τα πέντε πράγματα που χρεώνεστε μπορείτε να κάνετε κάτι.

Εμφάνιση λεπτομερειών

Τι χρειάζεται αυτό το κεφάλαιο από το Μέρος II.

  • Κεφάλαιο 7 έχτισε τον tokenizer. Ένα token είναι η μονάδα και εδώ — η ίδια μονάδα, τώρα με τιμή.
  • Κεφάλαιο 9 παρήγαγε το self-attention και το κόστος του O(n2)O(n^2), στο πλαίσιο της ασυμπτωτικής σημειογραφίας. Αυτό το κόστος είναι ο λόγος που υπάρχει όριο εξαρχής, και εδώ παραπέμπεται αντί να εξηγηθεί ξανά.
  • Κεφάλαιο 13 μέτρησε το prefill έναντι του decode και υπολόγισε τι χώρο καταλαμβάνει ένα KV cache. Αυτές οι δύο φάσεις είναι αυτό που αγοράζουν στην πράξη οι στήλες input και output παραπάνω.

Όλα τα υπόλοιπα είναι TypeScript, επειδή πρόκειται για λογιστική ενός απομακρυσμένου call και όχι για μαθηματικά γύρω από ένα μοντέλο.

Η πιο ακριβή παρανόηση σε αυτόν τον χώρο είναι ότι ένα μοντέλο θυμάται μια συνομιλία.

Δεν τη θυμάται, και ο μηχανισμός από το Κεφάλαιο 13 δείχνει ακριβώς γιατί. Η κατάσταση ενός transformer κατά τη δημιουργία είναι το KV cache: τα keys και values που υπολογίζονται για κάθε token στην ακολουθία. Αυτό το cache ζει για τη διάρκεια ενός αιτήματος. Όταν το αίτημα τελειώσει, η διεργασία που το κρατούσε είναι ελεύθερη να εξυπηρετήσει κάποιον άλλον, και το cache χάνεται. Δεν υπάρχει αποθήκη ανά χρήστη στην άλλη πλευρά, ούτε session.

Άρα το επόμενο αίτημα πρέπει να φτάσει μεταφέροντας όλα όσα υποτίθεται ότι πρέπει να ξέρει το μοντέλο, και το μοντέλο ξαναχτίζει αυτή την κατάσταση εκτελώντας ένα forward pass πάνω σε ολόκληρο το prompt πριν εκπέμψει έστω και ένα νέο token. Το Κεφάλαιο 15 αποκάλεσε το prompt «ολόκληρη την κατάσταση». Αυτός είναι ο φυσικός λόγος: το prompt είναι η πλήρης κατάσταση επειδή τίποτα άλλο δεν επιβιώνει από το call.

Το context window είναι το μέγιστο μήκος αυτού του prompt μαζί με την απάντησή του. Είναι ένα ανώτατο όριο στο πόση κατάσταση μπορείτε να ξαναχτίσετε, όχι ένα δοχείο που κρατά κάτι ανάμεσα σε αιτήματα. Το να το αποκαλείτε «μνήμη του μοντέλου» αντιστρέφει την αιτιότητα — δεν γεμίζετε μια μνήμη, πληρώνετε για να την επαναδημιουργήσετε.

Από εκεί προκύπτει το είκοσι δύο. Ο γύρος nn μεταφέρει όλους τους n1n-1 προηγούμενους γύρους, άρα το συνολικό input σε μια συνομιλία nn γύρων είναι το άθροισμα μιας αυξανόμενης σειράς, δηλαδή είναι τετραγωνικό:

total input  =  i=1n(s+hi)  =  Θ(n2)\text{total input} \;=\; \sum_{i=1}^{n} \big(s + h_i\big) \;=\; \Theta(n^2)

όπου ss είναι το system prompt και hih_i το ιστορικό στον γύρο ii. Η προσαρμογή του μετρημένου αθροιστικού input στο an2+bnan^2 + bn στους σαράντα γύρους δίνει 60.22n2+432.25n60.22\,n^2 + 432.25\,n, που προβλέπει 113.645 tokens στον γύρο 40 έναντι 112.617 μετρημένων. Ο τετραγωνικός όρος κυριαρχεί και ο γραμμικός όρος είναι αυτό που πληκτρολόγησε πραγματικά ο χρήστης.

Το συμπέρασμα που πρέπει να κρατήσετε από αυτό το κεφάλαιο είναι: ο λογαριασμός σας μεγαλώνει με το τετράγωνο της συνομιλίας, όχι με την τελευταία ερώτηση. Οι ίδιες σαράντα ερωτήσεις, αν γίνονταν χωρίς καθόλου ιστορικό, θα κόστιζαν $0.066036. Η διατήρηση του ιστορικού κόστισε $0.274386. Το ιστορικό πολλαπλασίασε τον λογαριασμό επί 4,2, και θα συνεχίσει να τον πολλαπλασιάζει, επειδή ο πολλαπλασιαστής είναι το μήκος της συνομιλίας.

Το window είναι πεπερασμένο για δύο λόγους που τραβούν προς την ίδια κατεύθυνση. Ο πρώτος είναι του Κεφαλαίου 9: το attention συγκρίνει κάθε token με κάθε άλλο token, άρα η εργασία αυτού του layer μεγαλώνει με το τετράγωνο του μήκους της ακολουθίας. Ο δεύτερος είναι η μνήμη: το KV cache μεγαλώνει γραμμικά με το μήκος της ακολουθίας, και το Κεφάλαιο 13 έκανε αυτή την αριθμητική — σε μεγάλες ακολουθίες είναι μεγαλύτερο από τα weights.

Και τα δύο όρια έχουν δεχθεί επιθέσεις και κανένα δεν έχει εξαφανιστεί. Το FlashAttention1 αναδιοργανώνει τον υπολογισμό ώστε να διαβάζει και να γράφει πολύ λιγότερο σε μνήμη υψηλού bandwidth, κάτι που κάνει τις μεγάλες ακολουθίες πρακτικές χωρίς να αλλάζει το ασυμπτωτικό κόστος. Το Position Interpolation2 και το YaRN3 επεκτείνουν το χρησιμοποιήσιμο window ενός εκπαιδευμένου μοντέλου κλιμακώνοντας εκ νέου τα positional encodings από το Κεφάλαιο 9 αντί να το εκπαιδεύουν ξανά. Μαζί είναι ο λόγος που τα windows πήγαν από 2K σε 1M μέσα σε πέντε χρόνια.

Αυτό που δεν έκαναν είναι να καταστήσουν τα μεγάλα contexts δωρεάν. Ανέβασαν το ταβάνι και έκαναν την κλίση πιο ήπια. Η κλίση παραμένει εκεί, και αυτή μετρούν τα price tiers αργότερα σε αυτό το κεφάλαιο.

Σχεδόν κάθε cost calculator στο internet μοντελοποιεί ένα API call ως input tokens επί τιμή input συν output tokens επί τιμή output. Αυτό ίσχυε το 2023. Τώρα είναι λάθος με τρόπο που παράγει λογαριασμούς αποκλίνοντες κατά συντελεστή δύο ή περισσότερο και προς τις δύο κατευθύνσεις.

Υπάρχουν πέντε χρεώσιμες κατηγορίες token:

bucketτι είναιτυπική τιμή, σε σχέση με το input
uncached inputprompt tokens που το μοντέλο έπρεπε να επεξεργαστεί από την αρχή
cache readprompt tokens που εξυπηρετήθηκαν από αποθηκευμένο prefix0.1×
cache writeprompt tokens που αποθηκεύτηκαν στο cache σε αυτό το call1.25× έως 2×
outputtokens που παρήγαγε το μοντέλο και έστειλε σε εσάς5× έως 6×
reasoningtokens που παρήγαγε το μοντέλο και δεν έστειλε σε εσάςτιμή output

Τρεις από αυτές τις πέντε δεν υπήρχαν ως ξεχωριστές γραμμές πριν από δύο χρόνια, και οι δύο γραμμές cache είναι αυτές στις οποίες κάνουν λάθος οι περισσότεροι, επειδή ένα cache write κοστίζει περισσότερο από το συνηθισμένο input, όχι λιγότερο. Πληρώνετε premium για να αποθηκεύσετε κάτι ώστε να πληρώσετε έκπτωση όταν το διαβάσετε ξανά, και το αν αυτή η ανταλλαγή συμφέρει εξαρτάται αποκλειστικά από το πόσες φορές το διαβάζετε.

Το bucket του reasoning είναι του Κεφαλαίου 12, τώρα με τιμή πάνω του, και έχει μια λεπτομέρεια που αξίζει να ειπωθεί καθαρά: η τεκμηρίωση της Google λέει ότι η τιμολόγηση «βασίζεται στα πλήρη thought tokens που χρειάζεται να παράγει το μοντέλο, παρότι μόνο η σύνοψη επιστρέφεται από το API».4 Χρεώνεστε για tokens που δεν μεταδίδονται ποτέ σε εσάς. Είναι το μόνο bucket του οποίου το περιεχόμενο δεν μπορείτε να μετρήσετε, να επιθεωρήσετε ή να επαληθεύσετε.

Τώρα το μέρος που το κάνει πρόβλημα κανονικοποίησης αντί για πρόβλημα πολλαπλασιασμού. Κάθε provider αναφέρει αυτά τα buckets με διαφορετικά ονόματα, και — αυτή είναι η παγίδα — δύο από αυτούς χρησιμοποιούν την ίδια λέξη για δύο διαφορετικές ποσότητες.

Πάρτε ένα call: 4.837 tokens διαβασμένα από cache, 110 φρέσκα, 142 ορατά output tokens, 300 reasoning tokens.

three usage payloads, one callJSON
// OpenAI-compatible
{ "usage": { "prompt_tokens": 4947,
             "prompt_tokens_details": { "cached_tokens": 4837 },
             "completion_tokens": 442,
             "completion_tokens_details": { "reasoning_tokens": 300 } } }

// Anthropic
{ "usage": { "input_tokens": 110,
             "cache_read_input_tokens": 4837,
             "cache_creation_input_tokens": 0,
             "output_tokens": 442 } }

// Gemini
{ "usageMetadata": { "promptTokenCount": 4947,
                     "cachedContentTokenCount": 4837,
                     "candidatesTokenCount": 142,
                     "thoughtsTokenCount": 300 } }

Κοιτάξτε τα prompt_tokens: 4947 και input_tokens: 110. Και τα δύο πεδία είναι το input token count για το ίδιο prompt. Της OpenAI περιλαμβάνει τα cached tokens· της Anthropic τα εξαιρεί — η τεκμηρίωσή της δηλώνει ρητά την ταυτότητα, total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens.5 Το input_tokens της Anthropic σημαίνει «τα tokens μετά το τελευταίο σας cache breakpoint».

Και κοιτάξτε το output. OpenAI και Anthropic αναφέρουν και οι δύο 442, που ήδη περιέχει τα 300 reasoning tokens. Το Gemini αναφέρει 142 και βάζει τα 300 σε δικό του πεδίο. Το Κεφάλαιο 12 το επισήμανε ως ασυμβατότητα ανάμεσα σε δύο τρόπους μέτρησης της ίδιας εργασίας· εδώ είναι το κόστος του.

Ένας normaliser είναι τριάντα γραμμές και δεν είναι προαιρετικός:

normalise.tsTS
export interface Usage {
  promptTokens?: number;        // input, NOT cached
  cachedInputTokens?: number;   // read from cache
  cacheWriteTokens?: number;    // written to cache on this call
  completionTokens?: number;    // output
  reasoningTokens?: number;     // billed apart from output (Gemini only)
}

const num = (v: unknown) => (typeof v === "number" && isFinite(v) ? v : 0);

export const fromOpenAI = (raw: any): Usage => {
  const u = raw.usage ?? {}, d = u.prompt_tokens_details ?? {};
  const cached = num(d.cached_tokens), write = num(d.cache_write_tokens);
  return {
    promptTokens: Math.max(0, num(u.prompt_tokens) - cached - write), 
    cachedInputTokens: cached,
    cacheWriteTokens: write,
    completionTokens: num(u.completion_tokens),   // reasoning already inside
    reasoningTokens: 0,
  };
};

export const fromAnthropic = (raw: any): Usage => {
  const u = raw.usage ?? {};
  return {
    promptTokens: num(u.input_tokens),            // already excludes cache
    cachedInputTokens: num(u.cache_read_input_tokens),
    cacheWriteTokens: num(u.cache_creation_input_tokens),
    completionTokens: num(u.output_tokens),
    reasoningTokens: 0,
  };
};

export const fromGemini = (raw: any): Usage => {
  const m = raw.usageMetadata ?? {}, cached = num(m.cachedContentTokenCount);
  return {
    promptTokens: Math.max(0, num(m.promptTokenCount) - cached),
    cachedInputTokens: cached,
    cacheWriteTokens: 0,
    completionTokens: num(m.candidatesTokenCount), // EXCLUDES thinking
    reasoningTokens: num(m.thoughtsTokenCount),    // billed at output rate
  };
};

Περάστε τα τρία payloads παραπάνω μέσα από τους τρεις readers και όλα παράγουν το ίδιο Usage, και επομένως τον ίδιο αριθμό: $0.006491. Αυτή η συμφωνία είναι ολόκληρος ο λόγος ύπαρξης του layer.

Αν το κάνετε λάθος, αυτό κοστίζει, στο ίδιο call:

λάθοςχρέωσησφάλμα
να αντιμετωπίσετε το cached_tokens ως πρόσθετο στο prompt_tokens$0.0161652.49× — χρεώνετε το prompt δύο φορές
να αντιμετωπίσετε τα cache reads ως δωρεάν αντί για 0.1×$0.0055240.85× — απορροφάτε 15 %
να διαβάσετε το candidatesTokenCount και να αγνοήσετε το thoughtsTokenCount$0.002891το 55 % του call εξαφανίζεται

Το τρίτο είναι το επικίνδυνο, επειδή αποτυγχάνει σιωπηλά προς την κατεύθυνση των καλών νέων. Το dashboard σας δείχνει ένα reasoning model να κοστίζει λιγότερο από το μισό του πραγματικού κόστους, και πουθενά δεν εμφανίζεται error.

Με τα buckets κανονικοποιημένα, η συνάρτηση κόστους είναι σύντομη. Το μόνο μη προφανές μέρος είναι η αναζήτηση tier, που εξηγεί η επόμενη ενότητα:

cost.tsTS
export interface Tier { maxPromptTokens: number | null; price: number }
export interface Pricing {
  input: Tier[]; output: Tier[];
  cachedInput?: Tier[]; cacheWrite?: Tier[]; reasoning?: Tier[];
}

const tierPrice = (tiers: Tier[] | undefined, contextSize: number, fallback?: Tier[]) => {
  const table = tiers ?? fallback;
  if (!table?.length) return 0;
  const sorted = [...table].sort(
    (a, b) => (a.maxPromptTokens ?? Infinity) - (b.maxPromptTokens ?? Infinity));
  for (const t of sorted)
    if (t.maxPromptTokens === null || contextSize <= t.maxPromptTokens) return t.price;
  return sorted[sorted.length - 1].price;
};

export function computeCost(pricing: Pricing, usage: Usage): number {
  const fresh = usage.promptTokens ?? 0;
  const read  = usage.cachedInputTokens ?? 0;
  const write = usage.cacheWriteTokens ?? 0;
  const out   = usage.completionTokens ?? 0;
  const think = usage.reasoningTokens ?? 0;
  const contextSize = fresh + read + write;   // the tier depends on the WHOLE prompt
  return fresh * tierPrice(pricing.input, contextSize)
       + read  * tierPrice(pricing.cachedInput, contextSize, pricing.input)
       + write * tierPrice(pricing.cacheWrite,  contextSize, pricing.input)
       + out   * tierPrice(pricing.output, contextSize)
       + think * tierPrice(pricing.reasoning, contextSize, pricing.output);
}

Δύο σχεδιαστικές αποφάσεις εκεί αξίζει να υπερασπιστεί κανείς. Τα fallbacks — οι τιμές cache να πέφτουν πίσω στο input, το reasoning στο output — κωδικοποιούν τι σημαίνει ένας πίνακας που λείπει: τα reasoning tokens στο Gemini χρεώνονται στην τιμή output, άρα μια απούσα τιμή reasoning δεν είναι μηδέν, είναι η τιμή output. Και το contextSize αθροίζει και τα τρία input buckets αντί για μόνο τα φρέσκα, επειδή το tier επιλέγεται από το πόσο μακρύ είναι το prompt, όχι από το πόσο μέρος του χρεώθηκε σε πλήρη τιμή.

Ένα prompt cache αποθηκεύει την υπολογισμένη κατάσταση του μοντέλου για ένα prefix του prompt σας, ώστε ένα μεταγενέστερο αίτημα με το ίδιο prefix να παρακάμπτει τον επανυπολογισμό του. Τέσσερις ιδιότητες ακολουθούν από τη λέξη «prefix» και οι τέσσερις εκπλήσσουν τον κόσμο.

Το cache ταιριάζει από την αρχή του rendered prompt προς τα εμπρός, και σταματά στο πρώτο byte που διαφέρει. Δεν υπάρχει μερική πίστωση για περιεχόμενο που εμφανίζεται αργότερα με διαφορετική σειρά. Η OpenAI το λέει ξεκάθαρα: «η επαναχρησιμοποίηση cache απαιτεί να ταιριάζει ολόκληρο το rendered prefix».6

Κάτω από αυτό, τίποτα δεν μπαίνει σε cache και δεν επιστρέφεται error. Στην OpenAI το ελάχιστο είναι 1.024 tokens για GPT-5.6 και νεότερα και 2.048 για παλαιότερα μοντέλα. Στην Anthropic κυμαίνεται από 512 έως 4.096 ανάλογα με το μοντέλο — 1.024 για Claude Sonnet 4.5, 4.096 για Claude Haiku 4.5. Αν και τα δύο cache fields επιστρέφουν μηδέν, συνήθως αυτός είναι ο λόγος.

Η εγγραφή κοστίζει περισσότερο από την ανάγνωση, και περισσότερο από το να μην κάνετε caching

Σύνδεσμος στην ενότητα: Η εγγραφή κοστίζει περισσότερο από την ανάγνωση, και περισσότερο από το να μην κάνετε caching

Στην OpenAI και την Anthropic ένα cache write είναι 1.25× της uncached input τιμής για το βραχύβιο cache, και το cache μίας ώρας της Anthropic είναι 2×. Ένα read είναι 0.1×. Η Google δεν χρεώνει τίποτα για εγγραφή αλλά νοικιάζει το storage: $4.50 ανά εκατομμύριο tokens ανά ώρα στο Gemini 2.5 Pro.

Η προεπιλεγμένη εγγραφή της Anthropic ζει πέντε λεπτά, ανανεώνεται δωρεάν σε κάθε hit. Της OpenAI ζει τουλάχιστον τριάντα λεπτά μετά την τελευταία εγγραφή ή επαναχρησιμοποίηση. Και η OpenAI σημειώνει ότι οι cached states ζουν σε μεμονωμένα μηχανήματα, άρα ένα αίτημα κάνει hit μόνο αν δρομολογηθεί στο μηχάνημα που κρατά την εγγραφή — πράγμα που επηρεάζει το prompt_cache_key, χωρίς να το εγγυάται.

Το break-even είναι αρκετά μικρό ώστε να το κρατάτε στο μυαλό σας, και η τεκμηρίωση της OpenAI κάνει την αριθμητική: η εγγραφή ενός prefix μία φορά και η επαναχρησιμοποίησή του μία φορά κοστίζει 1.35× του συνηθισμένου input κόστους του, έναντι 2× για επεξεργασία του δύο φορές uncached· σε δέκα αιτήματα, μία εγγραφή και εννέα αναγνώσεις κοστίζουν 2.15× έναντι 10×. Μία επαναχρησιμοποίηση πληρώνει την εγγραφή. Η Anthropic καταλήγει στο ίδιο σημείο: ένα read για το cache των πέντε λεπτών, δύο για το cache της μίας ώρας.

Ξανά η συνομιλία των σαράντα γύρων, με caching ενεργό και το prefix σταθερό:

uncached inputcache readscache writesσύνολο
χωρίς cache112,617$0.274386
caching2,887104,7834,947$0.088250

Εξήντα οκτώ τοις εκατό φθηνότερα, και τρεις αριθμοί σε αυτόν τον πίνακα αξίζουν προσοχή.

Το cache δεν ενεργοποιείται μέχρι τον γύρο 6. Το prompt δεν φτάνει τα 1.024 tokens μέχρι τότε, άρα οι πρώτοι πέντε γύροι χρεώνονται ακριβώς όπως πριν — και ο έκτος χρεώνεται χειρότερα, με το premium εγγραφής 1.25×, επειδή είναι ο γύρος που γεμίζει το cache. Το πρώτο read φτάνει στον γύρο 7. Τα 2.887 uncached tokens στον πίνακα είναι η αριθμητική: η αξία πέντε γύρων, όχι έξι. Το caching είναι έκπτωση σε μεγάλα prompts, και μια σύντομη συνομιλία δεν κερδίζει τίποτα από αυτό.

Το write premium είναι $0.002474, δηλαδή 2,8 % του cached λογαριασμού. Κάθε γύρος γράφει τη νέα ουρά του, σαράντα φορές, και ολόκληρο το write premium είναι σφάλμα στρογγυλοποίησης μπροστά σε όσα εξοικονόμησαν τα reads. Αξίζει να κατανοήσετε ακριβώς τη χρέωση εγγραφής ώστε να σταματήσετε να ανησυχείτε γι’ αυτή.

Μόνο 2.887 tokens χρεώθηκαν σε πλήρη input τιμή από τα 112.617. Αυτό είναι το σχήμα ενός cache που λειτουργεί: σχεδόν τα πάντα είναι read.

Η σειρά του prompt αποφασίζει αν θα συμβεί κάτι από όλα αυτά

Σύνδεσμος στην ενότητα: Η σειρά του prompt αποφασίζει αν θα συμβεί κάτι από όλα αυτά

Ακολουθεί η αποτυχία που κοστίζει πραγματικά χρήματα, και είναι bug μίας γραμμής.

Βάλτε κάτι που αλλάζει σε κάθε call κοντά στην αρχή του prompt — ένα timestamp, ένα request id, το όνομα του χρήστη, μια γραμμή «σήμερα είναι», ένα πρόσφατα retrieved έγγραφο — και το prefix διαφέρει από το πρώτο byte. Τίποτα δεν ταιριάζει. Κάθε call είναι miss. Και επειδή κάθε call παρουσιάζει ένα νέο prefix, κάθε call επίσης γράφει.

Ίδια συνομιλία, ίδιοι σαράντα γύροι, caching ενεργό, με timestamp ανά call στην κορυφή του system prompt:

σύνολοέναντι
καθόλου caching$0.274386
caching, σταθερό prefix$0.088250−67.8 %
caching, ασταθές prefix$0.329251+20.0 %

Η ενεργοποίηση του prompt caching έκανε τη συνομιλία είκοσι τοις εκατό ακριβότερη από το να μην το ενεργοποιήσετε. Πληρώσατε το write premium 1.25× σε 109.730 tokens και διαβάσατε πίσω μηδέν. Δεν υπάρχει error, δεν υπάρχει warning, και το feature είναι ενεργό.

Άρα ο κανόνας, και είναι ολόκληρο το prompt caching σε μία γραμμή: σταθερό περιεχόμενο μπροστά, μεταβλητό περιεχόμενο πίσω. System instructions, tool definitions και reference material πρώτα· timestamps, user identity και η τρέχουσα ερώτηση τελευταία. Η Anthropic κάνει την ιεραρχία ρητή — το cache ακολουθεί toolssystemmessages, και μια αλλαγή σε οποιοδήποτε επίπεδο ακυρώνει εκείνο το επίπεδο και όλα όσα ακολουθούν, άρα η επεξεργασία μίας μόνο tool description ακυρώνει ολόκληρο το cache.5

Δύο συνέπειες στις οποίες σκοντάφτει ο κόσμος. Η αλλαγή του ποια tools είναι enabled αλλάζει τα tool definitions, άρα ένα feature flag που προσθέτει ένα tool για κάποιους χρήστες χωρίζει το cache σας στα δύο. Και στην Anthropic, η εναλλαγή web search ή citations τροποποιεί το system prompt, κάτι που ακυρώνει τα system και message caches χωρίς να αγγίξετε ούτε γραμμή δικού σας κειμένου.

Η προφανής αντίδραση σε έναν τετραγωνικό λογαριασμό είναι να σταματήσετε να στέλνετε ολόκληρο το ιστορικό: να κρατάτε τα τελευταία δώδεκα messages και να πετάτε τα υπόλοιπα. Μειώνει τον λογαριασμό, και συνήθως είναι λάθος κίνηση, και η μέτρηση δείχνει γιατί.

στρατηγικήσύνολοέναντι πλήρους ιστορικού + cache
πλήρες ιστορικό, χωρίς cache$0.274386+211 %
πλήρες ιστορικό, caching$0.088250
τελευταία 12 messages, χωρίς cache$0.118712+35 %
τελευταία 12 messages, caching ενεργό$0.122546+39 %

Η περικοπή σε window δώδεκα messages είναι 57 % φθηνότερη από το να στέλνετε τα πάντα uncached — η σύγκριση που κάνουν όλοι, και ο λόγος που η τεχνική είναι δημοφιλής. Αλλά είναι 39 % ακριβότερη από το να στέλνετε τα πάντα με cache που λειτουργεί, και η ενεργοποίηση caching μαζί με την περικοπή το κάνει ελαφρώς χειρότερο αντί για καλύτερο.

Ο μηχανισμός είναι ξανά το prefix. Ένα sliding window αφαιρεί το παλαιότερο message σε κάθε γύρο, άρα το prompt δεν ξεκινά πλέον από εκεί που ξεκινούσε την προηγούμενη φορά και κάθε γύρος παρουσιάζει νέο prefix. Η οδηγία της OpenAI το λέει ακριβώς: «η σύνοψη, η συμπύκνωση ή η περικοπή context μπορεί να αλλάξει το prefix και να επαναφέρει την επαναχρησιμοποίηση cache».6 Στον γύρο 40 το windowed prompt είναι 813 tokens, κάτω από το ελάχιστο των 1.024 tokens, άρα δεν μπορεί να γίνει καθόλου cached.

Και τα χρήματα είναι το φθηνό μισό του κόστους. Αυτό που πετάξατε είναι η οδηγία που έδωσε ο χρήστης στον γύρο 2 και που το μοντέλο χρειαζόταν στον γύρο 40. Η περικοπή ανταλλάσσει έναν λογαριασμό που μπορείτε να δείτε με μια αποτυχία που δεν μπορείτε, και το να το κάνετε σωστά — compaction, structured notes που κρατιούνται έξω από το window, ανάκτηση ιστορικού on demand — είναι το θέμα του Κεφαλαίου 24.

Τα μεγάλα contexts δεν είναι απλώς ακριβότερα επειδή είναι μεγαλύτερα. Πέρα από ένα όριο είναι ακριβότερα ανά token, και το όριο εφαρμόζεται αναδρομικά σε ολόκληρο το prompt.

Η σελίδα μοντέλου της OpenAI για το gpt-5.6-terra το λέει σε μία πρόταση: «Prompts with >272K input tokens are priced at 2x input and 1.5x output for the full request.»7 Όχι για το πλεόνασμα. Για ολόκληρο.

the most expensive token you will ever sendTEXT
prompt 271,999 + 500 output  ->  $0.5500
prompt 272,000 + 500 output  ->  $0.5500
prompt 272,001 + 500 output  ->  $1.0970

Ένα token, πενήντα πέντε σεντ. Αν η υπηρεσία σας χτίζει prompts από retrieved documents των οποίων το μέγεθος δεν ελέγχετε, έχετε γκρεμό στο μοντέλο κόστους σας σε ένα όριο που κανείς στην ομάδα σας δεν έχει γράψει.

Η τιμολόγηση της Google λειτουργεί με τον ίδιο τρόπο με όριο 200.000 tokens: το Gemini 2.5 Pro είναι $1.25 ανά εκατομμύριο input tokens για prompts έως 200K και $2.50 πάνω από αυτό, με το output να πηγαίνει από $10.00 σε $15.00.8 Η Anthropic πήγε προς την άλλη κατεύθυνση — στις 6 Σεπτεμβρίου 2026 η τεκμηρίωσή της δηλώνει ότι το Claude 4.6 και νεότερα περιλαμβάνουν ολόκληρο το window ενός εκατομμυρίου tokens στην τυπική τιμολόγηση, άρα «ένα αίτημα 900k-token χρεώνεται με την ίδια per-token τιμή με ένα αίτημα 9k-token».9 Παλαιότερα μοντέλα κρατούσαν την προσαύξηση.

Γι’ αυτό μια τιμή δεν είναι αριθμός. Μια τιμή είναι ένας πίνακας tiers με κλειδί το μήκος του prompt, και αυτός είναι ο λόγος ύπαρξης του Tier[] στη συνάρτηση κόστους, και ο λόγος που το computeCost επιλέγει το tier χρησιμοποιώντας ολόκληρο το prompt αντί για κάθε bucket ξεχωριστά.

Prefill, decode, και γιατί το output κοστίζει έξι φορές το input

Σύνδεσμος στην ενότητα: Prefill, decode, και γιατί το output κοστίζει έξι φορές το input

Τα πέντε buckets αντιστοιχούν στις δύο φάσεις του Κεφαλαίου 13, και μόλις δείτε την αντιστοίχιση οι λόγοι τιμών σταματούν να φαίνονται αυθαίρετοι.

Τα input tokens είναι prefill. Ολόκληρο το prompt περνά από το μοντέλο σε ένα pass, επεξεργασμένο παράλληλα — μεγάλοι πολλαπλασιασμοί πινάκων, compute-bound. Το κόστος ανά token είναι χαμηλό, και αυτή είναι η φάση που ορίζει το time to first token: ένα prompt 4.947 tokens έχει 4.947 tokens prefill να κάνει πριν εμφανιστεί η πρώτη λέξη.

Τα output tokens είναι decode. Παράγονται ένα-ένα, καθένα ένα πλήρες forward pass που διαβάζει ολόκληρο το KV cache, με το GPU να περιμένει κυρίως τη μνήμη αντί να υπολογίζει. Αυτή είναι η φάση που ορίζει τα tokens per second, δεν μπορεί να παραλληλιστεί μέσα σε μία απάντηση, και είναι ο λόγος που το output κοστίζει περίπου έξι φορές το input στο μοντέλο που τιμολογείται εδώ: $12.00 έναντι $2.00 ανά εκατομμύριο tokens.

Τρεις συνέπειες ακολουθούν άμεσα. Ένα cache read αντικαθιστά prefill work, άρα αγοράζει latency και χρήματα ταυτόχρονα — η ίδια έκπτωση εμφανίζεται ως χαμηλότερος λογαριασμός και μικρότερη αναμονή για το πρώτο token. Τα reasoning tokens είναι decode που δεν βλέπετε ποτέ, γι’ αυτό ένα reasoning model δεν κάνει stream τίποτα για αρκετά δευτερόλεπτα και μετά απαντά γρήγορα: το Κεφάλαιο 12 προειδοποίησε για τη συνέπεια στο interface, και αυτή είναι η συνέπεια στο invoice. Και η ακύρωση ενός stream δεν σταματά τη generation — το Κεφάλαιο 14 έχτισε cancellation και άφησε την τιμή για αυτό το κεφάλαιο, και η τιμή είναι το πλήρες output count, επειδή τα tokens παράγονται και χρεώνονται είτε ακούει κάποιος είτε όχι. Το ίδιο ισχύει για την απάντηση που κανείς δεν κρατά: η επαναδημιουργία μιας απάντησης του γύρου 40 πέντε φορές κοστίζει $0.057990 για τη μία που μένει στην οθόνη.

Ο tokenizer του Κεφαλαίου 7 ήταν Python και έμεινε εκεί. Το budgeting γίνεται στον server που χτίζει το αίτημα, άρα πρέπει να γίνεται εδώ, και υπάρχουν ακριβώς τρία επίπεδα ακρίβειας διαθέσιμα.

Επίπεδο ένα: μετρήστε τοπικά. Το js-tiktoken διανέμει τους ίδιους BPE merge tables με το Python tiktoken, άρα ένα byte-for-byte ίδιο count για OpenAI encodings, χωρίς network call:

count.tsTS
import { getEncoding } from "js-tiktoken";

const enc = getEncoding("o200k_base");
const PER_MESSAGE = 4;   // role and delimiters added by the chat template
const PER_REPLY = 3;     // priming for the assistant turn

export function promptTokens(messages: { role: string; content: string }[]) {
  return messages.reduce(
    (sum, m) => sum + enc.encode(m.content).length + PER_MESSAGE, PER_REPLY);
}

Οι δύο σταθερές έχουν σημασία και είναι εκεί όπου τα local counts αποκλίνουν. Το κείμενό σας δεν είναι αυτό που γίνεται tokenized — το chat template του Κεφαλαίου 11 τυλίγει πρώτα κάθε message με role markers, και αυτά είναι tokens που πληρώνετε. Τέσσερα ανά message και τρία για το reply priming είναι η συμβατική προσέγγιση για OpenAI chat models· στα ογδόντα ένα messages της συνομιλίας παραπάνω αθροίζονται σε 324 tokens, 6,4 % του μήκους της. Τα counts εδώ διασταυρώθηκαν με το Python tiktoken από το Κεφάλαιο 7 και στις ογδόντα μία strings και είναι ταυτόσημα.

Επίπεδο δύο: ρωτήστε τον provider. Η Anthropic εκθέτει το /v1/messages/count_tokens και η Google εκθέτει το count_tokens, και τα δύο δέχονται το ίδιο σχήμα αιτήματος με ένα πραγματικό call και επιστρέφουν input token count δωρεάν. Χρησιμοποιήστε τα όταν δεν μπορείτε να μετρήσετε τοπικά — και δεν μπορείτε να μετρήσετε τοπικά για την Anthropic, της οποίας ο tokenizer δεν είναι δημοσιευμένος. Η τεκμηρίωση της Anthropic είναι προσεκτική για το τι σας δίνει: το count «είναι εκτίμηση», και «μπορεί να περιλαμβάνει tokens που προστίθενται αυτόματα από την Anthropic για system optimizations», για τα οποία «δεν χρεώνεστε».10

Επίπεδο τρία: διαβάστε το usage στην απάντηση. Αυτή είναι η αλήθεια, και φτάνει αφού έχουν ξοδευτεί τα χρήματα. Ακριβώς γι’ αυτό υπάρχουν τα πρώτα δύο επίπεδα — για να αποφασίσετε αν θα στείλετε το αίτημα, όχι για να το χρεώσετε.

Τα πράγματα που πληρώνετε και κανείς δεν σας δείχνει

Σύνδεσμος στην ενότητα: Τα πράγματα που πληρώνετε και κανείς δεν σας δείχνει

Τέσσερα line items που δεν εμφανίζονται ως line items.

Το system prompt, πληρωμένο σε κάθε call. Το παραπάνω είναι 192 tokens με το template overhead του. Σε σαράντα calls αυτό είναι 7.680 tokens — 5,6 % ολόκληρου του λογαριασμού αυτής της συνομιλίας, για οκτώ γραμμές γραμμένες μία φορά. Είναι επίσης ο καλύτερος δυνατός υποψήφιος για cache, επειδή είναι και σταθερό και πρώτο.

Tool definitions. Το όνομα, η περιγραφή και το JSON schema κάθε tool βγαίνουν σε κάθε αίτημα, και οι providers προσθέτουν scaffolding από πάνω. Η Anthropic δημοσιεύει τον αριθμό: η απλή ενεργοποίηση tools προσθέτει ένα κρυφό system prompt 496 tokens στο Claude Sonnet 4.5 με το tool_choice ορισμένο σε auto, ή 588 με any ή named tool.9 Αυτό πριν από τα δικά σας schemas. Το Κεφάλαιο 18 χτίζει τον κατάλογο· το Κεφάλαιο 24 μετρά τι καταναλώνει.

Κάθε generation, συμπεριλαμβανομένων όσων απορρίπτετε. Πέντε regenerations κοστίζουν πέντε φορές. Το chat δείχνει μία.

Σκέψεις που δεν σας δείχνονται. Η χρέωση βασίζεται στα πλήρη thought tokens παρότι επιστρέφεται μόνο μια σύνοψη, και κανένα δικό σας accounting δεν μπορεί να ελέγξει αυτόν τον αριθμό.

Το να έχετε 200K tokens δεν σημαίνει ότι τα χρησιμοποιείτε

Σύνδεσμος στην ενότητα: Το να έχετε 200K tokens δεν σημαίνει ότι τα χρησιμοποιείτε

Μία προειδοποίηση για το τέλος, επειδή είναι η φυσική επόμενη σκέψη και η απάντηση δεν είναι η προφανής.

Ένα window ενός εκατομμυρίου tokens δεν σημαίνει ένα εκατομμύριο χρησιμοποιήσιμα tokens. Η ακρίβεια retrieval υποβαθμίζεται με τη θέση: οι Liu et al. βρήκαν ότι τα μοντέλα εντοπίζουν πληροφορίες αξιόπιστα στην αρχή και στο τέλος ενός μεγάλου input και πολύ λιγότερο αξιόπιστα στη μέση.11 Ένα μεγαλύτερο window αγοράζει την ικανότητα να στείλετε περισσότερα, όχι τη βεβαιότητα ότι θα διαβαστούν.

Αυτό το φαινόμενο μετριέται μία φορά σε αυτό το course — το retrieval rate σε εννέα θέσεις στο ίδιο prompt 853 tokens — και ανήκει στο Κεφάλαιο 24, όπου αλλάζει τι κάνει ένα agent. Αναφέρεται εδώ επειδή αλλάζει τι πρέπει να αγοράζετε: το φθηνότερο token είναι αυτό που δεν στείλατε.

Μπορείτε πλέον να προβλέψετε τι θα κοστίσει ένα call πριν το κάνετε, να διαβάσετε τι κόστισε μετά, και να ξεχωρίσετε τη διαφορά ανάμεσα στα δύο. Αυτό καλύπτει τα πάντα για το αίτημα εκτός από το κομμάτι που δεν έχετε αγγίξει: τα knobs.

Το Κεφάλαιο 17 είναι sampling — temperature, top-p, top-k, οι penalties, και ο determinism που δεν έχετε. Ξεκινά αποδομώντας το πιο διαδεδομένο λάθος στο πεδίο, ότι το temperature είναι dial δημιουργικότητας. Δεν είναι: το temperature διαιρεί τα logits από το Κεφάλαιο 4 πριν από το softmax, και η αύξησή του δεν κάνει το μοντέλο ευφάνταστο, αυξάνει την πιθανότητα tokens που το ίδιο το μοντέλο βαθμολόγησε ως χειρότερα. Από εκεί, γιατί το greedy decoding παράγει μετρήσιμα χειρότερο κείμενο από το sampling, γιατί τα top-k και top-p αποτυγχάνουν σε αντίθετα σχήματα κατανομής, και το πείραμα που κλείνει το κεφάλαιο: είκοσι πανομοιότυπα forward passes σε temperature 0 επιστρέφουν bit-for-bit πανομοιότυπα όταν το μοντέλο τρέχει μόνο του, και το να βάλετε το ίδιο prompt σε batch δίπλα στα αιτήματα κάποιου άλλου μετακινεί το 97 % των logits του.

Δεν ταιριάζουν όλα. Ο λόγος ξεκινά με το πλαίσιο floating-point από το Κεφάλαιο 2.


Όλες οι τιμές, τα thresholds και οι multipliers σε αυτό το κεφάλαιο διαβάστηκαν από τις ίδιες τις σελίδες των providers στις 6 Σεπτεμβρίου 2026 και δηλώνονται με αυτή την ημερομηνία επειδή θα αλλάξουν. Η μέθοδος έχει μεγαλύτερη σημασία από τους αριθμούς: τα buckets, ο κανόνας prefix και η αριθμητική των tiers έχουν μείνει σταθερά για δύο χρόνια ενώ κάθε τιμή μέσα τους έχει μετακινηθεί.

Η διάλεξη 2 του Stanford CS336, Resource accounting, είναι η πιο κοντινή ακαδημαϊκή πραγμάτευση αυτού του υλικού και το σωστό επόμενο ανάγνωσμα: κάνει την ίδια αριθμητική στην πλευρά του training που αυτό το κεφάλαιο κάνει στην πλευρά του inference. Τα token counts εδώ παρήχθησαν με js-tiktoken 1.0.21 χρησιμοποιώντας τα encodings o200k_base και cl100k_base, πάνω σε μια συνομιλία σαράντα γύρων 5.090 tokens· το per-message template overhead είναι η συμβατική προσέγγιση four-plus-three και δηλώνεται όπου περιλαμβάνεται. Τα στοιχεία cache, tier και truncation είναι οι τεκμηριωμένοι κανόνες τιμολόγησης εφαρμοσμένοι σε εκείνα τα μετρημένα token counts, όχι παρατηρήσεις από live API responses — δεν έγινε paid call για την παραγωγή αυτού του κεφαλαίου, που είναι επίσης ο ειλικρινής λόγος για τον οποίο οι ισχυρισμοί latency είναι ποιοτικοί και οι ισχυρισμοί κόστους δεν είναι.

  1. Dao, T., Fu, D. Y., Ermon, S., Rudra, A. and Ré, C. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. arXiv:2205.14135 (2022). Γιατί το ταβάνι μετακινήθηκε χωρίς να αλλάξει το ασυμπτωτικό κόστος.

  2. Chen, S., Wong, S., Chen, L. and Tian, Y. Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595 (2023).

  3. Peng, B., Quesnelle, J., Fan, H. and Shippole, E. YaRN: Efficient Context Window Extension of Large Language Models. arXiv:2309.00071 (2023).

  4. Google, Thinking, ai.google.dev/gemini-api/docs/thinking, και Token counting, ai.google.dev/gemini-api/docs/tokens, πρόσβαση και στα δύο 2026-09-06. «Pricing is based on the full thought tokens the model needs to generate, despite only the summary being output from the API.» Το usage object αναφέρει total_input_tokens, total_output_tokens, total_thought_tokens, total_cached_tokens, total_tool_use_tokens και total_tokens — έξι buckets, με thoughts και tool use έξω από το output count. Το παλαιότερο field name για την ίδια ποσότητα, που εξακολουθεί να επιστρέφεται από το generateContent surface, είναι thoughtsTokenCount, τεκμηριωμένο σε τρίτη σελίδα, ai.google.dev/gemini-api/docs/generate-content/thinking.

  5. Anthropic, Prompt caching, docs.anthropic.com/en/docs/build-with-claude/prompt-caching, πρόσβαση 2026-09-06. Πηγή της ιεραρχίας ακύρωσης toolssystemmessages και του πίνακά της· των ανά-μοντέλο ελάχιστων cacheable lengths· της ταυτότητας total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens· και της προεπιλεγμένης διάρκειας ζωής πέντε λεπτών που ανανεώνεται χωρίς χρέωση σε κάθε hit. 2

  6. OpenAI, Prompt caching, platform.openai.com/docs/guides/prompt-caching, πρόσβαση 2026-09-06. Πηγή για: τον κανόνα ολόκληρου rendered prefix· το ελάχιστο cacheable prefix (1.024 visible input tokens σε GPT-5.6 και νεότερα, 2.048 παλαιότερα)· τους multipliers 1.25× για write και 0.1× για read, και την απουσία οποιασδήποτε χρέωσης write σε GPT-5.5 και παλαιότερα· τη διάρκεια ζωής 30 λεπτών· τα όρια four-writes-per-request και fifty-breakpoint· τη σημείωση machine-affinity και το prompt_cache_key· τα worked examples break-even 1.35×, 2.15× και 10×· και τη δήλωση ότι summarisation, compaction ή truncation επαναφέρουν την επαναχρησιμοποίηση cache. 2

  7. OpenAI, Pricing (platform.openai.com/docs/pricing) και η σελίδα μοντέλου για το gpt-5.6-terra, πρόσβαση και στα δύο 2026-09-06. gpt-5.6-terra, standard service tier, ανά εκατομμύριο tokens: input $2.00, cached input $0.20, cache writes $2.50, output $12.00· long context input $4.00, cached $0.40, writes $5.00, output $18.00· «prompts with >272K input tokens are priced at 2x input and 1.5x output for the full request»· context window 1.050.000 tokens με μέγιστο 922.000 input tokens. Ο ίδιος πίνακας αναφέρει το gpt-6-astra στα $10.00/$1.00/$12.50/$50.00 και το gpt-5.6-luna στα $0.20/$0.02/$0.25/$1.20. Κάθε worked cost σε αυτό το κεφάλαιο χρησιμοποιεί τις standard short-context rates του gpt-5.6-terra.

  8. Google, Gemini Developer API pricing, ai.google.dev/gemini-api/docs/pricing, πρόσβαση 2026-09-06. Gemini 2.5 Pro, ανά εκατομμύριο tokens: input $1.25 για prompts έως 200K και $2.50 πάνω από αυτό· output $10.00 και $15.00, και στις δύο περιπτώσεις με ετικέτα «including thinking tokens»· context caching $0.125 και $0.25, συν χρέωση storage $4.50 ανά εκατομμύριο tokens ανά ώρα. Το Gemini 3.1 Pro Preview χρησιμοποιεί το ίδιο threshold 200K στα $2.00/$4.00 input και $12.00/$18.00 output.

  9. Anthropic, Pricing, docs.anthropic.com/en/docs/about-claude/pricing, πρόσβαση 2026-09-06. Ανά εκατομμύριο tokens, base input / 5-minute cache write / 1-hour cache write / cache read / output: Claude Sonnet 4.5 $3 / $3.75 / $6 / $0.30 / $15· Claude Haiku 4.5 $1 / $1.25 / $2 / $0.10 / $5· Claude Opus 5 $5 / $6.25 / $10 / $0.50 / $25. Multipliers: 1.25× για το five-minute write, 2× για το one-hour write, 0.1× για read. Επίσης πηγή της δήλωσης long-context («Claude 4.6 and later models... include the full 1M token context window at standard pricing»), των tool-use system prompt token counts (496 tokens στο Claude Sonnet 4.5 με tool_choice του auto ή none, 588 με any ή named tool), και της σημείωσης ότι το Claude 4.7 και νεότερα χρησιμοποιούν νεότερο tokenizer που παράγει «approximately 30 % more tokens for the same text». 2 3

  10. Anthropic, Token counting, docs.anthropic.com/en/docs/build-with-claude/token-counting, πρόσβαση 2026-09-06. Το endpoint /v1/messages/count_tokens παίρνει τα ίδια inputs με ένα message και επιστρέφει input token count· η τεκμηρίωση δηλώνει ότι το count είναι εκτίμηση, ότι μπορεί να περιλαμβάνει tokens που προσθέτει η Anthropic για system optimisations, και ότι αυτά δεν χρεώνονται.

  11. Liu, N. F., Lin, K., Hewitt, J., Paranjape, A., Bevilacqua, M., Petroni, F. and Liang, P. Lost in the Middle: How Language Models Use Long Contexts. arXiv:2307.03172 (2023). Αναφέρεται εδώ, μετριέται στο Κεφάλαιο 24.


Δημιουργήθηκε από

David Vicente Campos

Ιδρυτής της NeuraLIA Labs & συνιδρυτής του MyRealFood

Είμαι μηχανικός πληροφορικής, απόφοιτος του Πανεπιστημίου Λεόν. Συνίδρυσα το MyRealFood, όπου ως CTO έφτιαξα την εφαρμογή που έχουν χρησιμοποιήσει εκατομμύρια άνθρωποι για να τρώνε καλύτερα, και ίδρυσα τη NeuraLIA Labs, όπου δημιουργώ προϊόντα AI. Εδώ γράφω για όσα χρειάστηκε να κατανοήσω στην πορεία, όπως θα ήθελα να μου τα είχε εξηγήσει κάποιος.

Περισσότερα για τον συγγραφέα

Δημοσιεύτηκε από τη NeuraLIA Labs.

Λάβετε νέες αναρτήσεις στα εισερχόμενά σας

Νέα για AI, οδηγοί και ενημερώσεις προϊόντος — ένα σύντομο email όταν δημοσιεύουμε κάτι που αξίζει τον χρόνο σας.

Ευρετήριο μαθήματος

Abstract software decision engine with branching paths, probability nodes, and glowing gates.
jev13 λεπτά ανάγνωσης

Το μοντέλο AI Jev είναι φτιαγμένο για αποφάσεις, όχι για πρόζα

Το Jev της TypeSafe AI τραβά την προσοχή επειδή αντιμετωπίζει την ευφυΐα στο λογισμικό ως πρόβλημα πιθανοτήτων: επιλέξτε το σωστό κλαδί, προσθέστε βεβαιότητα και αποφύγετε να πληρώνετε ένα LLM για να γράφει κείμενο όταν ο κώδικας χρειάζεται μια απόφαση.

Abstract legal research workspace with documents, search nodes and governance controls.
openai12 λεπτά ανάγνωσης

Το Astra for Law της OpenAI είναι νομικό σύστημα AI, όχι νέο μοντέλο

Το νομικό λανσάρισμα της OpenAI αφορά λιγότερο ένα νέο θεμελιώδες μοντέλο και περισσότερο το σύστημα γύρω από αυτό: ανάκτηση ανά τομέα, αξιόπιστα εργαλεία, δικαιώματα, benchmarks και διαδρομές ελέγχου.

Abstract agent runtime sorting documents, memory blocks and pointer nodes inside a bounded context frame.
context-engineering12 λεπτά ανάγνωσης

Context engineering for long-horizon AI agents

Long-running agents do not fail only because the window is small. They fail when files, tool outputs and stale history crowd out the task the agent was supposed to finish.

Έτοιμοι να αφήσετε τη LIA να επιλέγει;

Δημιουργήστε με κάθε μοντέλο AI σε ένα σημείο — ξεκινήστε δωρεάν σήμερα.