@senspond
>
제미나이(Gemini) API 를 사용하는 두가지 방법에 대해서 정리해봤습니다. 바로 GCP Vertext AI 와 Google AI Studio 를 사용하는 방법입니다.
GCP(Google Cloud Platform)가입 방법은 여기서 다루지 않겠습니다.
구글 클라우드 플랫폼에 가입하면 무료 크레딧 $300 달러를 주고 모든 크레딧 소진할 때까지는 무료로 사용할 수 있습니다.
GCP Vertext AI API는 제미나이 등 구글에서 만든 AI 모델을 호출 할 수 있는 구글 클라우드 플랫폼의 통합 API입니다.
구글 클라우드 플랫폼에 로그인을 한다음에 Vertext AI API를 활성화 해줍니다.
서비스 계정에 Vertext AI 접근 권한을 부여합니다.
pip install --upgrade --quiet google-cloud-aiplatform
from IPython.display import display, Markdown
import vertexai
from vertexai.preview.generative_models import GenerativeModel, Part
import vertexai.preview.generative_models as generative_models
from time import perf_counter
def time_printer(func):
def wrapper(*args, **kwargs):
try:
start_time = perf_counter() # [before]
result = func(*args, **kwargs) # 로직 수행
end_time = perf_counter() # [after]
print(f"'{func.__name__}' executed in {end_time - start_time:.4f} seconds") # 수행시간 출력
return result # 반환
except Exception as e:
print(f"Error: {e}")
return wrapper
@time_printer
def generate(query:str):
responses = model.generate_content(
[query],
generation_config=generation_config,
safety_settings=safety_settings,
stream=False,
)
return responses.text
MODEL_NAME="gemini-1.5-flash" # 모델명 ex) gemini-1.5-pro, ...
PROJECT_ID="rgbit-ai" # 여기에 프로젝트 id 를 넣어주세요
REGION="asia-northeast3"
generation_config = {
"max_output_tokens": 8192,
"temperature": 1,
"top_p": 0.95,
}
safety_settings = {
generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT: generative_models.HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE,
}
vertexai.init(project=PROJECT_ID, location=REGION)
model = GenerativeModel(MODEL_NAME)
현재 한국에서 사용가능한 리전은 asia-northeast3 뿐인 것으로 알고 있습니다.
그리고 safety_settings 등 다양한 부가 옵션들이 있습니다.
구글 AI Studio 는 Vertex AI Studio의 프리뷰 같은 버전으로 일반 사용자들이 보다 쉽게 사용할 수 있도록 만들어놓은 것입니다.
GCP Vertext AI는 엔터프라이즈 용으로 기업용 프로덕트에 사용할 때 다양한 옵션들을 제공하기 때문에 보다 적합합니다. 하지만 클라우드 서버를 다루는 백엔드 개발자가 아니면 GCP 인증부터 시작해서 약간의 진입장벽이 있습니다.
그래서 개인이 좀더 간단하게 사용할 때는 Google AI Studio 서비스를 이용하는 방법이 있습니다. Google AI Studio를 이용하면 무료 토큰 한도내에서 무료로 사용가능합니다.
curl \
-H 'Content-Type: application/json' \
-d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' \
-X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=YOUR_API_KEY'
import requests
import json
def gemini(prompt:str):
key = '당신의 키를 넣으세요'
url = f'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key={key}'
data = {"contents":[{"parts":[{"text":prompt}]}]}
headers = {'Content-Type': 'application/json; charset=utf-8'}
res = requests.post(url, headers=headers, data=json.dumps(data))
print(res.status_code)
return json.loads(res.content)
ChatGPT OpenAI API는 호출 한번 할때마다 과금되고 있기에 개인용으로 사용할 때 이 Gemini Api 와 결합해서 쓰면 좋을 것 같습니다.
안녕하세요. Red, Green, Blue 가 만나 새로운 세상을 만들어 나가겠다는 이상을 가진 개발자의 개인공간입니다.
현재글에서 작성자가 발행한 같은 카테고리내 이전, 다음 글들을 보여줍니다
@senspond
>