▶️ AI Portföy Analiz Tetikledim
Claude Haiku ile ~18 saniye profesyonel grade analiz
- UI: Portföy detay > "AI Analiz" sekmesi > "Portföyü Analiz Et" butonu
- Quota check: Günde 1 hak. Önceki analiz varsa "Yenile" (24sa beklemeli)
- POST:
POST /api/portfolio/23919/ai-analysis/generate - Backend veri topla:
- /portfolio/{id}/holdings — tüm pozisyonlar
- /portfolio/{id}/history — 73 gün tarihçe
- /stocks/indices/XU100 — BIST 100 benchmark
- Altın fiyat, USD kuru, mevduat faizi (%45/yıl)
- Anthropic Claude Haiku API:
POST https://api.anthropic.com/v1/messages { "model": "claude-haiku-4", "system": "Sen Türk finansal danışmansın. JSON formatında detaylı portföy analizi ver...", "messages": [{"role": "user", "content": "{ portfolio_data, benchmarks, ... }"}], "max_tokens": 2048 } - Response (~18 sn):
{ "skor": 22, "performansSkor": 15, "riskSkor": 18, "cesitlilikSkor": 12, "ozet": "Portföy, 73 günde %12 değer kaybederek...", "guclu": ["LXGYO %3.4 kayıp ile en iyi performans", ...], "zayif": ["%99.08 SVGYO konsantrasyon", ...], "firsatlar": [...], "riskler": [...], "benchmark": { "portfoy": -12, "bist100": 3.9, "altin": -11.2, "dolar": 3.6, "mevduat": 7.7 }, "aksiyonlar": [ {"baslik": "Portföy Yeniden Yapılandırması", "onem": "Yuksek", ...}, ... ], "varlikKararlari": [ {"sembol": "SVGYO", "karar": "AZALT"}, {"sembol": "SMRVA", "karar": "SAT"}, {"sembol": "LXGYO", "karar": "TUT"} ] } - Backend cache 24sa + Response 201 Created
- UI render:
- 22/100 büyük skor + 3 alt-skor
- SWOT (4 kategori, 11 bullet)
- Benchmark tablo (4 varlık)
- 5 aksiyon kartı (Yüksek/Orta etiketi)
- 3 varlık karar badge'leri (AZALT/SAT/TUT)
- AI Notu özet paragraf
- Disclaimer: "Bu analiz yapay zeka tarafından üretilmiştir ve yatırım tavsiyesi niteliğinde değildir."
💰 Maliyet
| Claude Haiku input | ~$0.25 / 1M token |
| Claude Haiku output | ~$1.25 / 1M token |
| Bu analiz | ~3K input + ~1K output tokens = ~$0.0025 |
POST/api/portfolio/{id}/ai-analysis/generate
GET/api/portfolio/{id}/ai-analysis
🗄️ DB Tabloları
| Tablo | İşlem |
|---|---|
portfolio_ai_analysis_cache | UPSERT (portfoy_id, analiz_json, skor, olusturma_tarihi, expire 24h) |
positions | SELECT (input için) |
asistan_mesajlar | INSERT (kaynak='haiku', token_sayisi) |