Gemini API, giriş olarak metin, resim, video ve ses sağlandığında metin çıkışı oluşturabilir.
Bu kılavuzda, generateContent
ve streamGenerateContent
yöntemleri kullanılarak metnin nasıl oluşturulacağı gösterilmektedir. Gemini'nin görüntü ve ses özellikleriyle çalışma hakkında bilgi edinmek için Vision ve Ses kılavuzlarına bakın.
Yalnızca metin girişinden metin oluşturma
Gemini API'yi kullanarak metin oluşturmanın en basit yolu, modele bu örnekte gösterildiği gibi tek bir yalnızca metin girişi sağlamaktır:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
Bu durumda istem ("Yapay zekanın nasıl çalıştığını açıklayın") herhangi bir çıkış örneği, sistem talimatı veya biçimlendirme bilgisi içermez. Bu, sıfır görevli bir yaklaşımdır. Bazı kullanım alanları için tek atış veya birkaç atış istemi, kullanıcı beklentilerine daha uygun sonuçlar verebilir. Bazı durumlarda, modelin görevi anlamasına veya belirli yönergelere uymasına yardımcı olmak için sistem talimatları da sağlayabilirsiniz.
Metin ve resim girişinden metin oluşturma
Gemini API, metni medya dosyalarıyla birleştiren çok formatlı girişleri destekler. Aşağıdaki örnekte, metin ve resim girişinden nasıl metin oluşturulacağı gösterilmektedir:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
Metin akışı oluşturma
Varsayılan olarak model, metin oluşturma sürecinin tamamını tamamladıktan sonra bir yanıt döndürür. Sonucun tamamını beklemek yerine kısmi sonuçları işlemek için akış özelliğini kullanarak daha hızlı etkileşimler elde edebilirsiniz.
Aşağıdaki örnekte, yalnızca metin içeren bir giriş isteminden metin oluşturmak için streamGenerateContent
yöntemini kullanarak akışın nasıl uygulanacağı gösterilmektedir.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Sohbet görüşmesi oluşturma
Gemini SDK'sı, birden fazla soru ve yanıt toplamanıza olanak tanır. Böylece kullanıcılar, yanıtlara adım adım yaklaşabilir veya birden fazla bölümden oluşan sorunlarla ilgili yardım alabilir. Bu SDK özelliği, görüşme geçmişini takip etmek için bir arayüz sağlar ancak arka planda yanıt oluşturmak için aynı generateContent
yöntemini kullanır.
Aşağıdaki kod örneğinde temel bir sohbet uygulaması gösterilmektedir:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
Aşağıdaki örnekte gösterildiği gibi, canlı yayını sohbet ile de kullanabilirsiniz:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
Metin oluşturmayı yapılandırma
Modele gönderdiğiniz her istem, modelin yanıtları nasıl oluşturduğunu kontrol eden parametreler içerir. Bu parametreleri yapılandırmak için GenerationConfig
kullanabilirsiniz. Parametreleri yapılandırmazsanız model, modele göre değişiklik gösterebilen varsayılan seçenekleri kullanır.
Aşağıdaki örnekte, mevcut seçeneklerden birkaçının nasıl yapılandırılacağı gösterilmektedir.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
Sistem talimatları ekleme
Sistem talimatları, bir modelin davranışını belirli ihtiyaçlarınıza ve kullanım alanlarınıza göre yönlendirmenize olanak tanır.
Modele sistem talimatları vererek modeli, görevi anlamak, daha özelleştirilmiş yanıtlar oluşturmak ve kullanıcının modelle olan tüm etkileşimi boyunca belirli kurallara uymak için ek bağlam bilgisiyle desteklemiş olursunuz. Son kullanıcılar tarafından sağlanan istemlerden ayrı olarak sistem talimatları ayarlayarak ürün düzeyinde davranış da belirtebilirsiniz.
Modelinizi başlatırken sistem talimatları ayarlayabilirsiniz:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
Ardından, modele her zamanki gibi istek gönderebilirsiniz.
Sırada ne var?
Gemini API'nin temel özelliklerini incelediğinize göre şunları deneyebilirsiniz:
- Görsel yorumlama: Görüntüleri ve videoları işlemek için Gemini'nin yerel görsel yorumlamasını nasıl kullanacağınızı öğrenin.
- Ses anlama: Ses dosyalarını işlemek için Gemini'nin doğal ses anlama özelliğini nasıl kullanacağınızı öğrenin.