Ein * inoffizieller Python-Wrapper, python-gemini-api, ist für Benutzer verfügbar, die häufig mit Authentifizierungsproblemen konfrontiert sind oder die Google-Authentifizierung nicht verwenden können. Dieser Wrapper verwendet Cookie-Werte, um durch Reverse Engineering mit Google Gemini zu interagieren. Das Projekt beinhaltete eine Zusammenarbeit mit Antonio Cheong.
Auf offizieller Seite stellt Google teilweise kostenlose, saubere offizielle Gemini-APIs und SDKs zur Verfügung, die über Python-Pakete, google-generativeai, problemlos abgerufen und genutzt werden können.
Tipp
| 26.03.2024 | [Siehe Codebeispiele]
Testen Sie vorübergehend kostenlose Open-Source-LLM-APIs mit Open Router. (Kostenloses Limit: 10 Anfragen/Minute)
| 20.05.2024 | Je nach Region/Land (IP) und Konto gibt es einige Änderungen in der Logik. Benutzer müssen Folgendes überprüfen, um die geeignete Logik für sich zu finden. Das Paket bleibt für die gängigsten Anwendungsfälle geeignet.
BOT_SERVER
Parameter in const.pyself._sid
in client.pyself._rcid
in client.py| Papier | Offizielle Website | Offizielle API | API-Dokumente |
Gemini ist eine von Google DeepMind entwickelte Familie generativer KI-Modelle, die für multimodale Anwendungsfälle konzipiert ist. Über die Gemini-API erhalten Sie Zugriff auf die Modelle Gemini Pro und Gemini Pro Vision. Im Februar 2024 wurde der Bard -Dienst von Google in Gemini geändert.
Modell | Typ | Zugang | Details |
---|---|---|---|
Zwillinge | Proprietär | API [13] | Eine proprietäre multimodale KI von Google DeepMind, einschließlich fortschrittlicher Modelle wie Gemini Pro und Gemini Pro Vision. Der Zugriff ist auf die API-Nutzung beschränkt; Weitere Erkenntnisse können über das Papier und die Website gewonnen werden. [1][2] |
Gemma | Open Source | Herunterladbar Kostenlose API | Ein Open-Source-Text-zu-Text-Sprachmodell, das für Aufgaben wie Qualitätssicherung und Zusammenfassung geeignet ist. Gewichte können für die Verwendung vor Ort heruntergeladen werden. Eine ausführliche Dokumentation wird über das Dokument und die Website bereitgestellt. [3][4] |
Code Gemma | Open Source | Herunterladbar | Dieses Open-Source-Modell wurde speziell für Programmieraufgaben entwickelt und bietet herunterladbare Gewichte, um Entwickler bei der Codegenerierung und ähnlichen Aktivitäten zu unterstützen. Weitere Informationen finden Sie im zugehörigen Artikel, Blogbeitrag und in der Hugging Face-Sammlung. [5][6][7] |
Dies ist ein vom Bard-API-Projekt abgeleiteter Python-Wrapper, der zum Abrufen von Antworten von Gemini Web im REST-Format entwickelt wurde. Aufgrund von Ratenbegrenzungs- und Blockierungsproblemen werden für Gemini synchrone Clients gegenüber asynchronen Clients bevorzugt.
pip install python-gemini-api
pip install git+https://github.com/dsdanielpark/Gemini-API.git
Verwenden Sie für die aktualisierte Version wie folgt:
pip install -q -U python-gemini-api
Besuchen Sie https://gemini.google.com/
Versuchen Sie bei geöffnetem Browser zunächst, Cookies automatisch zu sammeln.
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 )
(Manuell) F12
für Browserkonsole → Session: Application
→ Cookies
→ Wert einiger funktionierender Cookie-Sets kopieren. Wenn es nicht funktioniert, fahren Sie mit Schritt 3 fort.
Probieren Sie zunächst __Secure-1PSIDCC
alleine aus. Wenn es nicht funktioniert, verwenden Sie __Secure-1PSID
und __Secure-1PSIDTS
. Immer noch kein Erfolg? Probieren Sie diese vier Cookies aus: __Secure-1PSIDCC
, __Secure-1PSID
, __Secure-1PSIDTS
, NID
. Wenn nichts funktioniert, fahren Sie mit Schritt 3 fort und erwägen Sie, die gesamte Cookie-Datei zu senden.
(Empfohlen) Exportieren Sie Gemini-Site-Cookies über eine Browsererweiterung. Verwenden Sie beispielsweise die Chrome-Erweiterung ExportThisCookies, öffnen und kopieren Sie den Inhalt der TXT-Datei.
Wichtig
Experimentieren Sie mit verschiedenen Google-Konten und Browsereinstellungen, um ein funktionierendes Cookie zu finden. Der Erfolg kann je nach IP-Adresse und Kontostatus variieren. Sobald die Verbindung hergestellt ist, bleibt ein Cookie in der Regel einen Monat lang gültig. Testen Sie weiter, bis der Test erfolgreich ist.
Inhalt generieren: Gibt eine analysierte Antwort zurück.
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
Inhalte aus Bild generieren: Sie können das Bild als Eingabe verwenden.
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
Notiz
Wenn die Methode „generate_content“ eine leere Nutzlast zurückgibt, versuchen Sie, sie erneut auszuführen, ohne das Gemini-Objekt erneut zu initialisieren.
Sprache und Gemini-Version mithilfe von Umgebungsvariablen festlegen:
Gemini-Antwortsprache festlegen (optional): Überprüfen Sie hier die unterstützten Sprachen. Die Standardeinstellung ist Englisch.
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".
Bitte deklarieren Sie cookies
explizit im Diktatformat. Sie können auch den Pfad zur Datei, die das Cookie enthält, mit cookie_fp
(*.json, *.txt unterstützt) eingeben. Überprüfen Sie die Beispiel-Cookie-Dateien im Assets-Ordner.
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
Damit auto_cookie
auf True
gesetzt wird, passen Sie target_cookies
an. Gemini WebUI muss im Browser aktiv sein. Der browser_cookie3 ermöglicht die automatische Cookie-Sammlung, obwohl die Aktualisierungen möglicherweise noch nicht abgeschlossen sind.
Gibt die Antwort von Gemini zurück, aber die erste ist möglicherweise leer.
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Tell me about Large Language Model."
response = client . generate_content ( prompt )
print ( response . payload )
Wichtig
Senden Sie NICHT wiederholt dieselbe Aufforderung. Wenn die Sitzung erfolgreich verbunden wird und generate_content
ordnungsgemäß ausgeführt wird, SCHLIESSEN Sie die Gemini-Website. Wenn Gemini Web im Browser geöffnet bleibt, verfallen Cookies möglicherweise schneller.
Die Ausgabe der Funktion „generate_content“ ist GeminiModelOutput
mit der folgenden Struktur:
Gemini-API/gemini/src/model/output.py
Zeile 16 in fdf064c
Anfrage senden: Gibt die Nutzlast und den Statuscode der Anfrage zurück, was das Debuggen erleichtert.
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 )
Sie können die Gesamtzahl der gestellten Anfragen verfolgen, indem Sie auf die Eigenschaft request_count
innerhalb der Gemini
-Klasse zugreifen.
Gibt von Gemini generierten Text zurück.
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 )
Gibt von Gemini generierte Bilder zurück.
Asynchroner Downloader
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")
Bilder in IPython anzeigen Sie können das Bild anzeigen oder im Byte-Format an eine andere Anwendung übertragen.
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 )
Downloader synchronisieren
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
Asynchroner Downloader-Wrapper
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 ))
Logik der GeminiImage.save
-Methode
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 ))
Notiz
Verwenden Sie GeminiImage für die Bildverarbeitung. web_images
funktioniert ohne Cookies, aber für Bilder wie generated_image
von Gemini werden Cookies übergeben. Zum Herunterladen von Bildern aus dem Speicher von Google werden Cookies benötigt. Überprüfen Sie die Antwort oder verwenden Sie die vorhandene Cookies-Variable.
Gibt Bilder als Antwort von Gemini zurück.
Asynchroner Downloader
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")
Downloader synchronisieren
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
Asynchroner Downloader-Wrapper
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" ))
Logik der GeminiImage.save
-Methode
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" ))
Nimmt ein Bild als Eingabe und gibt eine Antwort zurück.
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 )
Zunächst müssen Sie Google Workspace verknüpfen, um diese Erweiterung über die Gemini-Weberweiterung zu aktivieren. Weitere Einzelheiten finden Sie in der offiziellen Mitteilung und in den Datenschutzrichtlinien.
Erweiterungsflags
@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 Workspace
Google Maps
Google Flüge
Google Hotels
YouTube
Sie können eine bestimmte Antwort angeben, indem Sie deren Antwortkandidaten-ID (RCID) festlegen.
# 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
In Gemini gibt „generate_content“ die erste Antwort zurück. Dies kann je nach Länge oder Sortierung variieren. Daher können Sie den Index der gewählten Antwort wie folgt von 0 bis n angeben. Wenn es jedoch nur eine Antwort gibt, setzen Sie sie auf 0 zurück.
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
Analysieren Sie den Antworttext, um die gewünschten Werte zu extrahieren.
Geben Sie mithilfe von Gemini.generate_custom_content
eine benutzerdefinierte Analyse an, um bestimmte Werte zu extrahieren. Verwenden Sie standardmäßig ParseMethod1 und ParseMethod2, und Sie können bei Bedarf benutzerdefinierte Parsing-Methoden als Argumente übergeben. Siehe 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
Zeile 323 in 31b8424
Wenn Sie blockierte Anfragen und Sperren vermeiden möchten, dann verwenden Sie Smart Proxy von Crawlbase. Es leitet Ihre Verbindungsanfragen an eine zufällig rotierende IP-Adresse in einem Proxy-Pool weiter, bevor es die Zielwebsite erreicht. Die Kombination von KI und ML macht es effektiver, CAPTCHAs und Blockaden zu vermeiden. Das Argument auf Secure Sockets Layer (SSL)-Ebene muss möglicherweise zum Header hinzugefügt werden. Verwenden Sie es in Verbindung mit 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." )
Verwenden Sie für Standardfälle die Gemini-Klasse. Verwenden Sie für Ausnahmen Sitzungsobjekte. Passen Sie beim Erstellen eines neuen Bot-Gemini-Servers Headers.MAIN an.
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." )
Entdecken Sie zusätzliche Funktionen in diesem Dokument.
Wenn Sie Ihren eigenen einfachen Code entwickeln möchten, können Sie mit diesem einfachen Codebeispiel beginnen.
Bereiten Sie die erforderlichen Elemente vor und erhalten Sie einen API-Schlüssel bei Google AI Studio. Installieren Sie auf Python 3.9 oder höher und geben Sie den ausgegebenen API-Schlüssel ein. Weitere Informationen finden Sie im Tutorial.
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 )
Wenn Sie über ausreichende GPU-Ressourcen verfügen, können Sie Gewichtungen direkt herunterladen, anstatt die Gemini-API zum Generieren von Inhalten zu verwenden. Betrachten Sie Gemma und Code Gemma, ein Open-Source-Modell, das für die lokale Nutzung verfügbar ist .
Gemma-Modelle sind Googles leichte, fortschrittliche Text-zu-Text-Sprachmodelle nur für Decoder, die aus der Gemini-Forschung abgeleitet wurden. Sie sind auf Englisch verfügbar und bieten offene Gewichtungen und Varianten, ideal für Aufgaben wie die Beantwortung und Zusammenfassung von Fragen. Weitere Informationen finden Sie auf der Gemma-7b-Modellkarte.
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, eine offizielle Version von Google für Code-LLMs, wurde am 9. April 2024 veröffentlicht. Es bietet drei Modelle, die speziell für die Generierung und Interaktion mit Code entwickelt wurden. Sie können die Code Gemma-Modelle erkunden und die Modellkarte für weitere Details ansehen.
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 bietet vorübergehend kostenlose Inferenz für ausgewählte Modelle. Besorgen Sie sich einen API-Schlüssel von Open Router API und schauen Sie sich kostenlose Modelle unter Open Router-Modelle an. Verwenden Sie hauptsächlich Modelle mit einem 0-Dollar-Token-Preis; Bei anderen Modellen können Gebühren anfallen. Weitere Informationen finden Sie im kostenlosen Open-Source-LLM-API-Leitfaden.
Der Sync-Client wird für Gemini aufgrund von Ratenbegrenzungs- und Blockierungsproblemen dem Async-Client vorgezogen , OpenRouter bietet jedoch zuverlässige Open-Source-LLMs für die Async-Implementierung. (Kostenloses Limit: 10 Anfragen/Minute)
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())
Die kostenlose Modellliste umfasst:
google/gemma-7b-it:free
- google/gemma-7b von Google ***mistralai/mistral-7b-instruct:free
- mistralai/Mistral-7B-Instruct-v0.1 für Anweisungen von Mistral AI ****huggingfaceh4/zephyr-7b-beta:free
- HuggingFaceH4/zephyr-7b-beta ***openchat/openchat-7b:free
– openchat/openchat für Chat **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 von Nous Research Verwenden Sie die Crawlbase-API für effizientes Data Scraping zum Trainieren von KI-Modellen mit einer Erfolgsquote von 98 % und einer Verfügbarkeit von 99,9 %. Es lässt sich schnell starten, ist DSGVO-/CCPA-konform, unterstützt die massive Datenextraktion und wird von über 70.000 Entwicklern als vertrauenswürdig eingestuft.
Überprüfen Sie zunächst HanaokaYuzu/Gemini-API und die offizielle Google Gemini API, bevor Sie dieses Paket verwenden. Die meiste Hilfe finden Sie auf den FAQ- und Problemseiten.
Für Meldungen zu neuen Funktionen oder Fehlern sind wir aufrichtig dankbar. Wir freuen uns sehr über Ihr wertvolles Feedback zum Code. Aufgrund von Änderungen an der Service-API-Schnittstelle von Google können häufig Fehler auftreten. Sowohl Problemberichte als auch Pull-Anfragen, die zu Verbesserungen beitragen, sind immer willkommen. Wir streben danach, eine aktive und zuvorkommende, offene Gemeinschaft aufrechtzuerhalten.
Grabe den Brunnen, bevor du durstig wirst.
Wir möchten allen Mitwirkenden unseren aufrichtigen Dank aussprechen.
Ziel dieses Pakets ist es, die Funktionalität der Bard-API erneut zu implementieren, die für die Beiträge der beliebten Open-Source-Community archiviert wurde, obwohl die offizielle API von Gemini bereits verfügbar ist.
Mitwirkende an der Bard API und der Gemini API.
Es sind Änderungen am asynchronen Client erforderlich, der meine Logik verwendet, zusammen mit der automatischen Cookie-Sammlung über browser_cookie3 und der Implementierung anderer Bard-API-Funktionen (wie Codeextraktion, Export nach Replit, Diagrammzeichnung usw.).
Bitte beachten Sie, dass bei der Überprüfung der automatischen Cookie-Sammlung festgestellt wurde, dass Cookies sofort ablaufen, wenn eine Anfrage zur Sammlung gesendet wird. Bemühungen, es benutzerfreundlicher zu gestalten, blieben erfolglos. Außerdem scheint der _sid-Wert normal zu funktionieren, selbst wenn er als None zurückgegeben wird.
Wenn schließlich die Algorithmen CustomParser und ResponseParser nicht ordnungsgemäß funktionieren, können neue Parsing-Methoden durch bedingte Anweisungen in den entsprechenden Abschnitten aktualisiert werden.
Ich habe nicht vor, dieses Repository aktiv zu kuratieren. Bitte überprüfen Sie zuerst HanaokaYuzu/Gemini-API.
Vielen Dank und einen schönen Tag.
MIT-Lizenz, 2024. Wir lehnen hiermit ausdrücklich jede explizite oder implizite rechtliche Haftung im Zusammenhang mit unseren Werken ab. Benutzer sind verpflichtet, dieses Paket verantwortungsbewusst und auf eigenes Risiko zu nutzen. Dieses Projekt ist eine persönliche Initiative und steht in keiner Verbindung zu Google und wird von Google auch nicht unterstützt. Es wird empfohlen, die offizielle API von Google zu verwenden.
Warnung: Benutzer übernehmen die volle rechtliche Verantwortung für GeminiAPI. Nicht von Google unterstützt. Eine übermäßige Nutzung kann zu Kontobeschränkungen führen. Änderungen der Richtlinien oder des Kontostatus können sich auf die Funktionalität auswirken. Nutzen Sie Problem- und Diskussionsseiten.
Python 3.7 oder höher.