* 비공식 Python 래퍼인 python-gemini-api는 인증 문제가 자주 발생하거나 Google 인증을 사용할 수 없는 사용자를 위해 제공됩니다. 이 래퍼는 쿠키 값을 사용하여 리버스 엔지니어링을 통해 Google Gemini와 상호작용합니다. 이 프로젝트에는 Antonio Cheong과의 협업이 포함되었습니다.
공식적인 측면에서 Google은 Python 패키지인 google-generativeai를 통해 깔끔하게 액세스하고 활용할 수 있는 부분적으로 무료이고 깨끗한 공식 Gemini API 및 SDK를 제공합니다.
팁
| 2024-03-26 | [코드 예시 보기]
Open Router를 통해 일시적으로 무료로 제공되는 오픈 소스 LLM API를 확인해 보세요. (무료 한도: 요청 10개/분)
| 2024-05-20 | 지역/국가(IP), 계정에 따라 로직이 일부 변경됩니다. 사용자는 자신에게 적합한 로직을 찾기 위해 다음 사항을 확인해야 합니다. 패키지는 가장 일반적인 사용 사례에 적합합니다.
BOT_SERVER
매개변수self._sid
self._rcid
| 종이 | 공식 홈페이지 | 공식 API | API 문서 |
Gemini는 다중 모드 사용 사례를 위해 설계된 Google DeepMind에서 개발한 생성 AI 모델 제품군입니다. Gemini API를 사용하면 Gemini Pro 및 Gemini Pro Vision 모델에 액세스할 수 있습니다. 2024년 2월, 구글의 Bard 서비스가 Gemini 로 변경되었습니다.
모델 | 유형 | 입장 | 세부 |
---|---|---|---|
쌍둥이자리 | 소유권 | API [13] | Gemini Pro 및 Gemini Pro Vision과 같은 고급 모델을 포함하는 Google DeepMind의 독점 멀티모달 AI입니다. 액세스는 API 사용으로 제한됩니다. 추가적인 통찰력은 논문과 웹사이트를 통해 얻을 수 있습니다. [1][2] |
아체 | 오픈 소스 | 다운로드 가능 무료 API | QA 및 요약과 같은 작업에 적합한 오픈 소스 텍스트-텍스트 언어 모델입니다. 온프레미스 사용을 위해 분동을 다운로드할 수 있으며, 자세한 문서는 문서와 웹사이트를 통해 제공됩니다. [3][4] |
코드 젬마 | 오픈 소스 | 다운로드 가능 | 프로그래밍 작업을 위해 특별히 설계된 이 오픈 소스 모델은 개발자의 코드 생성 및 유사한 활동을 지원하기 위해 다운로드 가능한 가중치를 제공합니다. 자세한 내용은 관련 논문, 블로그 게시물 및 Hugging Face 컬렉션을 참조하세요. [5][6][7] |
이는 Bard API 프로젝트에서 파생된 Python 래퍼로, Gemini Web에서 REST 형식으로 응답을 검색하도록 설계되었습니다. 속도 제한 및 차단 문제로 인해 Gemini의 경우 동기 클라이언트가 비동기 클라이언트보다 선호됩니다.
pip install python-gemini-api
pip install git+https://github.com/dsdanielpark/Gemini-API.git
업데이트된 버전의 경우 다음과 같이 사용하십시오.
pip install -q -U python-gemini-api
https://gemini.google.com/을 방문하세요.
브라우저를 연 상태에서 먼저 쿠키 자동 수집을 시도해 보세요.
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 )
(수동) 브라우저 콘솔의 경우 F12
→ Session: Application
→ Cookies
→ 일부 작동 쿠키 세트의 값을 복사합니다. 작동하지 않으면 3단계로 이동하세요.
먼저 __Secure-1PSIDCC
만 사용해 보세요. 작동하지 않으면 __Secure-1PSID
및 __Secure-1PSIDTS
사용하세요. 아직도 성공하지 못하셨나요? __Secure-1PSIDCC
, __Secure-1PSID
, __Secure-1PSIDTS
, NID
4가지 쿠키를 사용해 보세요. 아무것도 작동하지 않으면 3단계로 진행하여 전체 쿠키 파일을 보내는 것을 고려하십시오.
(권장) 브라우저 확장을 통해 Gemini 사이트 쿠키를 내보냅니다. 예를 들어 Chrome 확장 프로그램인 ImportThisCookies를 사용하여 txt 파일 내용을 열고 복사하세요.
중요한
작동하는 쿠키를 찾으려면 다양한 Google 계정과 브라우저 설정을 실험해 보세요. 성공 여부는 IP 및 계정 상태에 따라 달라질 수 있습니다. 일단 연결되면 쿠키는 일반적으로 한 달 동안 유효합니다. 성공할 때까지 계속 테스트하세요.
콘텐츠 생성: 구문 분석된 응답을 반환합니다.
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
이미지에서 콘텐츠 생성: 이미지를 입력으로 사용할 수 있습니다.
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
메모
generate_content 메서드가 빈 페이로드를 반환하는 경우 Gemini 개체를 다시 초기화하지 않고 다시 실행해 보세요.
환경 변수를 사용하여 언어 및 Gemini 버전 설정:
Gemini 응답 언어 설정(선택 사항): 여기에서 지원되는 언어를 확인하세요. 기본값은 영어입니다.
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".
cookies
dict 형식으로 명시적으로 선언하세요. cookie_fp
(*.json, *.txt 지원)를 사용하여 쿠키가 포함된 파일의 경로를 입력할 수도 있습니다. 자산 폴더에서 샘플 쿠키 파일을 확인하세요.
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
auto_cookie
True
로 설정하고 target_cookies
조정하세요. Gemini WebUI가 브라우저에서 활성화되어 있어야 합니다. browser_cookie3을 사용하면 자동 쿠키 수집이 가능하지만 업데이트가 아직 완료되지 않았을 수 있습니다.
Gemini의 응답을 반환하지만 첫 번째 응답은 비어 있을 수 있습니다.
from gemini import Gemini
cookies = {}
client = Gemini ( cookies = cookies )
prompt = "Tell me about Large Language Model."
response = client . generate_content ( prompt )
print ( response . payload )
중요한
동일한 메시지를 반복해서 보내지 마십시오. 세션이 성공적으로 연결되고 generate_content
제대로 실행되면 Gemini 웹사이트를 닫으세요. Gemini 웹이 브라우저에 열려 있으면 쿠키가 더 빨리 만료될 수 있습니다.
generate_content 함수의 출력은 GeminiModelOutput
이며 구조는 다음과 같습니다.
Gemini-API/gemini/src/model/output.py
fdf064c의 16번째 줄
요청 보내기: 요청의 페이로드와 status_code를 반환하므로 디버깅이 더 쉬워집니다.
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 )
Gemini
클래스 내의 request_count
속성에 액세스하여 총 요청 수를 추적할 수 있습니다.
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 )
Gemini에서 생성된 이미지를 반환합니다.
비동기 다운로더
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")
IPython에서 이미지 표시 이미지를 표시하거나 바이트 형식으로 다른 응용 프로그램으로 전송할 수 있습니다.
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 )
동기화 다운로더
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
비동기 다운로더 래퍼
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 ))
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 ))
메모
이미지 처리에는 GeminiImage를 사용하세요. web_images
쿠키 없이 작동하지만 Gemini의 generated_image
와 같은 이미지의 경우 쿠키를 전달합니다. Google 저장소에서 이미지를 다운로드하려면 쿠키가 필요합니다. 응답을 확인하거나 기존 쿠키 변수를 사용하세요.
Gemini에 대한 응답으로 이미지를 반환합니다.
비동기 다운로더
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")
동기화 다운로더
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
비동기 다운로더 래퍼
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" ))
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" ))
이미지를 입력으로 사용하고 응답을 반환합니다.
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 )
시작하려면 Google Workspace를 연결하여 Gemini 웹 확장 프로그램을 통해 이 확장 프로그램을 활성화해야 합니다. 자세한 내용은 공식 공지를 참고하시고, 개인정보취급방침을 검토하시기 바랍니다.
확장 플래그
@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 작업공간
구글 지도
구글 항공편
구글 호텔
유튜브
RCID(응답 후보 ID)를 설정하여 특정 응답을 지정할 수 있습니다.
# 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
Gemini에서는 generate_content가 첫 번째 응답을 반환합니다. 길이나 정렬에 따라 달라질 수 있습니다. 따라서 선택한 응답의 인덱스를 0부터 n 까지 다음과 같이 지정할 수 있습니다. 그러나 응답이 하나만 있는 경우에는 다시 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
응답 텍스트를 구문 분석하여 원하는 값을 추출합니다.
Gemini.generate_custom_content
사용하여 특정 값을 추출하도록 사용자 정의 구문 분석을 지정합니다. 기본적으로 ParseMethod1 및 ParseMethod2를 활용하고 원하는 경우 사용자 지정 구문 분석 메서드를 인수로 전달할 수 있습니다. 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
31b8424의 323행
차단된 요청 및 금지를 피 하려면 Crawlbase의 스마트 프록시를 사용하십시오. 대상 웹사이트에 도달하기 전에 프록시 풀에서 무작위로 회전하는 IP 주소 로 연결 요청을 전달합니다. AI와 ML의 결합으로 CAPTCHA와 차단을 더욱 효과적으로 피할 수 있습니다. SSL(Secure Sockets Layer) 수준의 인수를 헤더에 추가해야 할 수도 있습니다. 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." )
표준 사례의 경우 Gemini 클래스를 사용하십시오. 예외의 경우 세션 개체를 사용하세요. 새로운 봇 Gemini 서버를 생성할 때 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." )
이 문서의 추가 기능을 살펴보세요.
자신만의 간단한 코드를 개발하고 싶다면 이 간단한 코드 예제부터 시작해 보세요.
필요한 물품을 준비하고 Google AI Studio에서 API Key를 발급 받으세요. Python 3.9 이상 버전에 설치하고, 발급받은 API Key를 입력하세요. 자세한 내용은 튜토리얼을 참조하세요.
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 )
GPU 리소스가 충분하면 Gemini API를 사용하여 콘텐츠를 생성하는 대신 가중치를 직접 다운로드할 수 있습니다. 온프레미스에서 사용할 수 있는 오픈 소스 모델인 Gemma와 Code Gemma를 고려해 보세요.
Gemma 모델은 Gemini 연구에서 파생된 Google의 경량 고급 텍스트 대 텍스트, 디코더 전용 언어 모델입니다. 영어로 제공되며 개방형 가중치와 변형을 제공하므로 질문 답변 및 요약과 같은 작업에 이상적입니다. 자세한 내용은 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 ]))
코드 LLM을 위한 Google의 공식 릴리스인 CodeGemma는 2024년 4월 9일에 출시되었습니다. 코드 생성 및 상호 작용을 위해 특별히 설계된 세 가지 모델을 제공합니다. Code Gemma 모델을 탐색하고 모델 카드에서 자세한 내용을 볼 수 있습니다.
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는 일부 모델에 대해 임시 무료 추론을 제공합니다. Open Router API에서 API Key를 받고, Open Router 모델에서 무료 모델을 확인해보세요. 주로 토큰 비용이 0달러인 모델을 사용하세요. 다른 모델은 비용이 발생할 수 있습니다. 무료 오픈 소스 LLM API 가이드에서 자세한 내용을 확인하세요.
속도 제한 및 차단 문제로 인해 Gemini의 경우 동기화 클라이언트가 비동기보다 선호되지만 OpenRouter는 비동기 구현을 위한 안정적인 오픈 소스 LLM을 제공합니다. (무료 한도: 요청 10개/분)
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())
무료 모델 목록에는 다음이 포함됩니다.
google/gemma-7b-it:free
- Google의 google/gemma-7b ***mistralai/mistral-7b-instruct:free
- Mistral AI의 지침을 위한 mistralai/Mistral-7B-Instruct-v0.1 ****huggingfaceh4/zephyr-7b-beta:free
- HuggingFaceH4/zephyr-7b-beta ***openchat/openchat-7b:free
- 채팅용 openchat/openchat **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
- Nous Research의 NousResearch/Nous-Capybara-7B-V1 효율적인 데이터 스크래핑을 위해 Crawlbase API를 사용하여 AI 모델을 훈련하고 98%의 성공률과 99.9%의 가동 시간을 자랑합니다. 시작이 빠르고 GDPR/CCPA를 준수하며 대규모 데이터 추출을 지원하고 7만 명 이상의 개발자가 신뢰합니다.
이 패키지를 사용하기 전에 먼저 HanaokaYuzu/Gemini-API 및 공식 Google Gemini API를 검토하세요. FAQ 및 문제 페이지에서 대부분의 도움말을 찾을 수 있습니다.
새로운 기능이나 버그에 대한 보고에 진심으로 감사드립니다. 코드에 대한 귀하의 귀중한 피드백에 감사드립니다. Google의 서비스 API 인터페이스 변경으로 인해 자주 오류가 발생할 수 있습니다. 개선에 기여하는 이슈 보고서와 풀 요청 모두 언제나 환영합니다. 우리는 적극적이고 정중한 개방형 커뮤니티를 유지하기 위해 노력합니다.
목마르기 전에 우물을 파세요.
모든 기여자들에게 진심으로 감사의 말씀을 전하고 싶습니다.
이 패키지는 Gemini의 공식 API가 이미 제공되고 있음에도 불구하고 많은 사랑을 받는 오픈 소스 커뮤니티의 기여를 위해 보관된 Bard API의 기능을 다시 구현하는 것을 목표로 합니다.
Bard API 및 Gemini API에 기여한 사람입니다.
browser_cookie3을 통한 자동 쿠키 수집 및 기타 Bard API 기능(예: 코드 추출, Replit로 내보내기, 그래프 그리기 등)의 구현과 함께 내 논리를 사용하는 비동기 클라이언트에 대한 수정이 필요합니다.
쿠키 자동 수집 검토 결과, 쿠키 수집 요청 즉시 쿠키가 만료되는 것으로 나타났습니다. 사용자 친화적으로 만들려는 노력은 실패했습니다. 또한 _sid 값은 None으로 반환되어도 정상적으로 동작하는 것 같습니다.
마지막으로 CustomParser 및 ResponseParser 알고리즘이 제대로 작동하지 않는 경우 해당 섹션의 조건문을 통해 새로운 구문 분석 방법을 업데이트할 수 있습니다.
나는 이 저장소를 적극적으로 관리할 계획이 없습니다. HanaokaYuzu/Gemini-API를 먼저 검토해 주세요.
감사합니다. 좋은 하루 보내세요.
MIT 라이센스, 2024. 이로써 당사는 당사 작업과 관련된 명시적 또는 묵시적 법적 책임을 강력히 부인합니다. 사용자는 자신의 책임 하에 이 패키지를 사용해야 합니다. 이 프로젝트는 개인적인 이니셔티브이며 Google과 제휴하거나 Google이 보증하지 않습니다. Google의 공식 API를 사용하는 것이 좋습니다.
경고 사용자는 GeminiAPI에 대한 모든 법적 책임을 집니다. Google의 보증을 받지 않습니다. 과도한 사용은 계정 제한으로 이어질 수 있습니다. 정책이나 계정 상태가 변경되면 기능에 영향을 미칠 수 있습니다. 이슈 및 토론 페이지를 활용하세요.
파이썬 3.7 이상.