Gemini API memberi Anda akses ke model generatif terbaru dari Google. Setelah Anda memahami fitur umum yang tersedia melalui API, coba tutorial untuk bahasa pilihan Anda untuk memulai pengembangan.
Model
Gemini adalah serangkaian model AI generatif multimodal yang dikembangkan oleh Google. Model Gemini dapat menerima teks dan gambar dalam perintah, bergantung pada variasi model yang Anda pilih, dan menghasilkan respons teks.
Untuk mendapatkan informasi model yang lebih mendetail, lihat halaman model Gemini. Anda juga dapat menggunakan metode list_models
untuk mencantumkan semua model yang tersedia, lalu metode get_model
untuk mendapatkan metadata untuk model tertentu.
Prompt data dan desain
Model Gemini tertentu menerima data teks dan file media sebagai input. Kemampuan ini menciptakan banyak kemungkinan tambahan untuk menghasilkan konten, menganalisis data, dan memecahkan masalah. Ada beberapa batasan dan persyaratan yang perlu dipertimbangkan, termasuk batas token input umum untuk model yang Anda gunakan. Untuk mengetahui informasi tentang batas token untuk model tertentu, lihat model Gemini.
Perintah yang menggunakan Gemini API tidak boleh berukuran lebih dari 20 MB. Gemini API menyediakan File API untuk menyimpan file media sementara untuk digunakan dalam pemberian perintah, yang memungkinkan Anda memberikan data perintah di atas batas 20 MB. Untuk mengetahui informasi selengkapnya tentang penggunaan Files API dan format file yang didukung untuk perintah, lihat Meminta perintah dengan file media.
Prompt Design dan input teks
Membuat perintah yang efektif, atau prompt engineering, adalah kombinasi seni dan sains. Lihat pengantar perintah untuk mengetahui panduan cara mendekati perintah dan panduan Perintah 101 untuk mempelajari berbagai pendekatan terkait perintah.
Membuat konten
Gemini API memungkinkan Anda menggunakan data teks dan gambar untuk perintah, bergantung pada
variasi model yang Anda gunakan. Misalnya, Anda dapat membuat teks menggunakan perintah
teks dengan model gemini-pro
dan menggunakan data teks serta gambar untuk meminta
model gemini-pro-vision
. Bagian ini memberikan contoh kode sederhana dari masing-masing bagian tersebut.
Lihat referensi generateContent
API
untuk contoh lebih mendetail yang mencakup semua parameter.
Input teks dan gambar
Anda dapat mengirim perintah teks dengan gambar ke model gemini-pro-vision
untuk
melakukan tugas terkait penglihatan. Misalnya, pemberian teks pada gambar atau
mengidentifikasi apa yang ada dalam gambar.
Contoh kode berikut menunjukkan implementasi sederhana perintah gambar dan teks untuk setiap bahasa yang didukung:
Python
model = genai.GenerativeModel('gemini-pro-vision')
cookie_picture = [{
'mime_type': 'image/png',
'data': pathlib.Path('cookie.png').read_bytes()
}]
prompt = "Do these look store-bought or homemade?"
response = model.generate_content(
model="gemini-pro-vision",
content=[prompt, cookie_picture]
)
print(response.text)
Lihat tutorial Python untuk melihat cuplikan kode lengkap.
Go
vmodel := client.GenerativeModel("gemini-pro-vision")
data, err := os.ReadFile(filepath.Join("path-to-image", imageFile))
if err != nil {
log.Fatal(err)
}
resp, err := vmodel.GenerateContent(ctx, genai.Text("Do these look store-bought or homemade?"), genai.ImageData("jpeg", data))
if err != nil {
log.Fatal(err)
}
Lihat tutorial Go untuk mengetahui contoh lengkap.
Node.js
const model = genAI.getGenerativeModel({ model: "gemini-pro-vision" });
const prompt = "Do these look store-bought or homemade?";
const image = {
inlineData: {
data: Buffer.from(fs.readFileSync("cookie.png")).toString("base64"),
mimeType: "image/png",
},
};
const result = await model.generateContent([prompt, image]);
console.log(result.response.text());
Lihat tutorial Node.js untuk mengetahui contoh lengkap.
Web
const model = genAI.getGenerativeModel({ model: "gemini-pro-vision" });
const prompt = "Do these look store-bought or homemade?";
const image = {
inlineData: {
data: base64EncodedImage /* see JavaScript quickstart for details */,
mimeType: "image/png",
},
};
const result = await model.generateContent([prompt, image]);
console.log(result.response.text());
Lihat tutorial web untuk contoh lengkapnya.
Dart (Flutter)
final model = GenerativeModel(model: 'gemini-pro-vision', apiKey: apiKey);
final prompt = 'Do these look store-bought or homemade?';
final imageBytes = await File('cookie.png').readAsBytes();
final content = [
Content.multi([
TextPart(prompt),
DataPart('image/png', imageBytes),
])
];
final response = await model.generateContent(content);
print(response.text);
Lihat Tutorial Dart (Flutter) untuk contoh lengkap.
Swift
let model = GenerativeModel(name: "gemini-pro-vision", apiKey: "API_KEY")
let cookieImage = UIImage(...)
let prompt = "Do these look store-bought or homemade?"
let response = try await model.generateContent(prompt, cookieImage)
Baca tutorial Swift untuk mengetahui contoh lengkapnya.
Android
val generativeModel = GenerativeModel(
modelName = "gemini-pro-vision",
apiKey = BuildConfig.apiKey
)
val cookieImage: Bitmap = // ...
val inputContent = content() {
image(cookieImage)
text("Do these look store-bought or homemade?")
}
val response = generativeModel.generateContent(inputContent)
print(response.text)
Lihat tutorial Android untuk mengetahui contoh lengkap.
cURL
curl https://generativelanguage.googleapis.com/v1/models/gemini-pro-vision:generateContent?key=${API_KEY} \
-H 'Content-Type: application/json' \
-X POST \
-d @<(echo'{
"contents":[
{ "parts":[
{"text": "Do these look store-bought or homemade?"},
{ "inlineData": {
"mimeType": "image/png",
"data": "'$(base64 -w0 cookie.png)'"
}
}
]
}
]
}')
Lihat tutorial REST API untuk detail selengkapnya.
Input hanya teks
Gemini API juga dapat menangani input khusus teks. Dengan fitur ini, Anda dapat melakukan tugas natural language processing (NLP) seperti penyelesaian teks dan ringkasan.
Contoh kode berikut menunjukkan implementasi sederhana permintaan hanya teks untuk setiap bahasa yang didukung:
Python
model = genai.GenerativeModel('gemini-pro-vision')
prompt = "Write a story about a magic backpack."
response = model.generate_content(prompt)
Lihat tutorial Python untuk mengetahui contoh lengkapnya.
Go
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-pro")
resp, err := model.GenerateContent(ctx, genai.Text("Write a story about a magic backpack."))
if err != nil {
log.Fatal(err)
}
Lihat tutorial Go untuk mengetahui contoh lengkap.
Node.js
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Lihat tutorial Node.js untuk mengetahui contoh lengkap.
Web
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Lihat tutorial web untuk contoh lengkapnya.
Dart (Flutter)
final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = await model.generateContent(content);
print(response.text);
Lihat Tutorial Dart (Flutter) untuk contoh lengkap.
Swift
let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."
let response = try await model.generateContent(prompt)
Baca tutorial Swift untuk mengetahui contoh lengkapnya.
Android
val generativeModel = GenerativeModel(
modelName = "gemini-pro",
apiKey = BuildConfig.apiKey
)
val prompt = "Write a story about a magic backpack."
val response = generativeModel.generateContent(prompt)
print(response.text)
Lihat tutorial Android untuk mengetahui contoh lengkap.
cURL
curl https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=$API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{ "contents":[
{ "parts":[{"text": "Write a story about a magic backpack"}]}
]
}'
Lihat tutorial REST API untuk detail selengkapnya.
Percakapan bergantian (chat)
Anda dapat menggunakan Gemini API untuk membangun pengalaman chat interaktif bagi pengguna. Dengan menggunakan fitur chat API, Anda dapat mengumpulkan beberapa putaran pertanyaan dan respons, sehingga pengguna secara bertahap melangkah menuju jawaban atau mendapatkan bantuan terkait masalah multi-bagian. Fitur ini ideal untuk aplikasi yang memerlukan komunikasi berkelanjutan, seperti chatbot, tutor interaktif, atau asisten dukungan pelanggan.
Contoh kode berikut menunjukkan penerapan sederhana interaksi chat untuk setiap bahasa yang didukung:
Python
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
response = chat.send_message(
"Pretend you\'re a snowman and stay in character for each response.")
print(response.text)
response = chat.send_message(
"What\'s your favorite season of the year?")
print(response.text)
Lihat demo chat dalam tutorial Python untuk contoh lengkapnya.
Go
model := client.GenerativeModel("gemini-pro")
cs := model.StartChat()
cs.History = []*genai.Content{
&genai.Content{
Parts: []genai.Part{
genai.Text("Pretend you're a snowman and stay in character for each response."),
},
Role: "user",
},
&genai.Content{
Parts: []genai.Part{
genai.Text("Hello! It's cold! Isn't that great?"),
},
Role: "model",
},
}
resp, err := cs.SendMessage(ctx, genai.Text("What's your favorite season of the year?"))
if err != nil {
log.Fatal(err)
}
Lihat demo chat dalam tutorial Go untuk mengetahui contoh lengkapnya.
Node.js
const model = genAI.getGenerativeModel({ model: "gemini-pro"});
const chat = model.startChat({
history: [
{
role: "user",
parts: "Pretend you're a snowman and stay in character for each response.",
},
{
role: "model",
parts: "Hello! It's cold! Isn't that great?",
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());
Lihat demo chat di tutorial Node.js untuk mengetahui contoh lengkapnya.
Web
const model = genAI.getGenerativeModel({ model: "gemini-pro"});
const chat = model.startChat({
history: [
{
role: "user",
parts: "Pretend you're a snowman and stay in character for each response.",
},
{
role: "model",
parts: "Hello! It's so cold! Isn't that great?",
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());
Lihat demo chat dalam tutorial web untuk contoh lengkapnya.
Dart (Flutter)
final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final chat = model.startChat(history: [
Content.text(
"Pretend you're a snowman and stay in character for each response."),
Content.model([TextPart("Hello! It's cold! Isn't that great?")]),
]);
final content = Content.text("What's your favorite season of the year?");
final response = await chat.sendMessage(content);
print(response.text);
Lihat demo chat di tutorial Dart (Flutter) untuk contoh lengkap.
Swift
let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let chat = model.startChat()
var message = "Pretend you're a snowman and stay in character for each response."
var response = try await chat.sendMessage(message)
message = "What\'s your favorite season of the year?"
response = try await chat.sendMessage(message)
Lihat demo chat dalam tutorial Swift untuk mengetahui contoh lengkapnya.
Android
val generativeModel = GenerativeModel(
modelName = "gemini-pro",
apiKey = BuildConfig.apiKey
)
val chat = generativeModel.startChat()
val response = chat.sendMessage("Pretend you're a snowman and stay in
character for each response.")
print(response.text)
Lihat tutorial Android untuk mengetahui contoh lengkap.
cURL
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \ -H 'Content-Type: application/json' \ -X POST \ -d '{ "contents": [ {"role":"user", "parts":[{ "text": "Pretend you're a snowman and stay in character for each {"role": "model", response."}]}, "parts":[{ "text": "Hello! It's so cold! Isn't that great?"}]}, {"role": "user", "parts":[{ "text": "What\'s your favorite season of the year?"}]}, ] }' 2> /dev/null | grep "text"
# response example: "text": "Winter, of course!"
Lihat tutorial REST API untuk detail selengkapnya.
Respons yang di-streaming
Gemini API menyediakan cara tambahan untuk menerima respons dari model AI generatif: sebagai aliran data. Respons yang di-streaming mengirimkan potongan data inkremental kembali ke aplikasi Anda sebagaimana dihasilkan oleh model. Fitur ini memungkinkan Anda merespons permintaan pengguna dengan cepat untuk menampilkan progres dan menciptakan pengalaman yang lebih interaktif.
Respons yang di-streaming adalah opsi untuk perintah dan chat berformat bebas dengan model Gemini. Contoh kode berikut menunjukkan cara meminta respons yang di-streaming untuk perintah untuk setiap bahasa yang didukung:
Python
prompt = "Write a story about a magic backpack."
response = genai.stream_generate_content(
model="models/gemini-pro",
prompt=prompt
)
Lihat tutorial Python untuk melihat cuplikan kode lengkap.
Go
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
model := client.GenerativeModel("gemini-pro")
iter := model.GenerateContentStream(ctx, genai.Text("Write a story about a magic backpack."))
for {
resp, err := iter.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Fatal(err)
}
// print resp
}
Lihat tutorial Go untuk mengetahui contoh lengkap.
Node.js
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream([prompt]);
// print text as it comes in
for await (const chunk of result.stream) {
const chunkText = chunk.text();
console.log(chunkText);
}
Lihat tutorial Node.js untuk mengetahui contoh lengkap.
Web
const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream([prompt]);
// print text as it comes in
for await (const chunk of result.stream) {
const chunkText = chunk.text();
console.log(chunkText);
}
Lihat tutorial web untuk contoh lengkapnya.
Dart (Flutter)
final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = model.generateContentStream(content);
await for (final chunk in response) {
print(chunk.text);
}
Lihat Tutorial Dart (Flutter) untuk contoh lengkap.
Swift
let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."
let stream = model.generateContentStream(prompt)
for try await chunk in stream {
print(chunk.text ?? "No content")
}
Baca tutorial Swift untuk mengetahui contoh lengkapnya.
Android
val generativeModel = GenerativeModel(
modelName = "gemini-pro",
apiKey = BuildConfig.apiKey
)
val inputContent = content {
text("Write a story about a magic backpack.")
}
var fullResponse = ""
generativeModel.generateContentStream(inputContent).collect { chunk ->
print(chunk.text)
fullResponse += chunk.text
}
Lihat tutorial Android untuk mengetahui contoh lengkap.
cURL
curl https://generativelanguage.googleapis.com/v1/models/gemini-pro:streamGenerateContent?key=${API_KEY} \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{ "contents":[
{"role": "user",
"parts":[{"text": "Write a story about a magic backpack."}]
}
]
}' > response.json
Lihat tutorial REST API untuk detail selengkapnya.
Respons format JSON
Bergantung pada aplikasi, Anda mungkin ingin respons terhadap perintah ditampilkan dalam format data terstruktur, terutama jika Anda menggunakan respons untuk mengisi antarmuka pemrograman. Gemini API menyediakan parameter konfigurasi untuk meminta respons dalam format JSON.
Gunakan fitur output ini dengan menetapkan opsi konfigurasi response_mime_type
ke application/json
dan menyertakan spesifikasi format JSON dalam isi permintaan Anda. Contoh kode berikut menunjukkan cara meminta respons
JSON untuk perintah:
cURL
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?key=$API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{ "contents":[{
"parts":[{"text": "List 5 popular cookie recipes using this JSON schema: \{ \"type\": \"object\", \"properties\": \{ \"recipe_name\": \{ \"type\": \"string\" \},\}\}"}] }],
"generationConfig": {
"response_mime_type": "application/json",
} }'
Embeddings
Layanan embedding di Gemini API menghasilkan embeddings termutakhir untuk kata, frasa, dan kalimat. Embedding yang dihasilkan kemudian dapat digunakan untuk tugas NLP, seperti penelusuran semantik, klasifikasi teks, dan pengelompokan, di antaranya. Lihat panduan penyematan untuk mempelajari apa yang dimaksud dengan embedding dan beberapa kasus penggunaan utama untuk layanan embedding agar dapat membantu Anda memulai.
Langkah berikutnya
- Mulai UI Google AI Studio menggunakan panduan memulai Google AI Studio.
- Coba akses sisi server ke Gemini API dengan tutorial untuk Python, Go, atau Node.js.
- Mulai membangun web untuk web dengan tutorial web.
- Mulai membangun aplikasi untuk aplikasi seluler dengan tutorial Swift atau tutorial Android.
- Jika Anda sudah menjadi pengguna Google Cloud (atau ingin menggunakan Gemini di Vertex untuk memanfaatkan ekosistem Google Cloud yang canggih), lihat AI Generatif di Vertex AI untuk mempelajari lebih lanjut.