Gemini dhe modele të tjera gjeneruese të AI përpunojnë hyrjen dhe daljen në një shkallëzim të quajtur token .
Rreth argumenteve
Shenjat mund të jenë karaktere të vetme si z
ose fjalë të tëra si cat
. Fjalët e gjata ndahen në disa shenja. Grupi i të gjithë shenjave të përdorura nga modeli quhet fjalor, dhe procesi i ndarjes së tekstit në token quhet tokenizimi .
Për modelet Gemini, një shenjë është e barabartë me rreth 4 karaktere. 100 argumente janë të barabarta me rreth 60-80 fjalë angleze.
Kur faturimi është i aktivizuar, kostoja e një telefonate në API të Gemini përcaktohet pjesërisht nga numri i kodeve hyrëse dhe dalëse, kështu që të dish se si të numërosh argumentet mund të jetë e dobishme.
Provoni të numëroni argumentet në një Colab
Mund të provoni të numëroni argumentet duke përdorur një Colab.
![]() | ![]() | ![]() |
Dritaret e kontekstit
Modelet e disponueshme përmes Gemini API kanë dritare konteksti që maten në token. Dritarja e kontekstit përcakton se sa të dhëna mund të jepni dhe sa rezultate mund të gjenerojë modeli. Ju mund të përcaktoni madhësinë e dritares së kontekstit duke thirrur pikën përfundimtare të getModels ose duke parë në dokumentacionin e modeleve .
Në shembullin e mëposhtëm, mund të shihni se modeli gemini-1.5-flash
ka një kufi hyrës prej rreth 1,000,000 argumentesh dhe një kufi në dalje prej rreth 8,000 argumentesh, që do të thotë se një dritare kontekstuale është 1,000,000 argumente.
from google import genai
client = genai.Client()
model_info = client.models.get(model="gemini-2.0-flash")
print(f"{model_info.input_token_limit=}")
print(f"{model_info.output_token_limit=}")
# ( e.g., input_token_limit=30720, output_token_limit=2048 )
Numëroni argumentet
Të gjitha hyrjet dhe daljet nga Gemini API janë të tokenizuara, duke përfshirë tekstin, skedarët e imazheve dhe modalitete të tjera jo tekstuale.
Ju mund të numëroni argumentet në mënyrat e mëposhtme:
Numëroni shenjat e tekstit
from google import genai
client = genai.Client()
prompt = "The quick brown fox jumps over the lazy dog."
# Count tokens using the new client method.
total_tokens = client.models.count_tokens(
model="gemini-2.0-flash", contents=prompt
)
print("total_tokens: ", total_tokens)
# ( e.g., total_tokens: 10 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=prompt
)
# The usage_metadata provides detailed token counts.
print(response.usage_metadata)
# ( e.g., prompt_token_count: 11, candidates_token_count: 73, total_token_count: 84 )
Numëroni shenjat me shumë kthesa (chat)
from google import genai
from google.genai import types
client = genai.Client()
chat = client.chats.create(
model="gemini-2.0-flash",
history=[
types.Content(
role="user", parts=[types.Part(text="Hi my name is Bob")]
),
types.Content(role="model", parts=[types.Part(text="Hi Bob!")]),
],
)
# Count tokens for the chat history.
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=chat.get_history()
)
)
# ( e.g., total_tokens: 10 )
response = chat.send_message(
message="In one sentence, explain how a computer works to a young child."
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 25, candidates_token_count: 21, total_token_count: 46 )
# You can count tokens for the combined history and a new message.
extra = types.UserContent(
parts=[
types.Part(
text="What is the meaning of life?",
)
]
)
history = chat.get_history()
history.append(extra)
print(client.models.count_tokens(model="gemini-2.0-flash", contents=history))
# ( e.g., total_tokens: 56 )
Numëroni shenjat multimodale
Të gjitha inputet në API të Binjakëve janë të shenjta, përfshirë tekstin, skedarët e figurave dhe modalitetet e tjera jo-teksti. Vini re pikat kryesore të nivelit të lartë të nivelit të lartë në lidhje me tokenizimin e inputit multimodal gjatë përpunimit nga API i Binjakëve:
Me Binjakët 2.0, inputet e figurës me të dy dimensionet <= 384 piksele llogariten si 258 shenja. Imazhet më të mëdha në njërën ose të dy dimensionet janë të prera dhe të shkallëzuara sipas nevojës në pllaka prej 768x768 piksele, secila llogaritet si 258 shenja. Para Gemini 2.0, imazhet përdorën një 258 shenja fikse.
Skedarët video dhe audio shndërrohen në shenja me tarifat fikse të mëposhtme: video në 263 shenja për sekondë dhe audio në 32 shenja për sekondë.
Skedarët e imazheve
Shembull që përdor një imazh të ngarkuar nga API i skedarit:
from google import genai
client = genai.Client()
prompt = "Tell me about this image"
your_image_file = client.files.upload(file=media / "organ.jpg")
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
)
# ( e.g., total_tokens: 263 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 264, candidates_token_count: 80, total_token_count: 345 )
Shembull që siguron imazhin si të dhëna inline:
from google import genai
import PIL.Image
client = genai.Client()
prompt = "Tell me about this image"
your_image_file = PIL.Image.open(media / "organ.jpg")
# Count tokens for combined text and inline image.
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
)
# ( e.g., total_tokens: 263 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_image_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 264, candidates_token_count: 80, total_token_count: 345 )
Skedarë video ose audio
Audio dhe video janë secila konvertuar në shenja me tarifat fikse të mëposhtme:
- VIDEO: 263 Tokens për sekondë
- Audio: 32 Tokens për sekondë
from google import genai
import time
client = genai.Client()
prompt = "Tell me about this video"
your_file = client.files.upload(file=media / "Big_Buck_Bunny.mp4")
# Poll until the video file is completely processed (state becomes ACTIVE).
while not your_file.state or your_file.state.name != "ACTIVE":
print("Processing video...")
print("File state:", your_file.state)
time.sleep(5)
your_file = client.files.get(name=your_file.name)
print(
client.models.count_tokens(
model="gemini-2.0-flash", contents=[prompt, your_file]
)
)
# ( e.g., total_tokens: 300 )
response = client.models.generate_content(
model="gemini-2.0-flash", contents=[prompt, your_file]
)
print(response.usage_metadata)
# ( e.g., prompt_token_count: 301, candidates_token_count: 60, total_token_count: 361 )
Udhëzimet dhe mjetet e sistemit
Udhëzimet dhe mjetet e sistemit gjithashtu llogariten drejt numërimit të përgjithshëm të shenjave për inputin.
Nëse përdorni udhëzime të sistemit, numërimi i total_tokens
rritet për të pasqyruar shtimin e system_instruction
.
Nëse përdorni duke thirrur funksionin, numërimi i total_tokens
rritet për të pasqyruar shtimin e tools
.