Backend Cost Notes
Operations that cost OpenAI tokens
| Operation |
Model |
When |
Frequency |
| Final answer generation |
gpt-4o-mini (chat) |
Every uncached user query |
Per unique question |
| Document summarization |
gpt-4o-mini (chat) |
First call per document |
Once per file; sidecar caches result |
| Document ingestion (embedding) |
text-embedding-3-small |
When a document is indexed |
Once per document; re-indexing re-bills |
| Site re-indexing after scrape |
text-embedding-3-small |
When scheduler detects stale content |
At most once per 60-minute window |
Operations that are free (zero OpenAI tokens)
| Operation |
How |
| Semantic cache lookup |
Local sentence-transformers (all-MiniLM-L6-v2) + pure-Python cosine similarity |
| Cache embedding on save |
Same local model β no API call |
| BM25 paragraph scoring |
rank-bm25 library, runs in-process |
| Website scraping |
Plain HTTP fetch + BeautifulSoup |
| Content diff checking |
difflib.unified_diff (stdlib) |
| Staleness check |
Timestamp arithmetic on cached JSON |
| ChromaDB metadata queries |
Reads stored metadata; no embedding triggered |
| Document summarization (repeat) |
Reads .summary.json sidecar; OpenAI never called |
| Cache hit response |
Returns stored answer string; agent never instantiated |
Token estimates per request
Uncached query (cache MISS)
System prompt: ~100 tokens (input)
Tool schemas (3 tools): ~200 tokens (input)
Conversation history: ~50 tokens (input, typical 1-2 turns)
User message: ~20 tokens (input)
Tool call result ~400 tokens (input β BM25 top-5 paragraphs from website)
(search_agentrax_website)
ββββββββββββββββββββββββββββββββββββββββββββββ
Total input: ~770 tokens
Agent response: ~150 tokens (output)
ββββββββββββββββββββββββββββββββββββββββββββββ
Total per query: ~920 tokens β ~$0.00028 at gpt-4o-mini pricing
Cached query (cache HIT)
OpenAI tokens: 0
Local compute: sentence-transformers inference + cosine scan over cache
Latency: <50 ms (no network call)
Cost: $0.00
Document summarization (first call)
System prompt: ~50 tokens (input)
Document text: up to 12,000 characters (~3,000 tokens, input)
Summary output: ~300 tokens (output)
ββββββββββββββββββββββββββββββββββββββββββββββ
Total first call: ~3,350 tokens β ~$0.001 at gpt-4o-mini pricing
Subsequent calls: 0 tokens (sidecar cache)
Document ingestion (text-embedding-3-small)
Rate: $0.00002 per 1K tokens
Typical document: ~5,000 tokens across all chunks
Cost per document: ~$0.0001
Cost reduction mechanisms in place
- Semantic cache β identical or near-identical questions (cosine β₯ 0.85) skip the agent entirely.
- Scrape cache β website content is served from disk for 60 minutes; HTTP fetch only on stale.
- Summary sidecar β document summaries are written to disk and never regenerated.
- Staleness guard in scheduler β
is_content_stale() checked before any scrape or re-index.
- Local embeddings for cache β sentence-transformers runs on CPU, no API cost for cache operations.
- ChromaDB singleton β client opened once per process; no per-request reconnect overhead.
- gpt-4o-mini β ~15Γ cheaper than gpt-4o for equivalent tasks in this domain.