ხარჯების თვალყურის დევნება
PRX მოიცავს ჩაშენებულ ხარჯების თვალყურის დევნების სისტემას, რომელიც აკვირდება ტოკენების მოხმარებასა და API ხარჯვას ყველა LLM პროვაიდერში. CostTracker აგროვებს მოხმარებას მოთხოვნაზე, სესიაზე და პროვაიდერზე -- გაძლევთ სრულ ხილვადობას, თუ როგორ მოიხმარს თქვენი აგენტი API რესურსებს.
მიმოხილვა
PRX-ში ყველა LLM მოთხოვნა გენერირებს TokenUsage ჩანაწერს, რომელიც შეიცავს შეყვანის ტოკენებს, გამოტანის ტოკენებსა და ასოცირებულ ხარჯს. ეს ჩანაწერები აგრეგირდება CostTracker-ის მიერ და შეიძლება შეიკითხოს ანგარიშგების, ბიუჯეტის აღსრულებისა და ანომალიების გამოვლენისთვის.
LLM მოთხოვნა
│
├── პროვაიდერი აბრუნებს მოხმარების მეტამონაცემებს
│ (input_tokens, output_tokens, ქეშის ჰიტები)
│
▼
TokenUsage ჩანაწერის შექმნა
│
├── CostTracker-ში აგრეგირება
│ ├── მოთხოვნაზე დაშლა
│ ├── სესიაზე ჯამები
│ ├── პროვაიდერზე ჯამები
│ └── მოდელზე ჯამები
│
├── ბიუჯეტის შემოწმება (ლიმიტების კონფიგურაციისას)
│ ├── ბიუჯეტის ფარგლებში → გაგრძელება
│ └── ბიუჯეტის გადამეტება → გაფრთხილება / მკაცრი შეჩერება
│
└── დაკვირვებადობის პაიპლაინში ჩაწერა
(მეტრიკები, ლოგები, კვალის span-ები)კონფიგურაცია
ხარჯების თვალყურის დევნების ჩართვა და კონფიგურაცია config.toml-ში:
[cost]
enabled = true
# ვალუტა ჩვენების მიზნებისთვის (გამოთვლებზე არ მოქმედებს).
currency = "USD"
# რამდენად ხშირად ჩაიწეროს აკუმულირებული ხარჯები მუდმივ საცავში.
flush_interval_secs = 60
# ხარჯების მონაცემების შენახვა გადატვირთვებს შორის.
persist = true
persist_path = "~/.local/share/openprx/cost.db"ბიუჯეტის ლიმიტები
ხარჯვის ლიმიტების დაყენება გაუკონტროლებელი ხარჯების თავიდან ასაცილებლად:
[cost.budget]
# ყოველდღიური ხარჯვის ლიმიტი ყველა პროვაიდერში.
daily_limit = 10.00
# ყოველთვიური ხარჯვის ლიმიტი.
monthly_limit = 200.00
# სესიაზე ლიმიტი (გადაიტვირთება ახალი სესიის დაწყებისას).
session_limit = 2.00
# მოქმედება ლიმიტის მიღწევისას: "warn" ან "stop".
# "warn" ლოგავს გაფრთხილებას, მაგრამ მოთხოვნებს აგრძელებინებს.
# "stop" ბლოკავს შემდგომ LLM მოთხოვნებს პერიოდის გადატვირთვამდე.
on_limit = "warn"პროვაიდერისთვის სპეციფიკური ლიმიტები
ბიუჯეტის ლიმიტების გადაფარვა კონკრეტული პროვაიდერებისთვის:
[cost.budget.providers.openai]
daily_limit = 5.00
monthly_limit = 100.00
[cost.budget.providers.anthropic]
daily_limit = 8.00
monthly_limit = 150.00TokenUsage სტრუქტურა
თითოეული LLM მოთხოვნა წარმოქმნის TokenUsage ჩანაწერს:
| ველი | ტიპი | აღწერა |
|---|---|---|
input_tokens | u64 | ტოკენების რაოდენობა პრომპტში (სისტემა + მომხმარებელი + კონტექსტი) |
output_tokens | u64 | ტოკენების რაოდენობა მოდელის პასუხში |
cache_read_tokens | u64 | პროვაიდერის ქეშიდან მიწოდებული ტოკენები (Anthropic-ის პრომპტის ქეშირება) |
cache_write_tokens | u64 | პროვაიდერის ქეშში ჩაწერილი ტოკენები |
total_tokens | u64 | input_tokens + output_tokens |
cost | f64 | სავარაუდო ხარჯი კონფიგურირებულ ვალუტაში |
provider | string | პროვაიდერის სახელი (მაგ., "openai", "anthropic") |
model | string | მოდელის იდენტიფიკატორი (მაგ., "gpt-4o", "claude-sonnet-4-20250514") |
timestamp | datetime | მოთხოვნის განხორციელების დრო |
session_id | string | აგენტის სესია, რომელმაც მოთხოვნა გენერირა |
CostTracker
CostTracker არის ცენტრალური აგრეგაციის წერტილი ყველა ტოკენის მოხმარებისთვის. იგი ინარჩუნებს მიმდინარე ჯამებს პროვაიდერის მიხედვით, მოდელის მიხედვით, სესიაზე, ყოველდღიურად (გადაიტვირთება შუაღამეს UTC) და ყოველთვიურად (გადაიტვირთება პირველ რიცხვში). ტრეკერი არის ნაკადისთვის უსაფრთხო და განახლდება ყოველი LLM პასუხის შემდეგ.
ფასების მონაცემები
PRX ინარჩუნებს ჩაშენებულ ფასების ცხრილს გავრცელებული პროვაიდერებისა და მოდელებისთვის. ფასები განსაზღვრულია მილიონ ტოკენზე:
| პროვაიდერი | მოდელი | შეყვანა (1M-ზე) | გამოტანა (1M-ზე) |
|---|---|---|---|
| OpenAI | gpt-4o | $2.50 | $10.00 |
| OpenAI | gpt-4o-mini | $0.15 | $0.60 |
| OpenAI | o3 | $10.00 | $40.00 |
| Anthropic | claude-sonnet-4-20250514 | $3.00 | $15.00 |
| Anthropic | claude-haiku-35-20241022 | $0.80 | $4.00 |
| Anthropic | claude-opus-4-20250514 | $15.00 | $75.00 |
| gemini-2.0-flash | $0.075 | $0.30 | |
| DeepSeek | deepseek-chat | $0.14 | $0.28 |
მორგებული ფასები
ჩაშენებულ ცხრილში არ შემავალი მოდელების ფასების გადაფარვა ან დამატება:
[cost.pricing."openai/gpt-4o"]
input_per_million = 2.50
output_per_million = 10.00
[cost.pricing."custom/my-model"]
input_per_million = 1.00
output_per_million = 3.00თვით-ჰოსტირებული მოდელებისთვის (Ollama, vLLM), სადაც API გამოძახებები უფასოა, ფასები ნულზე დააყენეთ:
[cost.pricing."ollama/llama3"]
input_per_million = 0.0
output_per_million = 0.0მოხმარების ანგარიშები
CLI ბრძანებები
# მიმდინარე სესიის ხარჯების შეჯამების ნახვა
prx cost
# ყოველდღიური დაშლის ნახვა
prx cost --period daily
# ყოველთვიური დაშლის ნახვა პროვაიდერის მიხედვით
prx cost --period monthly --group-by provider
# კონკრეტული თარიღის დიაპაზონის ხარჯების ნახვა
prx cost --from 2026-03-01 --to 2026-03-15
# CSV-ში ექსპორტი
prx cost --period monthly --format csv > costs.csv
# JSON-ში ექსპორტი (პროგრამული მოხმარებისთვის)
prx cost --period daily --format jsonგამოტანის მაგალითი
PRX ხარჯების ანგარიში (2026-03-21)
════════════════════════════════════════════════════
პროვაიდერი მოდელი ტოკენები (in/out) ხარჯი
─────────────────────────────────────────────────────────────
anthropic claude-sonnet-4-20250514 45.2K / 12.8K $0.33
openai gpt-4o 22.1K / 8.4K $0.14
openai gpt-4o-mini 8.3K / 3.1K $0.00
─────────────────────────────────────────────────────────────
ჯამი 75.6K / 24.3K $0.47
ბიუჯეტის სტატუსი:
სესია: $0.47 / $2.00 (23.5%)
ყოველდღ.: $3.82 / $10.00 (38.2%)
ყოველთვ.: $42.15 / $200.00 (21.1%)ბიუჯეტის გაფრთხილებები
ხარჯების ბიუჯეტის ლიმიტთან მიახლოებისას, PRX მოქმედებს on_limit პარამეტრის მიხედვით:
| ზღურბლი | on_limit = "warn" | on_limit = "stop" |
|---|---|---|
| ლიმიტის 80% | გაფრთხილების ლოგირება | გაფრთხილების ლოგირება |
| ლიმიტის 100% | შეცდომის ლოგირება, გაგრძელება | LLM მოთხოვნების ბლოკირება, მომხმარებლის შეტყობინება |
| ლიმიტის გადატვირთვა (ახალი დღე/თვე) | მთვლელების გადატვირთვა | მთვლელების გადატვირთვა, მოთხოვნების განბლოკვა |
ბიუჯეტის გაფრთხილებები ასევე გამოიცემა დაკვირვებადობის მოვლენების სახით. Prometheus მეტრიკების ჩართვისას, შემდეგი მაჩვენებლები ექსპორტირდება:
prx_cost_daily_total{currency="USD"} 3.82
prx_cost_monthly_total{currency="USD"} 42.15
prx_cost_session_total{currency="USD"} 0.47
prx_cost_budget_daily_remaining{currency="USD"} 6.18
prx_cost_budget_monthly_remaining{currency="USD"} 157.85ინტეგრაცია დაკვირვებადობასთან
ხარჯების მონაცემები ინტეგრირდება PRX-ის დაკვირვებადობის სტეკთან:
- Prometheus -- ტოკენების რაოდენობა და ხარჯების მაჩვენებლები პროვაიდერის/მოდელის მიხედვით
- OpenTelemetry --
prx.tokens.input,prx.tokens.output,prx.costspan ატრიბუტები - ლოგები -- მოთხოვნაზე ხარჯი ლოგირდება DEBUG დონეზე, ბიუჯეტის გაფრთხილებები WARN დონეზე
უსაფრთხოების შენიშვნები
- ხარჯების მონაცემებმა შეიძლება მოხმარების შაბლონები გამოავლინოს. შეზღუდეთ ხარჯების ანგარიშებზე წვდომა მრავალ-მომხმარებლიან განთავსებებში.
- მუდმივი ხარჯების მონაცემთა ბაზა (
cost.db) შეიცავს მოხმარების ისტორიას. ჩართეთ თქვენი სარეზერვო კოპირების სტრატეგიაში. - ბიუჯეტის ლიმიტები ლოკალურად აღისრულება. ისინი არ ურთიერთქმედებენ პროვაიდერის მხრიდან ხარჯვის ლიმიტებთან. კონფიგურირეთ ორივე სიღრმისეული თავდაცვისთვის.