درست به کار بردنِ عاملها33 از 37
اختیاری، برای خوانندههایی که کمی پایتون بلدند.
در درس «پرداخت برای هر توکن» دیدید که هر نوبتِ گفتوگو کل تاریخچه را دوباره میفرستد، و در درس «هر بار همان شروع» دیدید که کش بخشِ تکراری را ارزان میکند. اینجا حساب میکنید این کار چقدر فرق ایجاد میکند.
تابع session_cost(price, new_tokens) را بنویسید. این دو را میگیرد:
price: قیمت به دلار برای هر یک میلیون توکن ورودی، مثل 4.0new_tokens: فهرستی از اینکه هر نوبت چند توکن اضافه میکند، از قدیمیترین، مثل [30000, 2000, 2000]از این مدلِ سادهی یک جلسه استفاده کنید:
[30000, 2000, 2000]، نوبتها به ترتیب ۳۰٬۰۰۰، بعد ۳۲٬۰۰۰ و بعد ۳۴٬۰۰۰ توکن میفرستند: روی هم ۹۶٬۰۰۰ توکن ورودی.تعداد کل توکنهای ورودی، هزینهی بدون کش و هزینهی با کش را برگردانید. کدِ پایینِ برنامه آنها را چاپ میکند.
نمونهی ورودی (قیمت، بعد توکنهای تازهی هر نوبت):
4
30000 2000 2000خروجی:
turns: 3
input tokens sent: 96000
without caching: 0.3840 dollars
with caching: 0.1608 dollarsاین مدل سه چیز از کشِ واقعی را کنار میگذارد: نوشتن در کش کمی بیشتر از ورودیِ معمولی هزینه دارد، کش بعد از چند دقیقه بیاستفاده ماندن از بین میرود، و هزینهی توکنهای خروجی جدا حساب میشود. هیچکدام تصویرِ کلی را عوض نمیکند. وقتی تستها را گذراندید، جلسهی ۴۰ نوبتی را در تستها پیدا کنید و دو هزینه را با هم مقایسه کنید.
ورود برای امتحان این تمرین.