Ugrás a fő tartalomhoz

Credit Számítás

⚠️ KRITIKUS: NEM token alapú pricing!

Gyakori tévedés:

❌ ROSSZ: "Sok token = magas credit költés"
❌ ROSSZ: "Nincs prompt caching → drága generálás"

Valóság:

✅ HELYES: Fix árú pricing modell
✅ HELYES: Token mennyiség IRRELEVÁNS

Pricing Architektúra

Táblák

product_credits - Fix árak típusonként

| product_id | generation | titles | image | faq | disc | meta_description |
|------------|-----------|--------|-------|-----|------|------------------|
| 1 (bp_articles) | 48 | 2 | 8 | ... | ... | 1 |
| 2 (pd_short) | 3 | 0 | 8 | ... | ... | 1 |

credit_status_mappings - Queue státusz → credit kapcsolat

| product_id | queue_status | generation | includes_titles | includes_image | ... |
|------------|--------------|-----------|-----------------|----------------|-----|
| 1 | completed | 1 | 1 | 1 | ... |
| 1 | failed | 0 | 0 | 0 | ... |

Számítás (Blogbejegyzés példa)

Kérés: 2 db bp_articles cikk, titles + image + meta_description

titles:           2 × 2 credit  = 4 credit
generation: 2 × 48 credit = 96 credit
image: 2 × 8 credit = 16 credit
meta_description: 2 × 1 credit = 2 credit
-------------------------------------------
Összesen: 118 credit

Token mennyiség:

  • Input: 9,378 token (4,684 per cikk)
  • Output: 5,480 token (2,740 per cikk)
  • HATÁS A CREDIT-RE: 0 ← NEM számít!

Service Layer

Fájl: app/Services/CreditCalculationService.php

public function calculateCharge($request, $queuedItems)
{
// Base credit (generation)
$baseCredit = $count × $productCredits->generation;

// Extra features (titles, image, faq, ...)
if ($request->includes_titles) {
$baseCredit += $count × $productCredits->titles;
}
// ...

return $baseCredit;
}

Példa Query (DB verify)

-- Request credit összesítés
SELECT
r.id,
r.products_count,
SUM(csm.generation_credit) as generation_credit,
SUM(csm.titles_credit) as titles_credit,
SUM(csm.image_credit) as image_credit,
SUM(csm.total_credit) as total_credit
FROM blog_post_requests r
INNER JOIN blog_post_queues q ON q.blog_post_request_id = r.id
INNER JOIN credit_status_mappings csm ON csm.product_id = r.product_id
AND csm.queue_status = q.status
WHERE r.id = 1214
GROUP BY r.id;

Debug Workflow

  1. Verify product_credits: Fix árak helyes?
  2. Check credit_status_mappings: Completed státusz = credit 1?
  3. Query queue státuszok: Completed vs failed arány
  4. Számold újra manuálisan: Count × credit_amount
  5. Logs: channel = 'credit' (ha van credit log)

Részletes Dokumentáció

📖 /docs/local/_session/credit_pricing_reference.md - Teljes pricing táblázatok, edge case-ek.


Utolsó frissítés: 2026-02-05