Files
MathApp/docs/model-prices.md
Zareian 2cf2d14dd4 Security re-check and load test 2026-10-04: 32 threads, data file permissions, patched deps
- gunicorn gthread 8 -> 32 threads per worker: each assistant stream holds a thread for
  the whole answer; with 3x8, about 20 concurrent asks already queued ordinary page loads
  for seconds (up to 23 s at 50 asks locally, 7 s at 20 asks on the live server). With 3x32,
  75 concurrent asks kept page loads under 110 ms (laptop, simulated model and Qdrant)
- deploy.sh: new step closes the project dir to other accounts and sets the database and
  backups to 0600/0700 on every release; user `nobody` on the shared server could read
  db.sqlite3 and every backup
- requirements: python-dotenv 1.2.2, urllib3>=2.8.0 (known CVEs in the installed versions),
  gunicorn pinned to the server's version (was only installed by hand)
- security-before-production.md: items 19-23 (file permissions, DEBUG=1 still in the systemd
  unit, dependencies, frontend headers, guest AI cap per shared IP) and the reproduced
  X-Forwarded-For spoof through the origin IP
- model-prices.md: 0.183 cents per answer from 50 answers in the live load test

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:39:11 +03:30

7.0 KiB
Raw Blame History

دفترِ قیمتِ مدل‌ها (اندازه‌گیری‌شده، نه از جدولِ قیمت)

این فایل یک دفتر است: هر بار قیمت یا مدل عوض شد، ردیفِ تازه اضافه کنید و ردیفِ قدیمی را پاک نکنید. هدف این است که اگر GapGPT یا OpenAI روزی قیمت را بالا برد، بشود دید قبلاً چه بوده، از کِی عوض شده، و هر عدد با چه آزمایشی به دست آمده.

همه‌ی قیمت‌ها به دلارِ آمریکا هستند. «سنت» یعنی یک‌صدمِ دلار. تبدیل به تومان در docs/ai-cost-and-guardrails.md است، چون نرخِ دلار جدا از قیمتِ مدل عوض می‌شود.

مدل‌هایی که الان استفاده می‌شوند

کار مدل تنظیم از کِی
جوابِ دستیار (چت) gpt-4.1-mini OPENAI_CHAT_MODEL ۲۰۲۶-۰۹-۲۶ (پیش از آن gpt-4o-mini)
خواندنِ صفحه‌ی کتاب (vision) gpt-4.1-mini OPENAI_VISION_MODEL ۲۰۲۶-۰۹-۲۰
embedding برای Qdrant text-embedding-3-small OPENAI_EMBEDDING_MODEL از ابتدا

همه از راهِ GapGPT (OPENAI_BASE_URL) صدا زده می‌شوند. کلید با سرورِ زنده و تیمِ دیگر مشترک است.

قیمتِ هر توکن، همان‌طور که GapGPT واقعاً حساب کرد

تاریخِ سنجش مدل ورودی (دلار / ۱ میلیون توکن) خروجی (دلار / ۱ میلیون توکن) مدرک
۲۰۲۶-۰۹-۲۵/۲۶ gpt-4.1-mini ۰٫۴۰ ۱٫۶۰ ۵۴۱ فراخوانی (۱)
۲۰۲۶-۰۹-۲۵/۲۶ gpt-4o-mini ۰٫۱۵ ۰٫۶۰ ۳۱۱ فراخوانی (۱)

