Google Gemini| Python Rest-API| Use-Cases

MÜŞERREF SELÇUK ÖZDEMIR
3 min readDec 17, 2023

--

Google Gemini

İleri ileri ve daha ileri….

Taht savaşları devam ediyor. OpenAI’nın koltuğunu devralmak isteyen Google, Gemini ile oyunu değiştirmeyi planlıyor. Sanırım başarılı olacak gibi.

Bard arka planına entegre olan Google Gemini daha büyük bombasını geçenlerde patlattı. google-gemini ve google-gemini-pro adında 2 adet Gemini model API’ları “ücretsiz” şekilde kullanıcılara sunuldu . Google’ın zaten hali hazırda Palm-API adından bir yapısı vardı ama yeterince iyi çalışmıyordu. Metin tabanlı bu model ile istek göndererek birçok şey yapabiliyordunuz. Ama Google’un bu yeni modelleri işi kökünden değiştirmeye gelmiş gibi.

Kurtarıcınız geldi…

Google, Gemini’i şöyle tanımlıyor:

“Gemini, Google DeepMind tarafından geliştirilen ve multimodal kullanım durumları için tasarlanmış bir üretici yapay zeka modelleri ailesidir. Gemini API, Gemini Pro Vision ve Gemini Pro modellerine erişmenizi sağlar.

Vertex AI Gemini API, modele göre aşağıdaki kullanım durumlarını destekler:

Gemini Pro: Doğal dil görevlerini, çok turlu metin ve kod sohbetini ve kod oluşturmayı işlemek için tasarlanmıştır.

Maksimum belirteç (giriş ve çıkış): 32,760
Maksimum çıktı belirteçleri: 8,192
Eğitim verileri: Şubat 2023'e kadar

Gemini Pro Vision: Çok modlu istemleri destekler. Komut isteklerinize metin, resim ve video ekleyebilir ve metin veya kod yanıtları alabilirsiniz.

Maksimum belirteç (giriş ve çıkış): 16,384
Maksimum çıktı belirteçleri: 2.048
Maksimum görüntü boyutu: Sınır yok
İstem başına maksimum görüntü: 16
Maksimum video uzunluğu: 2 dakika
İstem başına maksimum video: 1
Eğitim verileri: Şubat 2023'e kadar”

Gemini — Pro Vision aşağıdaki durumlar için çalışabilir:

  1. Bilgi arama: Dünya bilgisini görüntülerden ve videolardan çıkarılan bilgilerle birleştirin.
  2. Nesne tanıma: Görüntülerdeki ve videolardaki nesnelerin ince taneli tanımlanmasıyla ilgili soruları yanıtlayın.
  3. Dijital içeriği anlama: İnfografikler, grafikler, şekiller, tablolar ve web sayfaları gibi içeriklerden bilgi çıkararak soruları yanıtlayın.
  4. Yapılandırılmış içerik oluşturma: Sağlanan istem talimatlarına göre HTML ve JSON gibi formatlarda yanıtlar oluşturun.
  5. Resim yazısı / açıklama: Çeşitli ayrıntı düzeylerine sahip resim ve video açıklamaları oluşturun.
  6. Tahmin: Bir görselde neyin gösterilmediği veya bir videodan önce veya sonra ne olduğu hakkında tahminlerde bulunun.

Bugün Google Gemini sürümünü Python ve Rest API ile nasıl kullanacağımızı inceleyeceğim.

İlk olarak https://makersuite.google.com/ adresine giderek API_KEY alın.

Ardından Python ile kodlamaya geçebiliriz.

API_KEY = 'your API-KEY'

Öncelikle bir API_KEY ve endpoint oluşturmamız gerekiyor. Python request kütüphanesini kullanarak istekleri yöneteceğim. Dahil edilmesi gereken kütüphaneler json ve request kütüphaneleri.

import requests
import json

Ardından “endpoint” oluşturuyoruz. Bu hangi modeli kullanacağımızı belirtecek.

endpoint = "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent"

Burada gemini-pro’yu kullanacağız.

Şimdi istek verimizi ayarlayabiliriz:

Bunun için bir json formatı kullanıyoruz.

data = {
"contents": [{
"parts": [{
"text": """
Sorulmak istenen şey...

"""



}]
}]
}

“Header” ayarlıyoruz.

headers = {
'Content-Type': 'application/json',
}

API isteğini artık yollayabiliriz.

response = requests.post(f"{endpoint}?key={api_key}", headers=headers, data=json.dumps(data))

Cevabı ekrana yazdıralım:

print(response.json())

Buradaki çıktı şuna benzer bir şey olacak:

{'candidates': 
[{'content':
{'parts':
[{'text': 'İyiyim teşekkür ederim, umarım sen de iyisindir. Sizin için neler yapabilirim?'}],
'role': 'model'},
'finishReason': 'STOP', 'index': 0,
'safetyRatings': [
{'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT', 'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_HATE_SPEECH', 'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_HARASSMENT', 'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_DANGEROUS_CONTENT', 'probability': 'NEGLIGIBLE'}]}],
'promptFeedback': {'safetyRatings': [
{'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT', 'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_HATE_SPEECH', 'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_HARASSMENT',
'probability': 'NEGLIGIBLE'},
{'category': 'HARM_CATEGORY_DANGEROUS_CONTENT',
'probability': 'NEGLIGIBLE'}]}}

Okuduğunuz için teşekkür ederim.

Müşerref Selçuk Özdemir

Data Science Candidate

--

--