[LLM API] Google Gemini API μ¬μ©νκΈ° 1ν (Python)
πΉ Gemini
Geminiλ Googleμ΄ κ°λ°ν λ©ν°λͺ¨λ¬ μΈκ³΅μ§λ₯(AI)μ λλ€. ν μ€νΈ, μ€λμ€, μ΄λ―Έμ§, λΉλμ€ λ± λ€μν μ μΆλ ₯μ μ§μνλ κ²μ΄ νΉμ§μ λλ€. Geminiλ 1μ‘° κ°μ νλΌλ―Έν°λ₯Ό κ°μ§ λκ·λͺ¨ μΈμ΄ λͺ¨λΈ(LLM)μ λλ€. μ΄λ OpenAIμ GPT-3.5λ λ€μ΄λ²μ νμ΄νΌν΄λ‘λ°λ³΄λ€ λ§μ μμΉμ λλ€. νλΌλ―Έν°μ μκ° λ§μμλ‘ λͺ¨λΈμ΄ λ 볡μ‘νκ³ μ μ°ν΄μ Έ λ€μν μμ μ μνν μ μλ€λλ° μ¬μ©μ μ μ₯μμ μμ§μ μλ‘ λκ° λ μ’μμ§ νλ¨νκΈ°λ μ΄λ €μ 보μ λλ€. (λΉμ°ν μλ‘κ° μ’λ€κ³ ν©λλ€)
Google Bardμμ λ―Έκ΅λ²μ μΌλ‘ μ¬μ©νλ©΄ Gemini λͺ¨λΈμ΄ λ΅λ³ν΄μ€λ€κ³ ν©λλ€. νΉμ΄νκ²(?) Gemini APIκ° νΉμ νλμμ 무λ£λΌ μ¬μ©ν΄ λ³΄κ² μ΅λλ€.
πΉ Gemini API μ¬μ©νκΈ°
1. API ν€ μμ±
μλ μ¬μ΄νΈμμ Get API Keyλ₯Ό ν©λλ€.
https://ai.google.dev/?utm_medium=cpc&utm_campaign=brand_core_brand&gad_source=1
2. API Keysμμ Create API Keyλ₯Ό ν©λλ€.
κ·Έλ¦¬κ³ μμ±λ keyλ₯Ό 볡μ¬ν΄ λ‘λλ€.
3. API μ¬μ©νκΈ°
PostmanμΌλ‘ ν μ€νΈν΄λ΄€μ΅λλ€. curlμ μ¬μ©ν΄λ λ©λλ€.
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=your_key
{"contents":
[
{"parts":[
{"text":"μ€μΈμλ λ°°κ²½μμ μμ¬μ μΆμ λν΄ μμ±ν΄μ€"}
]
}
]
}
4. κ²°κ³Ό μλ΅ νμΈ
μλ΅μ 10.55μ΄κ° μμλμμ΅λλ€.
// json ꡬ쑰 μλ΅
{
"text": "μλλ°μ μ€μΈ μλμ μ΄μλ ν μμ¬μμ΅λλ€.
κ·Έλ μ΄λ¦° μμ λΆν° μνμ λν κ΄μ¬μ΄ λ§μμ λΆλͺ¨λμ λ°λμλ λΆκ΅¬νκ³ μλμ μ
ννμ΅λλ€.
μλλ°μ μλλ₯Ό μ‘Έμ
νκ³ μμ¬κ° λμκ³ , κ·Έλ‘λΆν° λͺ λ
νμ μμ μ λ³μμ μ΄μμ΅λλ€.
\n\nμλλ°μ λ³μμ μ€μΈ μλμ λ€λ₯Έ λ³μλ€κ³Όλ λ¬λμ΅λλ€. μλλ°μ νμλ€μ μΈκ°μ μΌλ‘ λν΄μ£Όκ³ ,
κ·Έλ€μ κ³ ν΅μ μ΄ν΄νλ €κ³ λ
Έλ ₯νμ΅λλ€. λν μλλ°μ μνμ λν μ§μμ΄ νλΆνκ³ , νμ μλ‘μ΄
λ°©λ²μ μ°κ΅¬νμ΅λλ€. λλΆμ μλλ°μ λ³μμ 곧 μ€μΈ μλμμ κ°μ₯ μ λͺ
ν λ³μ μ€ νλκ° λμμ΅λλ€.
\n\nμλλ°μ νμλ€μ μΉλ£ν λΏλ§ μλλΌ μνμ λν μ§μμ μ ννλ λ°λ λ
Έλ ₯νμ΅λλ€.
κ·Έλ μν μμ μ μ μ νκ³ , μκ³Ό λνμ μΈμ κ³ , μμ¬λ€μ μμ±νμ΅λλ€. μλλ°μ μνμ λ°μ μ ν¬κ²
κΈ°μ¬νμΌλ©°, κ·Έκ° λ¨κΈ΄ μ μ°μ μ€λλ κΉμ§λ μ΄μ΄μ§κ³ μμ΅λλ€.\n\nμλλ°μ ν루λ μμΉ¨ μΌμ° λ³μμ
λμ°©νλ κ²μΌλ‘ μμλμμ΅λλ€. κ·Έλ νμλ€μ μ§μ°°νκ³ , μ²λ°©μ μ μ°κ³ , μμ μ νμ΅λλ€. μλλ°μ
νμλ€μ μΉλ£ν λ νμ μΈλ΄μ¬μ κ°μ§κ³ μμκ³ , κ·Έλ€μ κ³ ν΅μ μ΄ν΄νλ €κ³ λ
Έλ ₯νμ΅λλ€. κ·Έλ λν
μνμ λν μ§μμ΄ νλΆνκΈ° λλ¬Έμ νμλ€μ μ ννκ² μ§λ¨νκ³ ν¨κ³Όμ μΈ μΉλ£λ²μ μ²λ°©ν μ μμμ΅λλ€.
\n\nμλλ°μ μ λ
κΉμ§ λ³μμμ μΌνκ³ , κ·Έ νμλ μ§μΌλ‘ λμκ°μ μν μμ μ μ½κ±°λ μν μ°κ΅¬λ₯Ό
μ΅λλ€. κ·Έλ νμ μλ‘μ΄ λ°©λ²μ μ°κ΅¬νκ³ μμκΈ° λλ¬Έμ μ’
μ’
λ¦κ²κΉμ§ μΌνμ΅λλ€.
μλλ°μ μνμ λν μ΄μ μ΄ μ§λν μμ¬μμΌλ©°, κ·Έλ νμλ€μ μΉλ£νκ³ μνμ λ°μ μ κΈ°μ¬νλ
κ²μ ν° λ³΄λμΌλ‘ μ¬κ²Όμ΅λλ€.\n\nμλλ°μ μν λΆμΌμ μ§λν 곡νμ νμΌλ©° κ·Έμ μ μ°μ μ€λλ κΉμ§
μ΄μ΄μ§κ³ μμ΅λλ€. κ·Έλ νμλ€μ μΈκ°μ μΌλ‘ λν΄μ£Όκ³ κ·Έλ€μ κ³ ν΅μ μ΄ν΄νλ €κ³ λ
Έλ ₯νλ μμΈλ‘ μμ¬μ
λͺ¨λ²μ 보μ¬μ£Όμμ΅λλ€. λν κ·Έλ μνμ λν μ§μμ΄ νλΆνκ³ νμ μλ‘μ΄ λ°©λ²μ μ°κ΅¬νμ¬ μνμ
λ°μ μ κΈ°μ¬νμ΅λλ€. μλλ°μ μλν μμ¬μ΄μ μνμ λ°μ μ κΈ°μ¬ν μλν μΈλ¬Όμ
λλ€."
}
πΉ Python μ½λλ‘ μμ±
1. λΌμ΄λΈλ¬λ¦¬ intaill
pip installgoogle-generativeai
2. μ½λ μμ±
import google.generativeai as genai
GOOGLE_API_KEY="your key"
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content("μ€μΈμλ λ°°κ²½μμ μμ¬μ μΆμ λν΄ μμ±ν΄μ€.")
print(response.text)
3. μΆλ ₯ νμΈ
πΉ λννμΌλ‘ λ§λ€μ΄λ³΄κΈ°
1. μ½λ μμ
import google.generativeai as genai
GOOGLE_API_KEY="your key"
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
while True:
message = input("λ©μμ§λ₯Ό μ
λ ₯νμΈμ: ")
if (message == "exit"):
break
response = chat.send_message(message)
print("μλ λ΅λ³μ
λλ€.")
print(response.text)
2. μΆλ ₯νμΈ
λ©μμ§λ₯Ό μ λ ₯νμΈμ: λ΄μΌ νμ¬μ κ°μ§ μλ λ°©λ²μ λ§ν΄λ΄.
* **μν λ μν μ²νκΈ°.** μ΄κ²μ μμλ‘ μ¬μ©λκ³ μλ ꡬμ λ°©λ²μ΄μ§λ§, μ¬μ ν ν¨κ³Όμ μ λλ€. μν λ μ§μ μλ κ²μ΄ λ λμ κ²μ μλ μμ¬λ λ§μλ°, κ·Έλ κ² νλ κ²μ΄ νμ λλ¨Έμ§ κ΅¬μ±μμ 보νΈνλ λ° λμμ΄ λκΈ°λ ν©λλ€. * **λΉμ μν©μ μ‘°μνκΈ°.** μ΄κ²μ μν λ μν μ²νλ κ²λ³΄λ€ λ μνν μ νμ΄μ§λ§, λ ν¨κ³Όμ μΈ κ²½ μ°λ μμ΅λλ€. μλ₯Ό λ€μ΄, νμ΄νκ° ν°μ‘λ€κ±°λ, μμ΄κ° νκ΅μμ μ§μΌλ‘ 보λ΄μ‘λ€λ κ²μ λ§ν μ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ λ―Ώμ μ μλ λ³λͺ μ΄ μμ΄μΌ νκ³ , μμ¬κ° λΉμ μ΄ κ±°μ§λ§μ νκ³ μλ€λ κ²μ μμλ΄ λ©΄ λ¬Έμ κ° λ μ μμμ κΈ°μ΅νμμμ€. * **κ°μΈ ν΄κ°λ₯Ό μ»μΌμΈμ.** μ΄κ²μ μ¬μ μ κ³ννκ³ μμ²ν΄μΌ νλ―λ‘ κ°μ₯ μ’μ μ νμ μλ μ μμ΅λ λ€. κ·Έλ¬λ κ°μΈ ν΄κ°λ₯Ό κ°κ³ μΆμ λλ μ΄κ²μ΄ μ’μ λ°©λ²μ΄ λ μ μμ΅λλ€. * **κ°μ‘± μν©μ μ΄μ©νκΈ°.** κ°μ‘±μ΄ κΈ΄κΈ μν©μ μ²νλ€λ©΄, μμ¬μκ² μν©μ μ€λͺ νκ³ μ§μ μμ΄μΌ νλ€ λ κ²μ μ릴 μ μμ΅λλ€. μ¬κΈ°μλ κ°μ‘± ꡬμ±μμ΄ μν λ μ§μ μμ΄μΌ νλ€κ±°λ κ°μ‘± ꡬμ±μμ΄ μ¬κ³ λ₯Ό λΉνμ λ μ§μ μμ΄μΌ νλ€λ κ²μ΄ ν¬ν¨λ©λλ€. * **μμ λμ΄ λ무 λ§λ€λ κ²μ μ€λͺ νκΈ°.** μ΄λ€ κ²½μ°μλ λ무 λ§μ μμ μ νκ³ μμ΄μ ν루 λμ μ§μ μμ΄μΌ νλ€κ³ μ€λͺ ν μ μμ΅λλ€. μ΄ κ²½μ° μμ¬μκ² μμ μ§ν μν©μ 보μ¬μ£Όκ³ μ λ§κ°μΌκΉμ§ μμ μ μλ£ν μ μλμ§ μ€λͺ ν΄μΌ ν©λλ€. * **μμ¬μ νμνκΈ°.** μμ¬μ μ΄μΌκΈ°νμ¬ μμ μ μ§μμ μλ£ν μ μλμ§ μμλ³Ό μ μμ΅λλ€. μ΄κ²μ΄ μμ¬μκ² λ°μλ€μ¬μ§ κ°λ₯μ±μ΄ λμ΅λλ€.
λ©μμ§λ₯Ό μ λ ₯νμΈμ: μν μ²μ΄ μ’μ κ² κ°μ. μ§κΈ 겨μΈμΈλ° μ΄λ»κ² μνμ²μ νλ©΄ μ’μκΉ?
겨μΈμ μν μ²μ νλ €λ©΄ λ€μκ³Ό κ°μ λ°©λ²μ μ¬μ©ν μ μμ΅λλ€. * **κ°κΈ°μ κ±Έλ¦° κ²μ²λΌ μ°κΈ°νκΈ°.** μ΄κ²μ κ°μ₯ νν λ°©λ²μ΄λ©°, μνλ©΄ ν¨κ³Όμ μΌ μ μμ΅λλ€. μ¬μ±κΈ°, μ½ νλ¦Ό, κΈ°μΉ¨κ³Ό κ°μ κ°κΈ° μ¦μμ 보μ΄μμμ€. λμ λΆκ² λ§λ€κ³ λͺ©μ리λ₯Ό μ° κ²μ²λΌ λ§ν μλ μμ΅λλ€ . * **λ κ°μ κ±Έλ¦° κ²μ²λΌ μ°κΈ°νκΈ°.** λ κ°μ κ°κΈ°μ λΉν΄ λ μ¬κ°ν μ§λ³μ΄λ―λ‘, μμ¬κ° μ§μ λ¨Έλ¬Όλλ‘ λ λμ μ¬μ κ°μ§ κ°λ₯μ±μ΄ λμ΅λλ€. λ κ° μ¦μμΌλ‘λ λ°μ΄, μ€ν, κ·Όμ‘ν΅, νΌλ‘, λͺ©κ΅¬λ© ν΅μ¦ λ±μ΄ μμ΅λ λ€. * **μμ₯μΌμ κ±Έλ¦° κ²μ²λΌ μ°κΈ°νκΈ°.** μμ₯μΌμ λ©μ€κΊΌμ, ꡬν , μ€μ¬μ κ°μ μ¦μμ μ λ°νλ μ§λ³μ λ λ€. μμ₯μΌμ κ±Έλ Έλ€κ³ λ§νλ©΄ μμ¬κ° μ§μ λ¨Έλ¬Όλλ‘ λ λμ μ¬μ κ°μ§ κ°λ₯μ±μ΄ λμ΅λλ€. * **λ€λ₯Έ μ§λ³μ κ±Έλ¦° κ²μ²λΌ μ°κΈ°νκΈ°.** μκΈ°ν μ§λ³ μΈμλ κ°μΌ, μλ λ₯΄κΈ°, μ²μκ³Ό κ°μ λ€λ₯Έ μ§λ³μ κ±Έλ¦° κ²μ²λΌ μ°κΈ°ν μλ μμ΅λλ€. μ§λ³μ λν μ¦μμ μ°κ΅¬νκ³ , μμ¬μκ² λ―Ώμ μ μλλ‘ μ°κΈ°νμμμ€ . μ΄λ€ μ§λ³μ κ±Έλ¦° κ²μ²λΌ μ°κΈ°νλ , κ°μ₯ μ€μν κ²μ λ―Ώμ μ μλλ‘ νλ κ²μ λλ€. μμ¬κ° λΉμ μ΄ κ±°μ§ λ§μ νκ³ μλ€λ κ²μ μμλ΄λ©΄ λ¬Έμ κ° λ μ μμΌλ―λ‘, μ μ€νκ² μ°κΈ°λ₯Ό νμμμ€. λν, μν μ²μ νκΈ° μ μ λ°λμ ν΄κ°λ₯Ό μ μ²νκ±°λ μμ¬μκ² μ리μμμ€. μ΄λ κ² νλ©΄ μμ¬κ° λΉμ μ΄ μΌμ μ¬λ μ΄μ λ₯Ό μ μ μκ³ , λΉμ μ μμ μ λ€λ₯Έ μ¬λμκ² μ¬λΆλ°°ν μ μλλ‘ λμμ€ μ μμ΅λλ€.
λ©μμ§λ₯Ό μ λ ₯νμΈμ: λ λ΄κ° μ²μμ λλΌκ³ μ§λ¬Ένλμ§ κΈ°μ΅ν΄?
λ€, μ²μμ μ μκ² μ§λ¬Ένμ λ΄μ©μ "λ΄μΌ νμ¬μ κ°μ§ μλ λ°©λ²μ λ§ν΄μ€."μμ΅λλ€. μ λ μ¬λ¬ κ°μ§ λ°© λ²μ μ μλλ Έλλ°, κ·Έ μ€ νλκ° μν μ²νλ κ²μ΄μμ΅λλ€. κ·Έλμ μ λ μν μ²μ ν λ μ΄λ»κ² ν΄μΌ ν μ§μ λν λͺ κ°μ§ νμ μ 곡νμ΅λλ€. λ§μ½ λ€λ₯Έ λ°©λ²μ μ°Ύκ³ κ³μλ€λ©΄, κ°μΈ ν΄κ°λ₯Ό μ μ²νκ±°λ κ°μ‘± μν©μ μ΄μ©νκ±°λ μμ λμ΄ λ무 λ§λ€λ κ²μ μ€λͺ νκ±°λ μμ¬μ νμνλ κ²κ³Ό κ°μ λ°©λ²μ μ¬μ©ν μ μμ΅λλ€. μ΄λ€ λ°©λ²μ μ¬μ©νλ , κ°μ₯ μ€μν κ²μ λ―Ώμ μ μλλ‘ νλ κ²μ λλ€. μμ¬κ° λΉμ μ΄ κ±°μ§λ§μ νκ³ μ λ€λ κ²μ μμλ΄λ©΄ λ¬Έμ κ° λ μ μμΌλ―λ‘, μ μ€νκ² μ°κΈ°λ₯Ό νμμμ€. λν, μν μ²μ νκΈ° μ μ λ°λμ ν΄κ°λ₯Ό μ μ²νκ±°λ μμ¬μκ² μ리μμμ€. μ΄λ κ² νλ©΄ μμ¬κ° λΉμ μ΄ μΌμ μ¬λ μ΄μ λ₯Ό μ μ μκ³ , λΉμ μ μμ μ λ€λ₯Έ μ¬λμκ² μ¬λΆλ°°ν μ μλλ‘ λμμ€ μ μμ΅λλ€.
λ©μμ§λ₯Ό μ λ ₯νμΈμ: exit
μ¬λ°λ μ₯λκ°μ μ»μλ€.