使用 Gemini API 設計 Generative AI Application
2024-01-17
筆記如何使用 Google Gemini API 來打造生成式 AI 的應用 (Generative AI Application) 😎
說明
首先要前往 https://ai.google.dev/ 申請 API Key 同時也有 Prompt 的互動介面可以測試。
日後管理介面則前往 https://makersuite.google.com/app/prompts
馬上參考 Gemini API: Quickstart with Python 馬上動手進行應用。
第一步是先透過 pip 安裝 library 簡化 API 的使用
pip install -q -U google-generativeai
接著是設定使用的模型、API Key 以及相關的設定。
import google.generativeai as genai
import settings
genai.configure(api_key= settings.api_key)
model = genai.GenerativeModel(
'gemini-pro',
generation_config=settings.generation_config,
safety_settings=settings.safety_settings)
settings.py
api_key = ''
generation_config = {
"temperature": 0.9,
"top_p": 1,
"top_k": 1,
"max_output_tokens": 2048,
}
safety_settings = [
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_NONE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_NONE"
},
]
為了避免誤判,將生成內容安全性的封鎖都關閉,但如果要做為對外客服內容的處理,切記要選擇適當的 threshold。
app.py
response = model.generate_content("What is the meaning of life?")
response.text
使用 response.text
就可以取得回應內容
for candiate in response.candidates:
print(candidate.content.parts[0].text)
但如果有多個回應,可以改用 response.candidates
的方式存取回應內容。
import PIL.Image
img = PIL.Image.open('image.jpg')
model = genai.GenerativeModel('gemini-pro-vision')
response = model.generate_content(
["Analyze the nutritional value of the following food and estimate its calorie content on this picture.", img], stream=True)
response.resolve()
response.text
將模型調整為 gemini-pro-vision
可以結合 prompt 問題以及圖片達到生成式人工智慧的多模態應用 (Multimodal)。