localhost
.______ ______ __ __ __ __ ______ __ __ /__ _ / __ / / / / "-./ / __ / "-. /_/ / / _"-. -./ / -. _ _____ _ _ _ _ _____ _\"_ /_/ /_____/ /_//_/ /_/ /_/ /_____/ /_/ /_/ Utilitas CLI untuk memantau penggunaan token OpenAI API Anda
tokmon
?? - CLI untuk memantau penggunaan OpenAI API tokmon
( Tok en Mon itor) memungkinkan Anda melacak penggunaan token OpenAI API program Anda.
Anda dapat menggunakan tokmon
sama seperti Anda menggunakan utilitas time
, tetapi alih-alih waktu eksekusi, Anda mendapatkan penggunaan OpenAI dan statistik biaya.
pip install tokmon
Catatan : tokmon berfungsi untuk model
gpt-*
(gpt-3.5-turbo
,gpt-4
, dll.). Jika Anda memerlukan dukungan untuk model lain (misalnyadavinci
) lihat tokmon#6.
$ tokmon /path/to/your/ < your program > [arg1] [arg2] ...
tokmon cost report :
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Monitored invocation : python3 . / tests / python_example . py --prompt say 'hello, tokmon!'
Models : [ 'gpt-3.5-turbo-0301' ]
Total Usage : { 'total_prompt_tokens' : 26 , 'total_completion_tokens' : 12 , 'total_tokens' : 38}
Pricing : { 'gpt-3.5-turbo-0301' : { 'prompt_cost' : 0.002 , 'completion_cost' : 0.002 , 'per_tokens' : 1000}}
Total Cost : $0.000076
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Writing cost summary to JSON file : . / tokmon_usage_summary_1682039505 . json
Setelah program Anda selesai berjalan (atau Anda ctrl^C
keluar), tokmon
akan mencetak ringkasan seperti di atas. tokmon
juga menghasilkan laporan terperinci dan menyimpannya sebagai file JSON.
Anda dapat menggunakan tanda --beam <url>
untuk mengalirkan data penggunaan token ke server. Lihat tokmon --beam untuk informasi lebih lanjut.
# Install tokmon
pip install tokmon
# Clone this repo and `cd` into it
git clone https://github.com/yagil/tokmon.git && cd tokmon/
# export your OpenAI API key. This will be used in the test program (source in ./tests/python_example.py)
export OPENAI_API_KEY= " YOUR_OPENAI_API_KEY "
# Run tokmon (save the JSON summary to the current folder)
# The test uses the openai python package. Install it if you don't have it: `pip install openai`
tokmon --json_out=. python3 ./tests/python_example.py --prompt " say 'hello, tokmon!' "
tokmon
juga mendukung ini:tokmon
secara bersamaan. Setiap pemanggilan akan menghasilkan laporan penggunaan terpisah.--json_out /your/path/report.json
untuk mendapatkan rincian rinci + riwayat percakapan dalam format JSON. tokmon
dengan aplikasi atau skrip AndaPeringatan Ini adalah alat debugging. Hal ini tidak dimaksudkan untuk digunakan dalam pengaturan konsekuensial apa pun. Gunakan penilaian terbaik Anda!
Tambahkan tokmon
ke pemanggilan program normal Anda seperti:
$ tokmon /path/to/your/ < your program > [arg1] [arg2] ...
Jalankan dan gunakan program Anda seperti biasanya (argumen dan semuanya). Penggunaan interaktif juga didukung.
Cukup tambahkan tokmon
ke awal doa reguler Anda
$ tokmon python /path/to/your/script.py
Ini akan berfungsi untuk skrip dan program yang berjalan lama seperti server Django/Flask/FastAPI.
Untuk skrip:
$ tokmon node /path/to/your/script.js
npm run
Edit entri "skrip" package.json
Anda untuk menyertakan tokmon
.
{
"scripts" : {
"dev" : "tokmon next dev" ,
...
}
}
{
"total_cost" : 0.0019199999999999998 ,
"total_usage" : {
"total_prompt_tokens" : 18 ,
"total_completion_tokens" : 23 ,
"total_tokens" : 41
},
"pricing_data" : " {'gpt-4-0314': {'prompt_cost': 0.03, 'completion_cost': 0.06, 'per_tokens': 1000}} " ,
"models" : [
" gpt-4-0314 "
],
"raw_data" : [
{
"model" : " gpt-4-0314 " ,
"usage" : {
"prompt_tokens" : 18 ,
"completion_tokens" : 23 ,
"total_tokens" : 41
},
"cost" : 0.0019199999999999998 ,
"messages" : [
{
"role" : " system " ,
"content" : " You're a helpful assistant. "
},
{
"role" : " user " ,
"content" : " hello "
},
{
"role" : " assistant " ,
"content" : " Hello! How can I help you today? If you have any questions or need assistance, feel free to ask. "
}
]
}
]
}
tokmon
menggunakan perpustakaan mitmproxy untuk mencegat permintaan dan respons HTTP antara program Anda dan OpenAI API. Kemudian memproses data permintaan dan respons untuk menghitung penggunaan token dan biaya berdasarkan tokmon/openai-pricing.json.
tokmon
berfungsi untuk program denganpython
/node
(menggunakan klien OpenAI), ataucurl
(dijalankan secara langsung, dan bukan dalam skrip bash). Lihat petunjuk Golang untuk petunjuk tentang cara menggunakantokmon
dengan program Golang.
jika Anda menginstal sertifikat CA
mitmproxy
secara manual, sertifikat tersebut akan berfungsi untuk semua executable (catatan: belum menguji ini.)
Dalam kebanyakan kasus, tokmon
mengandalkan kolom 'usage'
dalam respons API OpenAI untuk jumlah token. Namun, untuk permintaan streaming, tokmon
menggunakan perpustakaan tiktoken OpenAI secara langsung untuk menghitung token. Saat penulisan, API OpenAI tidak mengembalikan data penggunaan untuk permintaan streaming (referensi.)
Data harga diambil dari situs OpenAI dengan bantuan ChatGPT.
tokmon
menggunakan tokmon/openai-pricing.json dari paketnya.
{
"last_updated" : " 2023-04-12 " ,
"data_sources" : [
" https://openai.com/pricing " ,
" https://platform.openai.com/docs/models/model-endpoint-compatibility "
],
"gpt-4" : { "prompt_cost" : 0.03 , "completion_cost" : 0.06 , "per_tokens" : 1000 },
"gpt-4-0314" : { "prompt_cost" : 0.03 , "completion_cost" : 0.06 , "per_tokens" : 1000 },
"gpt-4-32k" : { "prompt_cost" : 0.06 , "completion_cost" : 0.12 , "per_tokens" : 1000 },
"gpt-4-32k-0314" : { "prompt_cost" : 0.06 , "completion_cost" : 0.12 , "per_tokens" : 1000 },
"gpt-3.5-turbo" : { "prompt_cost" : 0.002 , "completion_cost" : 0.002 , "per_tokens" : 1000 },
"gpt-3.5-turbo-0301" : { "prompt_cost" : 0.002 , "completion_cost" : 0.002 , "per_tokens" : 1000 },
"text-davinci-003" : { "cost" : 0.02 , "per_tokens" : 1000 },
"text-curie-001" : { "cost" : 0.002 , "per_tokens" : 1000 },
"text-babbage-001" : { "cost" : 0.0005 , "per_tokens" : 1000 },
"text-ada-001" : { "cost" : 0.0004 , "per_tokens" : 1000 },
"text-embedding-ada-002" : { "cost" : 0.0004 , "per_tokens" : 1000 }
}
Anda dapat mengganti harga default dengan: tokmon --pricing /path/to/your/custom-openai-pricing.json ...
JSON penetapan harga ini tidak lengkap (DALL-E tidak ada, dll.), mungkin salah, dan mungkin kedaluwarsa.
Untuk hasil terbaik, pastikan Anda memiliki harga terbaru.
Solusi peretasan untuk program Golang. Tambahkan ini ke program Anda:
// Import these packages
import (
"os"
"crypto/tls"
"crypto/x509"
"io/ioutil"
"net/http"
)
// Place this code somewhere in your go program *before* you make any calls to OpenAI's API.
certFile := os . Getenv ( "TOKMON_SSL_CERT_FILE" ) // This env variable will be set by tokmon
caCert , err := ioutil . ReadFile ( certFile )
if err == nil {
caCertPool , _ := x509 . SystemCertPool ()
caCertPool . AppendCertsFromPEM ( caCert )
http . DefaultTransport .( * http. Transport ). TLSClientConfig = & tls. Config {
RootCAs : caCertPool ,
}
}
tokmon
buffer Acara Terkirim Server (SSE) hingga data: [DONE]
diterima. Jika program yang dipantau memanfaatkan streaming peristiwa, perilakunya akan diubah.gpt-3.5-turbo
, gpt-4
dan variannya)Jika Anda ingin berkontribusi pada proyek ini, silakan ikuti langkah-langkah berikut:
tokmon
hadir tanpa jaminan atau jaminan apa pun.tokmon
hanya diuji pada macOS. Ini mungkin tidak berfungsi pada platform lain.openai-pricing.json
mungkin sudah kedaluwarsa.