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
- Verify product_credits: Fix árak helyes?
- Check credit_status_mappings: Completed státusz = credit 1?
- Query queue státuszok: Completed vs failed arány
- Számold újra manuálisan: Count × credit_amount
- 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