meebox's picture
saving the space for numbers.
608530d
Raw
History Blame Contribute Delete
1.18 kB
import tiktoken
import gradio as gr
color_map = {
'0': '#ccbfee',
'1': '#beedc6',
'2': '#f4d7ab',
'3': '#f4aeb1',
'4': '#a4dcf3',
}
def gen_num():
n = 0
while True:
yield str(n)
n = (n + 1) % 5
def tokens_len(prompt, model):
encoder = tiktoken.encoding_for_model(model)
tokens = encoder.encode(prompt)
return (
f'{len(tokens)} tokens, {len(prompt)} chracters',
[(encoder.decode([token]), category) for
token, category in zip(tokens, gen_num())])
web_tokenizer = gr.Interface(
fn = tokens_len,
inputs = [
gr.Textbox(
label='輸入提示文字',
lines=6),
gr.Dropdown(
label='模型名稱',
choices = [
'gpt-4o-mini',
'gpt-4o',
'gpt-4',
'gpt-3.5-turbo'
],
value='gpt-4o-mini')
],
outputs = [
gr.Textbox(
label='統計量'),
gr.Highlightedtext(
label='切割結果:',
color_map = color_map,
show_inline_category=False)
]
)
web_tokenizer.launch(share=True)