AgentraXhelpAgent / COST_NOTES.md
Shurem's picture
Add Docker setup for Hugging Face Spaces deployment
1fee1c2
|
Raw
History Blame Contribute Delete
3.78 kB

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

  1. Semantic cache β€” identical or near-identical questions (cosine β‰₯ 0.85) skip the agent entirely.
  2. Scrape cache β€” website content is served from disk for 60 minutes; HTTP fetch only on stale.
  3. Summary sidecar β€” document summaries are written to disk and never regenerated.
  4. Staleness guard in scheduler β€” is_content_stale() checked before any scrape or re-index.
  5. Local embeddings for cache β€” sentence-transformers runs on CPU, no API cost for cache operations.
  6. ChromaDB singleton β€” client opened once per process; no per-request reconnect overhead.
  7. gpt-4o-mini β€” ~15Γ— cheaper than gpt-4o for equivalent tasks in this domain.