Pembungkus Python * tidak resmi , python-gemini-api, tersedia untuk pengguna yang sering menghadapi masalah autentikasi atau tidak dapat menggunakan Google Authentication. Pembungkus ini menggunakan nilai cookie untuk berinteraksi dengan Google Gemini melalui rekayasa balik. Proyek ini melibatkan kolaborasi dengan Antonio Cheong.
Di sisi resmi, Google menyediakan API dan SDK Gemini resmi yang sebagian gratis dan bersih, yang dapat diakses dan digunakan dengan rapi melalui paket Python, google-generativeai.
Tip
| 26-03-2024 | [Lihat Contoh Kode]
Lihat API LLM Sumber Terbuka gratis sementara dengan Open Router. (Batas gratis: 10 permintaan/menit)
| 20-05-2024 | Ada beberapa perubahan logika tergantung pada wilayah/negara (IP) dan akun. Pengguna perlu memeriksa hal berikut untuk menemukan logika yang sesuai untuk diri mereka sendiri. Paket ini tetap sesuai untuk kasus penggunaan paling umum.
BOT_SERVER
di const.pyself._sid
di client.pyself._rcid
di client.py| Kertas | Situs Resmi | API Resmi | Dokumen API |
Gemini adalah rangkaian model AI generatif yang dikembangkan oleh Google DeepMind yang dirancang untuk kasus penggunaan multimodal. Gemini API memberi Anda akses ke model Gemini Pro dan Gemini Pro Vision. Pada bulan Februari 2024, layanan Bard Google diubah menjadi Gemini .
Model | Jenis | Mengakses | Detail |
---|---|---|---|
Gemini | Hak milik | API [13] | AI multimodal milik Google DeepMind, termasuk model canggih seperti Gemini Pro dan Gemini Pro Vision. Akses dibatasi pada penggunaan API; wawasan tambahan dapat diperoleh melalui makalah dan situs web. [1] [2] |
permata | Sumber Terbuka | Dapat diunduh API gratis | Model bahasa teks-ke-teks sumber terbuka yang cocok untuk tugas seperti QA dan ringkasan. Anak timbang dapat diunduh untuk penggunaan di lokasi, dan dokumentasi terperinci disediakan melalui koran dan situs web. [3] [4] |
Kode Gemma | Sumber Terbuka | Dapat diunduh | Dirancang khusus untuk tugas pemrograman, model sumber terbuka ini menawarkan bobot yang dapat diunduh untuk membantu pengembang dalam pembuatan kode dan aktivitas serupa. Lihat makalah terkait, postingan blog, dan koleksi Wajah Memeluk untuk informasi lebih lanjut. [5] [6] [7] |
Ini adalah pembungkus Python yang berasal dari proyek Bard API, yang dirancang untuk mengambil respons dari Web Gemini dalam format REST. Klien sinkron lebih disukai daripada klien asinkron untuk Gemini karena masalah pembatasan tarif dan pemblokiran.
pip install python-gemini-api
pip install git+https://github.com/dsdanielpark/Gemini-API.git
Untuk versi yang diperbarui, gunakan sebagai berikut:
pip install -q -U python-gemini-api
Kunjungi https://gemini.google.com/
Dengan browser terbuka, coba kumpulkan cookie secara otomatis terlebih dahulu.
from gemini import Gemini
client = Gemini ( auto_cookies = True )
# Testing needed as cookies vary by region.
# client = Gemini(auto_cookies=True, target_cookies=["__Secure-1PSID", "__Secure-1PSIDTS"])
# client = Gemini(auto_cookies=True, target_cookies="all") # You can pass whole cookies
response = client . generate_content ( "Hello, Gemini. What's the weather like in Seoul today?" )
print ( response . payload )
(Secara manual) F12
untuk konsol browser → Session: Application
→ Cookies
→ Salin nilai dari beberapa set cookie yang berfungsi. Jika tidak berhasil, lanjutkan ke langkah 3.
Pertama coba __Secure-1PSIDCC
saja. Jika tidak berhasil, gunakan __Secure-1PSID
dan __Secure-1PSIDTS
. Masih belum berhasil? Coba empat cookie ini: __Secure-1PSIDCC
, __Secure-1PSID
, __Secure-1PSIDTS
, NID
. Jika tidak ada yang berhasil, lanjutkan ke langkah 3 dan pertimbangkan untuk mengirimkan seluruh file cookie.
(Disarankan) Ekspor cookie situs Gemini melalui ekstensi browser. Misalnya, gunakan ekstensi Chrome Ekspor Kue Ini, buka, dan salin konten file txt.
Penting
Bereksperimenlah dengan berbagai akun Google dan pengaturan browser untuk menemukan cookie yang berfungsi. Keberhasilan dapat bervariasi berdasarkan IP dan status akun. Setelah terhubung, cookie biasanya tetap efektif selama sebulan. Teruskan pengujian sampai berhasil.
Hasilkan konten: mengembalikan respons yang diurai.
from gemini import Gemini cookies = { "" : "" } # Cookies may vary by account or region. Consider sending the entire cookie file. client = Gemini ( cookies = cookies ) # You can use various args response = client . generate_content ( "Hello, Gemini. What's the weather like in Seoul today?" ) response . payload
Hasilkan konten dari gambar: Anda dapat menggunakan gambar sebagai masukan.
from gemini import Gemini cookies = { "" : "" } client = Gemini ( cookies = cookies ) # You can use various args response = client . generate_content ( "What does the text in this image say?" , image = 'folder/image.jpg' ) response . payload
Catatan
Jika metode generate_content mengembalikan payload kosong, coba jalankan lagi tanpa menginisialisasi ulang objek Gemini.
Mengatur bahasa dan versi Gemini menggunakan variabel lingkungan:
Mengatur bahasa respons Gemini (Opsional): Periksa bahasa yang didukung di sini. Standarnya adalah bahasa Inggris.
import os
os . environ [ "GEMINI_LANGUAGE" ] = "KR" # Setting Gemini response language (Optional)
os . environ [ "GEMINI_ULTRA" ] = "1" # Switch to Gemini-advanced response (Experimental, Optional)
# In some accounts, access to Gemini Ultra may not be available. If that's the case, please revert it back to "0".
Harap nyatakan cookies
secara eksplisit dalam format dict. Anda juga dapat memasukkan jalur ke file yang berisi cookie dengan cookie_fp
(*.json, *.txt didukung). Periksa contoh file cookie di folder aset.
from gemini import Gemini
cookies = {
"__Secure-1PSIDCC" : "value" ,
"__Secure-1PSID" : "value" ,
"__Secure-1PSIDTS" : "value" ,
"NID" : "value" ,
# Cookies may vary by account or region. Consider sending the entire cookie file.
}
client = Gemini ( cookies = cookies )
# client = Gemini(cookie_fp="folder/cookie_file.json") # (*.json, *.txt) are supported.
# client = Gemini(auto_cookies=True) # Or use auto_cookies paprameter
Agar auto_cookie
disetel ke True
, dan sesuaikan target_cookies
. Gemini WebUI harus aktif di browser. browser_cookie3 mengaktifkan pengumpulan cookie otomatis, meskipun pembaruan mungkin belum selesai.
Mengembalikan respons Gemini, namun respons pertama mungkin kosong.
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Tell me about Large Language Model."
response = client . generate_content ( prompt )
print ( response . payload )
Penting
JANGAN mengirim pesan yang sama berulang kali. Jika sesi berhasil terhubung dan generate_content
berjalan dengan baik, TUTUP situs web Gemini. Jika web Gemini tetap terbuka di browser, cookie mungkin akan kedaluwarsa lebih cepat.
Output dari fungsi generate_content adalah GeminiModelOutput
, dengan struktur sebagai berikut:
Gemini-API/gemini/src/model/output.py
Baris 16 di fdf064c
Kirim permintaan: mengembalikan payload dan status_code permintaan, membuat proses debug menjadi lebih mudah.
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
response_text , response_status = client . send_request ( "Hello, Gemini. Tell me about Large Language Models." )
print ( response_text )
Anda dapat melacak jumlah total permintaan yang dibuat dengan mengakses properti request_count
dalam kelas Gemini
.
Mengembalikan teks yang dihasilkan oleh Gemini.
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Hello, Gemini. Tell me about Large Language Models."
response = client . generate_content ( prompt )
print ( response . text )
Mengembalikan gambar yang dihasilkan oleh Gemini.
Pengunduh asinkron
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Hello, Gemini. Tell me about Large Language Models." )
generated_images = response . generated_images # Check generated images [Dict]
await GeminiImage . save ( generated_images , "output" , cookies )
# image_data_dict = await GeminiImage.fetch_images_dict(generated_images, cookies)
# await GeminiImage.save_images(image_data_dict, "output")
Menampilkan gambar dalam IPython Anda dapat menampilkan gambar atau mengirimkannya ke aplikasi lain dalam format byte.
import io
from gemini import Gemini , GeminiImage
from IPython . display import display , Image
cookies = {}
client = Gemini ( cookies = cookies )
bytes_images_dict = GeminiImage . fetch_images_dict_sync ( generated_images , cookies ) # Get bytes images dict
for image_name , image_bytes in bytes_images_dict . items ():
print ( image_name )
image = Image ( data = image_bytes )
display ( image )
Sinkronkan pengunduh
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images # Check generated images [Dict]
GeminiImage . save_sync ( generated_images , save_path = "output" , cookies = cookies )
# You can use byte type image dict for printing images as follow:
# bytes_images_dict = GeminiImage.fetch_images_dict_sync(generated_images, cookies) # Get bytes images dict
# GeminiImage.save_images_sync(bytes_images_dict, path="output") # Save to dir
Pembungkus pengunduh async
import asyncio
from gemini import GeminiImage
async def save_generated_images ( generated_images , save_path = "output" , cookies = cookies ):
await GeminiImage . save ( generated_images , save_path = save_path , cookies = cookies )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images
asyncio . run ( save_generated_images ( generated_images , save_path = "output" , cookies = cookies ))
Logika metode GeminiImage.save
import asyncio
from gemini import Gemini , GeminiImage
async def save_generated_images ( generated_images , save_path = "output" , cookies = cookies ):
image_data_dict = await GeminiImage . fetch_images_dict ( generated_images , cookies ) # Get bytes images dict asynchronously
await GeminiImage . save_images ( image_data_dict , save_path = save_path )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Create illustrations of Seoul, South Korea." )
generated_images = response . generated_images
asyncio . run ( save_generated_images ( generated_images , save_path = "output" , cookies = cookies ))
Catatan
Gunakan GeminiImage untuk pemrosesan gambar. web_images
berfungsi tanpa cookie, tetapi untuk gambar seperti generated_image
dari Gemini, teruskan cookie. Cookie diperlukan untuk mengunduh gambar dari penyimpanan Google. Periksa respons atau gunakan variabel cookie yang ada.
Mengembalikan gambar sebagai respons Gemini.
Pengunduh asinkron
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images # Check generated images
await GeminiImage . save ( response_images , "output" )
# image_data_dict = await GeminiImage.fetch_images_dict(response_images)
# await GeminiImage.save_images(image_data_dict, "output")
Sinkronkan pengunduh
from gemini import Gemini , GeminiImage
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images # Check response images
GeminiImage . save_sync ( response_images , save_path = "output" )
# You can use byte type image dict as follow:
# bytes_images_dict = GeminiImage.fetch_bytes_sync(response_images) # Get bytes images dict
# GeminiImage.save_images_sync(bytes_images_dict, save_path="output") # Save to path
Pembungkus pengunduh async
import asyncio
from gemini import Gemini , GeminiImage
async def save_response_web_imagse ( response_images , save_path = "output" ):
await GeminiImage . save ( response_images , save_path = save_path )
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images
asyncio . run ( save_response_web_imagse ( response_images , save_path = "output" ))
Logika metode GeminiImage.save
import asyncio
from gemini import Gemini , GeminiImage
async def save_response_web_imagse ( response_images , save_path = "output" ):
image_data_dict = await GeminiImage . fetch_images_dict ( response_images ) # Get bytes images dict asynchronously
await GeminiImage . save_images ( image_data_dict , save_path = save_path )
# Run the async function
if __name__ == "__main__" :
cookies = {}
client = Gemini ( cookies = cookies )
response = client . generate_content ( "Give me a picture of Stanford." )
response_images = response . web_images
asyncio . run ( save_response_web_imagse ( response_images , save_path = "output" ))
Mengambil gambar sebagai masukan dan mengembalikan respons.
image = 'folder/image.jpg'
# image = open('folder/image.jpg', 'rb').read() # (jpg, jpeg, png, webp) are supported.
# Image file path or Byte-formatted image array
response = client . generate_content ( "What does the text in this image say?" , image = image )
print ( response )
Untuk memulai, Anda harus menautkan Google Workspace untuk mengaktifkan ekstensi ini melalui ekstensi web Gemini. Silakan lihat pemberitahuan resmi dan tinjau kebijakan privasi untuk lebih jelasnya.
bendera ekstensi
@Gmail, @Google Drive, @Google Docs, @Google Maps, @Google Flights, @Google Hotels, @YouTube
response = client . generate_content ( "@YouTube Search clips related with Google Gemini" )
response . response_dict
Google Ruang Kerja
Google Peta
Google Penerbangan
Google Hotel
YouTube
Anda dapat menentukan respon tertentu dengan mengatur Response Candidate ID (RCID).
# Generate content for the prompt "Give me some information about the USA."
response1 = client . generate_content ( "Give me some information about the USA." )
# After reviewing the responses, choose the one you prefer and copy its RCID.
client . rcid = "rc_xxxx"
# Now, generate content for the next prompt "How long does it take from LA to New York?"
response2 = client . generate_content ( "How long does it take from LA to New York?" )
# However, RCID may not persist. If parsing fails, reset `client.rcid` to None.
# client.rcid = None
Di Gemini, generate_content mengembalikan respons pertama. Ini mungkin bervariasi tergantung pada panjang atau penyortiran. Oleh karena itu, Anda dapat menentukan indeks respons yang dipilih dari 0 hingga n sebagai berikut. Namun, jika hanya ada satu respons, kembalikan ke 0.
from gemini import GeminiModelOutput
GeminiModelOutput . chosen = 1 # default is 0
response_choice_1 = client . generate_content ( "Give me some information about the USA." )
# If not all Gemini returns are necessarily plural, revert back to 0 in case of errors.
# GeminiModelOutput.chosen = 0
Parsing teks respons untuk mengekstrak nilai yang diinginkan.
Menggunakan Gemini.generate_custom_content
, tentukan penguraian khusus untuk mengekstrak nilai tertentu. Gunakan ParseMethod1 dan ParseMethod2 secara default, dan Anda dapat meneruskan metode penguraian khusus sebagai argumen jika diinginkan. Lihat custom_parser.py.
# You can create a parser method that takes response_text as the input for custom_parser.
response_text , response_status = client . send_request ( "Give me some information about the USA." )
# Use custom_parser function or class inheriting from BaseParser
response = client . generate_custom_content ( "Give me some information about the USA." , * custom_parser )
Gemini-API/gemini/client.py
Baris 323 di 31b8424
Jika Anda ingin menghindari permintaan dan larangan yang diblokir , gunakan Smart Proxy oleh Crawlbase. Ini meneruskan permintaan koneksi Anda ke alamat IP yang berputar secara acak di kumpulan proxy sebelum mencapai situs web target. Kombinasi AI dan ML membuatnya lebih efektif untuk menghindari CAPTCHA dan pemblokiran. Argumen pada level Secure Sockets Layer (SSL) mungkin perlu ditambahkan ke header. Gunakan itu bersama dengan verify=False
.
# Get your proxy url at crawlbase https://crawlbase.com/docs/smart-proxy/get/
proxy_url = "http://xxxxx:@smartproxy.crawlbase.com:8012"
proxies = { "http" : proxy_url , "https" : proxy_url }
client = Gemini ( cookies = cookies , proxies = proxies , timeout = 30 , verify = False )
client . session . header [ "crawlbaseAPI-Parameters" ] = "country=US"
client . generate_content ( "Hello, Gemini. Give me a beautiful photo of Seoul's scenery." )
Untuk kasus standar, gunakan kelas Gemini; untuk pengecualian, gunakan objek sesi. Saat membuat server bot Gemini baru, sesuaikan Headers.MAIN.
import requests
from gemini import Gemini , Headers
cookies = {}
session = requests . Session ()
session . headers = Headers . MAIN
for key , value in cookies . items ():
session . cookies . update ({ key : value })
client = Gemini ( session = session ) # You can use various args
response = client . generate_content ( "Hello, Gemini. Tell me about Large Language Model." )
Jelajahi fitur tambahan dalam dokumen ini.
Jika Anda ingin mengembangkan kode sederhana Anda sendiri, Anda bisa memulai dari contoh kode sederhana ini.
Siapkan item yang diperlukan dan dapatkan kunci API di Google AI Studio. Instal di Python 3.9 atau lebih tinggi dan masukkan kunci API yang dikeluarkan. Lihat tutorial untuk detailnya.
pip install -q -U google-generativeai
import google . generativeai as genai
GOOGLE_API_KEY = ""
genai . configure ( api_key = GOOGLE_API_KEY )
model = genai . GenerativeModel ( 'gemini-pro' )
response = model . generate_content ( "Write me a poem about Machine Learning." )
print ( response . text )
Jika Anda memiliki sumber daya GPU yang memadai, Anda dapat mendownload bobot secara langsung daripada menggunakan API Gemini untuk menghasilkan konten. Pertimbangkan Gemma dan Code Gemma, model sumber terbuka yang tersedia untuk penggunaan lokal .
Model Gemma adalah model bahasa khusus dekoder yang ringan dan canggih dari Google, yang berasal dari penelitian Gemini. Tersedia dalam bahasa Inggris, mereka menawarkan bobot dan varian terbuka, ideal untuk tugas seperti menjawab pertanyaan dan meringkas. Untuk informasi lebih lanjut, kunjungi kartu model Gemma-7b.
from transformers import AutoTokenizer , AutoModelForCausalLM
tokenizer = AutoTokenizer . from_pretrained ( "google/gemma-7b" )
model = AutoModelForCausalLM . from_pretrained ( "google/gemma-7b" )
input_text = "Write me a poem about Machine Learning."
input_ids = tokenizer ( input_text , return_tensors = "pt" )
outputs = model . generate ( ** input_ids )
print ( tokenizer . decode ( outputs [ 0 ]))
CodeGemma, yang merupakan rilis resmi dari Google untuk kode LLM, dirilis pada 9 April 2024. Ini menyediakan tiga model yang dirancang khusus untuk menghasilkan dan berinteraksi dengan kode. Anda dapat menjelajahi model Kode Gemma dan melihat kartu model untuk lebih jelasnya.
from transformers import GemmaTokenizer , AutoModelForCausalLM
tokenizer = GemmaTokenizer . from_pretrained ( "google/codegemma-7b-it" )
model = AutoModelForCausalLM . from_pretrained ( "google/codegemma-7b-it" )
input_text = "Write me a Python function to calculate the nth fibonacci number."
input_ids = tokenizer ( input_text , return_tensors = "pt" )
outputs = model . generate ( ** input_ids )
print ( tokenizer . decode ( outputs [ 0 ]))
OpenRouter menawarkan inferensi gratis sementara untuk model tertentu. Dapatkan kunci API dari Open Router API dan periksa model gratis di model Open Router. Gunakan model dengan biaya token 0 dolar pada dasarnya; model lain mungkin dikenakan biaya. Lihat selengkapnya di panduan API LLM sumber terbuka gratis.
Klien sinkronisasi lebih disukai daripada async untuk Gemini karena masalah pembatasan laju dan pemblokiran , namun OpenRouter menawarkan LLM sumber terbuka yang andal untuk implementasi async. (Batas gratis: 10 permintaan/menit)
from gemini import OpenRouter
OPENROUTER_API_KEY = ""
gemma_client = OpenRouter ( api_key = OPENROUTER_API_KEY , model = "google/gemma-7b-it:free" )
prompt = "Do you know UCA academy in Korea? https://blog.naver.com/ulsancoding"
response = gemma_client . create_chat_completion ( prompt )
print ( response )
# payload = gemma_client.generate_content(prompt)
# print(payload.json())
Daftar model gratis meliputi:
google/gemma-7b-it:free
- google/gemma-7b dari Google ***mistralai/mistral-7b-instruct:free
- mistralai/Mistral-7B-Instruct-v0.1 untuk instruksi dari Mistral AI ****huggingfaceh4/zephyr-7b-beta:free
- HuggingFaceH4/zephyr-7b-beta ***openchat/openchat-7b:free
- openchat/openchat untuk mengobrol **openrouter/cinematika-7b:free
- jondurbin/cinematika-7b-v0.1undi95/toppy-m-7b:free
- Undi95/Toppy-M-7Bgryphe/mythomist-7b:free
- Gryphe/MythoMist-7bnousresearch/nous-capybara-7b:free
- NousResearch/Nous-Capybara-7B-V1 dari Nous Research Gunakan API Crawlbase untuk pengambilan data yang efisien guna melatih model AI, dengan tingkat keberhasilan 98% dan waktu aktif 99,9%. Memulainya dengan cepat, mematuhi GDPR/CCPA, mendukung ekstraksi data besar-besaran, dan dipercaya oleh lebih dari 70 ribu pengembang.
Tinjau terlebih dahulu HanaokaYuzu/Gemini-API dan API Resmi Google Gemini sebelum menggunakan paket ini. Anda dapat menemukan sebagian besar bantuan di halaman FAQ dan Masalah.
Sangat berterima kasih atas laporan apa pun tentang fitur baru atau bug. Masukan Anda yang berharga mengenai kode ini sangat kami hargai. Kesalahan yang sering terjadi mungkin terjadi karena perubahan antarmuka API layanan Google. Laporan Masalah dan permintaan Pull yang berkontribusi terhadap perbaikan selalu diterima. Kami berusaha keras untuk mempertahankan komunitas terbuka yang aktif dan sopan.
galilah sumur sebelum kamu haus.
Kami ingin mengucapkan terima kasih yang tulus kepada semua kontributor.
Paket ini bertujuan untuk mengimplementasikan kembali fungsionalitas Bard API, yang telah diarsipkan atas kontribusi komunitas sumber terbuka tercinta, meskipun API resmi Gemini sudah tersedia.
Kontributor Bard API dan Gemini API.
Diperlukan modifikasi pada klien async menggunakan logika saya, bersama dengan pengumpulan cookie otomatis melalui browser_cookie3, dan implementasi fitur Bard API lainnya (seperti ekstraksi kode, ekspor ke Replit, gambar grafik, dll.).
Harap dicatat bahwa saat meninjau pengumpulan cookie otomatis, tampaknya cookie segera kedaluwarsa setelah mengirimkan permintaan pengumpulan. Upaya untuk membuatnya lebih ramah pengguna tidak berhasil. Selain itu, nilai _sid tampaknya berfungsi normal meskipun dikembalikan sebagai Tidak Ada.
Terakhir, jika algoritma CustomParser dan ResponseParser tidak berfungsi dengan baik, metode parsing baru dapat diperbarui melalui pernyataan kondisional di bagian yang relevan.
Saya tidak berencana untuk secara aktif melakukan kurasi repositori ini. Harap tinjau HanaokaYuzu/Gemini-API terlebih dahulu.
Terima kasih, dan semoga harimu menyenangkan.
Lisensi MIT, 2024. Dengan ini kami dengan tegas menafikan segala tanggung jawab hukum eksplisit atau implisit terkait dengan karya kami. Pengguna diharuskan menggunakan paket ini secara bertanggung jawab dan risikonya ditanggung sendiri. Proyek ini merupakan inisiatif pribadi dan tidak berafiliasi atau didukung oleh Google. Disarankan untuk menggunakan API resmi Google.
Peringatan Pengguna memikul tanggung jawab hukum penuh atas GeminiAPI. Tidak didukung oleh Google. Penggunaan berlebihan dapat menyebabkan pembatasan akun. Perubahan kebijakan atau status akun dapat memengaruhi fungsionalitas. Memanfaatkan halaman isu dan diskusi.
Python 3.7 atau lebih tinggi.