(۱) docs/benchmarks/2026-09-26-tutor-model/*.json: هر جواب promptTokens، completionTokens و costUsd دارد، و costUsd همان usage.costی است که خودِ GapGPT برگرداند. در ۲۰۲۶-۱۰-۰۲ دوباره حساب شد. برای gpt-4.1-mini، ۳۹۰ فراخوانی دقیقاً برابرِ (0.40 × ورودی + 1.60 × خروجی) / 1e6 بودند و ۱۵۱ فراخوانیِ دیگر (۲۸٪) ارزان‌تر، چون کشِ خودکارِ ورودی خورده بودند. هیچ فراخوانی‌ای گران‌تر نبود. برای gpt-4o-mini، ۲۹۷ فراخوانی دقیقاً برابر بودند و ۱۴ فراخوانی ارزان‌تر. یعنی برای این دو مدل در آن تاریخ، قیمتِ GapGPT همان قیمتِ رسمیِ OpenAI بود.

این را به همه‌ی مدل‌ها تعمیم ندهید: برای ورودِ کتاب، gemini-3.6-flash سه برابرِ gpt-4o تمام شد، یعنی خلافِ چیزی که از جدولِ قیمت انتظار می‌رفت (docs/extraction-playbook.md، بخشِ ۱).

هزینه‌ی هر کار (اندازه‌گیری‌شده)

تاریخ کار مدل هزینه چطور اندازه گرفته شد
۲۰۲۶-۰۹-۲۰ خواندنِ یک صفحه‌ی کتاب gpt-4.1-mini ۰٫۲۲ سنت /dashboard/billing/usage پیش و پس از ۳ صفحه
۲۰۲۶-۰۹-۲۰ خواندنِ یک صفحه‌ی کتاب gpt-4o ۰٫۷۷ سنت همان
۲۰۲۶-۰۹-۲۰ خواندنِ یک صفحه‌ی کتاب gemini-3.6-flash ۲٫۱۳ سنت همان
۲۰۲۶-۰۹-۲۰ ساختِ یک سوالِ چهارگزینه‌ای o4-mini ۰٫۷۷ سنت همان
۲۰۲۶-۰۹-۲۵ یک جوابِ دستیار، پرامپتِ v3 gpt-4o-mini ۰٫۰۴۴ سنت rag_model_benchmark
۲۰۲۶-۰۹-۲۵ یک جوابِ دستیار، پرامپتِ v3 gpt-4.1-mini ۰٫۱۱۶ سنت همان
۲۰۲۶-۰۹-۲۵ یک جوابِ دستیار، پرامپتِ v3 gpt-5-mini ۰٫۱۷۱ سنت همان
۲۰۲۶-۰۹-۲۵ یک جوابِ دستیار، پرامپتِ v3 gpt-5.4-mini ۰٫۲۹ سنت همان
۲۰۲۶-۰۹-۲۵ یک جوابِ دستیار، پرامپتِ v3 o4-mini ۰٫۴۱ سنت همان
۲۰۲۶-۰۹-۲۶ میانگینِ همه‌ی جواب‌های سنجش gpt-4.1-mini ۰٫۰۹۶ سنت میانگینِ costUsdِ ۵۴۱ فراخوانی (۱)
۲۰۲۶-۱۰-۰۱ یک جوابِ دستیار، پرامپتِ tutor-v11-math-only، ۱۰۳ مسئله‌ی کتاب gpt-4.1-mini ۰٫۱۶۲ سنت (دبستان ۰٫۱۲۹، دبیرستان ۰٫۲۲۵) توکنِ ورودی تخمینی (۰٫۳۸۷ توکن به ازای هر حرف)، خروجی از جوابِ واقعی، ضربدر قیمتِ بالا
۲۰۲۶-۱۰-۰۱ یک سوالِ زنده در اپ (۱۲ سوال) gpt-4.1-mini ۰٫۲۲۵ سنت فراخوانیِ واقعی
۲۰۲۶-۱۰-۰۴ یک جوابِ دستیار در لودتستِ سرورِ زنده (۵۰ جواب، استریم، سوال‌های تصادفیِ بانکِ سوالِ ده پایه) gpt-4.1-mini ۰٫۱۸۳ سنت (میانگین: ۳٬۱۸۱ توکنِ ورودی، ۳۴۸ خروجی) prompt_tokens/completion_tokensِ ذخیره‌شده روی پیام‌ها ضربدر قیمتِ بالا؛ داشبوردِ GapGPT خوانده نشد

عددِ برنامه‌ریزیِ قیمت‌گذاری ۰٫۲۰ سنت برای هر سوالِ دستیار است و حدودِ ۷۰٪ِ آن ورودی است. هزینه‌ی embedding جدا اندازه گرفته نشده است. قیمتِ رسمیِ text-embedding-3-small بسیار کمتر از چت است، ولی این را روی GapGPT نسنجیده‌ایم.

وقتی قیمت عوض شد یا شک کردید

۱. هزینه‌ی واقعیِ اپ، بی‌خرج: از ۲۰۲۶-۱۰-۰۱ هر جوابِ دستیار prompt_tokens و completion_tokens را روی ai_tutor.Message ذخیره می‌کند. جمعِ توکن‌های یک بازه را در قیمتِ این فایل ضرب کنید (پرس‌وجو در docs/ai-cost-and-guardrails.md).

۲. قیمتِ امروزِ GapGPT، با چند سنت: یک سوالِ کوتاه بفرستید و usage.cost را با (ورودی × قیمتِ ورودی + خروجی × قیمتِ خروجی) / 1e6 مقایسه کنید. اگر نخواند، قیمت عوض شده است. موجودی را پیش و پس با /dashboard/billing/usage بسنجید (rag_model_benchmark._usage_cents)؛ این تنها عددِ قابلِ اتکاست، چون hard_limit_usd موجودی نیست.

۳. ردیفِ تازه اضافه کنید، با تاریخ، مدل، عدد و مدرک. ردیفِ قدیمی را نگه دارید. اگر قیمتِ دستیار عوض شد، قیمتِ بسته‌ها (subscription.0010) را هم دوباره بسنجید: سهمِ هزینه از درآمدِ هر بسته در docs/ai-cost-and-guardrails.md با همین عددها حساب شده است.