Gemini ও অন্যান্য জেনারেটিভ AI মডেল ইনপুট ও আউটপুটকে টোকেন নামক গ্র্যানুলারিটি লেভেলে প্রসেস করে।
Gemini মডেলের ক্ষেত্রে, একটি টোকেন প্রায় ৪টি অক্ষরের সমান। ১০০টি টোকেন প্রায় ৬০-৮০টি ইংরেজি শব্দের সমান।
টোকেন সম্পর্কে
টোকেন z-এর মতো একটি অক্ষর বা cat-এর মতো সম্পূর্ণ শব্দ হতে পারে। দীর্ঘ শব্দ
একাধিক টোকেনে ভেঙে যায়। মডেলের ব্যবহার করা সব টোকেনের সেটকে
শব্দভাণ্ডার বলা হয় এবং টেক্সটকে টোকেনে ভাগ করার প্রসেসকে
টোকেনাইজেশন বলা হয়।
বিলিং চালু করা থাকলে, Gemini API-তে কল করার খরচ ইনপুট ও আউটপুট টোকেনের সংখ্যার উপর আংশিকভাবে নির্ভর করে, তাই টোকেন কীভাবে গণনা করতে হয় তা জানা থাকলে সুবিধা হয়।
টোকেন গণনা করুন
Gemini API-তে সমস্ত ইনপুট এবং আউটপুট টোকেনাইজ করা হয়, যার মধ্যে টেক্সট, ছবির ফাইল এবং অন্যান্য নন-টেক্সট মোডালিটি অন্তর্ভুক্ত।
আপনি নিম্নলিখিত উপায়ে টোকেন গণনা করতে পারবেন:
অনুরোধের ইনপুট সহ
count_tokens-কে কল করুন। শুধুমাত্র ইনপুটে টোকেনের মোট সংখ্যা রিটার্ন করে। আপনার অনুরোধের সাইজ চেক করতে ইনপুট পাঠানোর আগে এই কল করুন।ইন্টার্যাকশন উত্তরে
usageব্যবহার করুন। রিটার্ন টোকেন ইনপুট (total_input_tokens), আউটপুট (total_output_tokens), চিন্তাভাবনা (total_thought_tokens), ক্যাশে করা কন্টেন্ট (total_cached_tokens), টুল ব্যবহার (total_tool_use_tokens), এবং মোট (total_tokens)-এর সংখ্যা।
টেক্সট টোকেন গণনা করুন
Python
# This will only work for SDK newer than 2.0.0
from google import genai
client = genai.Client()
prompt = "The quick brown fox jumps over the lazy dog."
# Count tokens before sending
total_tokens = client.models.count_tokens(
model="gemini-3.8-flash",
contents=prompt
)
print("total_tokens:", total_tokens.total_tokens)
# Get usage from interaction
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=prompt
)
print(interaction.usage)
জাভাস্ক্রিপ্ট
// This will only work for SDK newer than 2.0.0
import { GoogleGenAI } from '@google/genai';
const client = new GoogleGenAI({});
const prompt = "The quick brown fox jumps over the lazy dog.";
// Count tokens before sending
const countResponse = await client.models.countTokens({
model: "gemini-3.8-flash",
contents: prompt,
});
console.log(countResponse.totalTokens);
// Get usage from interaction
const interaction = await client.interactions.create({
model: "gemini-3.8-flash",
input: prompt,
});
console.log(interaction.usage);
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.CountTokensResponse;
Client client = new Client();
String prompt = "The quick brown fox jumps over the lazy dog.";
// Count tokens before sending
CountTokensResponse countResponse =
client.models.countTokens("gemini-3.8-flash", prompt, null);
System.out.println("total_tokens: " + countResponse.totalTokens().orElse(0));
// Get usage from interaction
CreateModelInteraction params =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of(prompt))
.build();
Interaction interaction =
client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();
System.out.println(interaction.usage().orElse(null));
খুলুন
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
modelInfo, err := client.Models.Get(ctx, "gemini-3.8-flash", nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Input token limit: %d\n", modelInfo.InputTokenLimit)
fmt.Printf("Output token limit: %d\n", modelInfo.OutputTokenLimit)
}
বিশ্রাম
# Specifies the API revision to avoid breaking changes when they become default
curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:countTokens" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents": [{"parts": [{"text": "The quick brown fox."}]}]}'
মাল্টি-টার্ন টোকেন গণনা করুন
previous_interaction_id ব্যবহার করে কথোপকথনের ইতিহাস জুড়ে টোকেন গণনা করুন:
Python
# This will only work for SDK newer than 2.0.0
# First interaction
interaction1 = client.interactions.create(
model="gemini-3.8-flash",
input="Hi, my name is Bob"
)
# Second interaction continues the conversation
interaction2 = client.interactions.create(
model="gemini-3.8-flash",
input="What's my name?",
previous_interaction_id=interaction1.id
)
# Usage includes tokens from both turns
print(f"Input tokens: {interaction2.usage.total_input_tokens}")
print(f"Output tokens: {interaction2.usage.total_output_tokens}")
print(f"Total tokens: {interaction2.usage.total_tokens}")
জাভাস্ক্রিপ্ট
// This will only work for SDK newer than 2.0.0
// First interaction
const interaction1 = await client.interactions.create({
model: "gemini-3.8-flash",
input: "Hi, my name is Bob"
});
// Second interaction continues the conversation
const interaction2 = await client.interactions.create({
model: "gemini-3.8-flash",
input: "What's my name?",
previous_interaction_id: interaction1.id
});
console.log(`Input tokens: ${interaction2.usage.total_input_tokens}`);
console.log(`Output tokens: ${interaction2.usage.total_output_tokens}`);
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.Usage;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
Client client = new Client();
// First interaction
CreateModelInteraction params1 =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of("Hi, my name is Bob"))
.build();
Interaction interaction1 =
client.interactions.create(CreateInteractionRequestBody.of(params1)).interaction().get();
// Second interaction continues the conversation
CreateModelInteraction params2 =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(InteractionsInput.of("What's my name?"))
.previousInteractionId(interaction1.id().orElse(""))
.build();
Interaction interaction2 =
client.interactions.create(CreateInteractionRequestBody.of(params2)).interaction().get();
// Usage includes tokens from both turns
if (interaction2.usage().isPresent()) {
Usage usage = interaction2.usage().get();
System.out.println("Input tokens: " + usage.totalInputTokens().orElse(0));
System.out.println("Output tokens: " + usage.totalOutputTokens().orElse(0));
System.out.println("Total tokens: " + usage.totalTokens().orElse(0));
}
খুলুন
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "The quick brown fox jumps over the lazy dog."
// Count input tokens before sending
totalTokens, err := client.Models.CountTokens(ctx, "gemini-3.8-flash", genai.Text(prompt), nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("total_tokens: %d\n", totalTokens.TotalTokens)
// Create the interaction and inspect the returned usage metadata
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput(prompt),
}),
})
if err != nil {
log.Fatal(err)
}
interaction := res.Interaction
if interaction.OutputText != nil {
fmt.Println(*interaction.OutputText)
}
if interaction.Usage != nil {
if interaction.Usage.TotalInputTokens != nil {
fmt.Printf("Input tokens: %d\n", *interaction.Usage.TotalInputTokens)
}
if interaction.Usage.TotalOutputTokens != nil {
fmt.Printf("Output tokens: %d\n", *interaction.Usage.TotalOutputTokens)
}
if interaction.Usage.TotalThoughtTokens != nil {
fmt.Printf("Thought tokens: %d\n", *interaction.Usage.TotalThoughtTokens)
}
if interaction.Usage.TotalTokens != nil {
fmt.Printf("Total tokens: %d\n", *interaction.Usage.TotalTokens)
}
}
}
মাল্টিমোডাল টোকেন গণনা করুন
ছবি, ভিডিও এবং অডিও সহ Gemini API-তে সমস্ত ইনপুট টোকেনাইজ করা হয়। টোকেনাইজেশন সম্পর্কে গুরুত্বপূর্ণ তথ্য:
- ছবি: উভয় ডাইমেনশনে ≤৩৮৪ পিক্সেল সাইজের ছবি ২৫৮টি টোকেন হিসেবে গণ্য করা হয়। বড় ছবিগুলিকে ৭৬৮x৭৬৮ পিক্সেল টাইলসে টাইল করা হয়, প্রতিটি ২৫৮টি টোকেন হিসাবে গণনা করা হয়।
- ভিডিও: প্রতি সেকেন্ডে ২৬৩টি টোকেন (স্ট্যাটিক প্রসেসিংয়ের ক্ষেত্রে প্রযোজ্য)। এজেন্টিক প্রসেসিংয়ের ক্ষেত্রে, টোকেন ব্যবহার আলাদা আলাদা হয়। প্রসেসিং মোড অনুযায়ী ভিডিও টোকেনের ব্যবহার দেখুন।
- অডিও: প্রতি সেকেন্ডে ৩২টি টোকেন
ইমেজ টোকেন
Python
# This will only work for SDK newer than 2.0.0
uploaded_file = client.files.upload(file="path/to/image.jpg")
# Count tokens for image + text
total_tokens = client.models.count_tokens(
model="gemini-3.8-flash",
contents=["Tell me about this image", uploaded_file]
)
print(f"Total tokens: {total_tokens}")
# Generate with image
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Tell me about this image"},
{"type": "image", "uri": uploaded_file.uri, "mime_type": uploaded_file.mime_type}
]
)
print(interaction.usage)
জাভাস্ক্রিপ্ট
// This will only work for SDK newer than 2.0.0
const uploadedFile = await client.files.upload({
file: "path/to/image.jpg",
config: { mimeType: "image/jpeg" }
});
// Count tokens
const countResponse = await client.models.countTokens({
model: "gemini-3.8-flash",
contents: [
{ text: "Tell me about this image" },
{ fileData: { fileUri: uploadedFile.uri, mimeType: uploadedFile.mimeType } }
]
});
console.log(countResponse.totalTokens);
Java
import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.ImageContent;
import com.google.genai.gaos.models.interactions.ImageContentMimeType;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.Content;
import com.google.genai.types.CountTokensResponse;
import com.google.genai.types.File;
import com.google.genai.types.Part;
import com.google.genai.types.UploadFileConfig;
import java.util.Arrays;
Client client = new Client();
File uploadedFile =
client.files.upload(
new java.io.File("path/to/image.jpg"),
UploadFileConfig.builder().mimeType("image/jpeg").build());
// Count tokens for image + text
CountTokensResponse countResponse =
client.models.countTokens(
"gemini-3.8-flash",
Arrays.asList(
Content.fromParts(
Part.fromText("Tell me about this image"),
Part.fromUri(
uploadedFile.uri().orElse(""), uploadedFile.mimeType().orElse("image/jpeg")))),
null);
System.out.println("Total tokens: " + countResponse.totalTokens().orElse(0));
// Generate with image
CreateModelInteraction params =
CreateModelInteraction.builder()
.model(Model.of("gemini-3.8-flash"))
.input(
InteractionsInput.ofContent(
Arrays.asList(
TextContent.builder().text("Tell me about this image").build(),
ImageContent.builder()
.uri(uploadedFile.uri().orElse(""))
.mimeType(
ImageContentMimeType.of(uploadedFile.mimeType().orElse("image/jpeg")))
.build())))
.build();
Interaction interaction =
client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();
System.out.println(interaction.usage().orElse(null));
খুলুন
package main
import (
"context"
"fmt"
"log"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput("Explain the history of the internet in 3 paragraphs."),
Stream: genai.Ptr(true),
}),
})
if err != nil {
log.Fatal(err)
}
stream := res.InteractionSSEStreamEvent
defer stream.Close()
for stream.Next() {
event := stream.Value()
if stepDelta := event.GetDataStepDelta(); stepDelta != nil {
if textDelta := stepDelta.GetDeltaText(); textDelta != nil {
fmt.Print(textDelta.GetText())
}
}
if completed := event.GetDataInteractionCompleted(); completed != nil {
usage := completed.Interaction.Usage
if usage != nil && usage.TotalTokens != nil {
fmt.Printf("\nTotal tokens: %d\n", *usage.TotalTokens)
}
}
}
if err := stream.Err(); err != nil {
log.Fatal(err)
}
}
ইনলাইন ডেটার উদাহরণ:
Python
# This will only work for SDK newer than 2.0.0
import base64
with open('image.jpg', 'rb') as f:
image_bytes = f.read()
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Describe this image"},
{
"type": "image",
"data": base64.b64encode(image_bytes).decode('utf-8'),
"mime_type": "image/jpeg"
}
]
)
print(interaction.usage)
ভিডিও টোকেন
Python
# This will only work for SDK newer than 2.0.0
import time
video_file = client.files.upload(file="path/to/video.mp4")
while not video_file.state or video_file.state.name != "ACTIVE":
print("Processing video...")
time.sleep(5)
video_file = client.files.get(name=video_file.name)
# A 60-second video is approximately 100 * 60 = 6,000 tokens
total_tokens = client.models.count_tokens(
model="gemini-3.8-flash",
contents=["Summarize this video", video_file]
)
print(f"Total tokens: {total_tokens}")
# Generate with video
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Summarize this video"},
{"type": "video", "uri": video_file.uri, "mime_type": video_file.mime_type}
]
)
print(interaction.usage)
প্রসেসিং মোড অনুযায়ী ভিডিও টোকেন ব্যবহার
ভিডিওর জন্য টোকেন ব্যবহার প্রসেসিং মোডের উপর নির্ভর করে:
| প্রসেসিং মোড | টোকেন গণনা | সাধারণ ব্যবহার |
|---|---|---|
| স্ট্যাটিক (ডিফল্ট) | ডিফল্ট হিসেবে ~১০০ টোকেন/সেকেন্ড (কম রেজোলিউশন) বা ~৩০০ টোকেন/সেকেন্ড (হাই রেজোলিউশন)। ১ FPS-এ সব ফ্রেম স্যাম্পেল করা হয়েছে। | ভিডিওর সময়সীমার সাথে সামঞ্জস্যপূর্ণ ও অনুমানযোগ্য। |
| এজেন্টিক | কন্টেন্টের জটিলতার উপর নির্ভর করে। প্রম্পটের উত্তর দেওয়ার জন্য প্রয়োজনীয় ট্রান্সক্রিপ্ট এবং/অথবা ফ্রেম এবং/অথবা অডিওই মডেল লোড করে। | লং-ফর্ম কন্টেন্টের জন্য ৮৮% পর্যন্ত কম টোকেন। |
এজেন্টিক প্রসেসিংয়ের মাধ্যমে, ১ ঘণ্টার লেকচার যা স্ট্যাটিক মোডে ~১.০৮ মিলিয়ন টোকেন ব্যবহার করে, তা প্রম্পট ও কন্টেন্টের উপর নির্ভর করে ~১০৮ হাজার টোকেন ব্যবহার করতে পারে।
কোনও অনুরোধের জন্য টোকেনের প্রকৃত ব্যবহার চেক করতে, interaction.usage দেখুন। এজেন্টিক ভিডিও টোকেন নিম্নলিখিত ফিল্ডে রিপোর্ট করা হয়:
- প্রাথমিক প্রম্পট (ভিডিও রেফারেন্স + ব্যবহারকারীর প্রম্পট):
total_input_tokens - নেভিগেশন সংক্রান্ত চিন্তাভাবনা:
total_thought_tokens - অনুরোধ করা হলে ট্রান্সক্রিপ্ট, ফ্রেম ও অডিও লোড করা হয়:
total_tool_use_tokens - চূড়ান্ত উত্তর:
total_output_tokens
অডিও টোকেন
Python
# This will only work for SDK newer than 2.0.0
audio_file = client.files.upload(file="path/to/audio.mp3")
# A 60-second audio clip is approximately 32 * 60 = 1,920 tokens
total_tokens = client.models.count_tokens(
model="gemini-3.8-flash",
contents=["Transcribe this audio", audio_file]
)
print(f"Total tokens: {total_tokens}")
# Generate with audio
interaction = client.interactions.create(
model="gemini-3.8-flash",
input=[
{"type": "text", "text": "Transcribe this audio"},
{"type": "audio", "uri": audio_file.uri, "mime_type": audio_file.mime_type}
]
)
print(interaction.usage)
সিস্টেম নির্দেশাবলী টোকেন গণনা করা
ইনপুট টোকেনের অংশ হিসেবে সিস্টেম নির্দেশাবলী গণনা করা হয়:
Python
# This will only work for SDK newer than 2.0.0
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="Hello!",
system_instruction="You are a helpful assistant who speaks like a pirate."
)
# system_instruction tokens included in total_input_tokens
print(f"Input tokens: {interaction.usage.total_input_tokens}")
টুল টোকেন গণনা করা
এছাড়াও, টুল (ফাংশন, কোড এক্সিকিউশন, Google Search) গণনা করা হয়:
Python
# This will only work for SDK newer than 2.0.0
tools = [
{
"type": "function",
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
]
interaction = client.interactions.create(
model="gemini-3.8-flash",
input="What's the weather in Tokyo?",
tools=tools
)
print(f"Input tokens: {interaction.usage.total_input_tokens}")
print(f"Tool use tokens: {interaction.usage.total_tool_use_tokens}")
কন্টেক্সট উইন্ডো
প্রতিটি Gemini মডেল সর্বাধিক যতগুলি টোকেন ম্যানেজ করতে পারে তার একটি সীমা আছে।
- Gemini 4 মডেল (
gemini-4-argon): ইনপুট, থিঙ্কিং ও আউটপুট টোকেন জুড়ে একটি ১M-টোকেন কনটেক্সট উইন্ডো (1,048,576টোকেন) শেয়ার করুন। সাধারণত, সিঙ্ক্রোনাস উত্তর (background=False, স্ট্রিমিং বা নন-স্ট্রিমিং)65,536আউটপুট টোকেন পর্যন্ত সীমাবদ্ধ থাকে অথবা আপনি লং ডিকোড ব্যবহার করে সর্বাধিক1,048,576টোকেন তৈরি করতে পারেন। আপনার ইনপুট টোকেন এবংmax_output_tokens-এর যোগফল 1,048,576 টোকেনের বেশি হলে, API অটোমেটিক আউটপুট সীমা কন্টেক্সট উইন্ডোর বাকি স্পেসে (1,048,576থেকে আপনার ইনপুট টোকেন বিয়োগ করে) সীমাবদ্ধ করে দেয়। - Gemini 3 ও 2.5 মডেল: আলাদা ইনপুট (
1,048,576টোকেন) ও আউটপুট (65,536টোকেন) বাজেট ব্যবহার করুন।
প্রোগ্রামাটিক উপায়ে কন্টেক্সট উইন্ডোর সাইজ পাওয়া
Python
# This will only work for SDK newer than 2.0.0
model_info = client.models.get(model="gemini-3.8-flash")
print(f"Input token limit: {model_info.input_token_limit}")
print(f"Output token limit: {model_info.output_token_limit}")
জাভাস্ক্রিপ্ট
// This will only work for SDK newer than 2.0.0
const modelInfo = await client.models.get({ model: "gemini-3.8-flash" });
console.log(`Input token limit: ${modelInfo.inputTokenLimit}`);
console.log(`Output token limit: ${modelInfo.outputTokenLimit}`);
Java
import com.google.genai.Client;
import com.google.genai.types.Model;
Client client = new Client();
Model modelInfo = client.models.get("gemini-3.8-flash", null);
System.out.println("Input token limit: " + modelInfo.inputTokenLimit().orElse(0));
System.out.println("Output token limit: " + modelInfo.outputTokenLimit().orElse(0));
খুলুন
package main
import (
"context"
"encoding/base64"
"fmt"
"log"
"os"
"google.golang.org/genai"
"google.golang.org/genai/interactions/models/interactions"
"google.golang.org/genai/interactions/models/operations"
)
func main() {
ctx := context.Background()
client, err := genai.NewClient(ctx, nil)
if err != nil {
log.Fatal(err)
}
prompt := "Tell me about this instrument"
imageBytes, err := os.ReadFile("/path/to/organ.jpg")
if err != nil {
log.Fatal(err)
}
base64Image := base64.StdEncoding.EncodeToString(imageBytes)
// Count tokens before creating the interaction
parts := []*genai.Part{
genai.NewPartFromText(prompt),
genai.NewPartFromBytes(imageBytes, "image/jpeg"),
}
totalTokens, err := client.Models.CountTokens(ctx, "gemini-3.8-flash", []*genai.Content{
genai.NewContentFromParts(parts, genai.RoleUser),
}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Estimated input tokens: %d\n", totalTokens.TotalTokens)
// Create the multimodal interaction and inspect the usage metadata
res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
Model: interactions.Model("gemini-3.8-flash"),
Input: interactions.NewInteractionsInput([]interactions.Content{
interactions.NewContent(interactions.TextContent{
Text: prompt,
}),
interactions.NewContent(interactions.ImageContent{
Data: genai.Ptr(base64Image),
MimeType: interactions.ImageContentMimeTypeImageJpeg.ToPointer(),
}),
}),
}),
})
if err != nil {
log.Fatal(err)
}
interaction := res.Interaction
if interaction.OutputText != nil {
fmt.Println(*interaction.OutputText)
}
if interaction.Usage != nil && interaction.Usage.TotalTokens != nil {
fmt.Printf("Total tokens billed: %d\n", *interaction.Usage.TotalTokens)
}
}
মডেল পৃষ্ঠায় কনটেক্সট উইন্ডোর সাইজ দেখুন।
এর পরে কী করতে হবে
- টেক্সট জেনারেশন: জেনারেশনের প্রাথমিক বিষয়
- ক্যাশিং: ক্যাশিংয়ের মাধ্যমে খরচ কমানো
- মূল্য: খরচ সম্পর্কে জানুন