Gemini API는 텍스트, 이미지, 동영상, 오디오를 입력으로 제공하면 텍스트 출력을 생성할 수 있습니다.
이 가이드에서는 generateContent
및 streamGenerateContent
메서드를 사용하여 텍스트를 생성하는 방법을 보여줍니다. Gemini의 비전 및 오디오 기능을 사용하는 방법을 알아보려면 비전 및 오디오 가이드를 참고하세요.
텍스트 전용 입력에서 텍스트 생성
Gemini API를 사용하여 텍스트를 생성하는 가장 간단한 방법은 다음 예와 같이 모델에 단일 텍스트 전용 입력을 제공하는 것입니다.
import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("How does AI work?")
print(response.text)
이 경우 프롬프트 ('AI 작동 방식 설명')에 출력 예시, 시스템 안내 또는 형식 지정 정보가 포함되지 않습니다. 제로샷 접근 방식입니다. 일부 사용 사례의 경우 원샷 또는 몇 번의 샷 프롬프트가 사용자 기대치에 더 부합하는 출력을 생성할 수 있습니다. 경우에 따라 모델이 작업을 이해하거나 특정 가이드라인을 따르는 데 도움이 되는 시스템 안내를 제공할 수도 있습니다.
텍스트 및 이미지 입력에서 텍스트 생성
Gemini API는 텍스트와 미디어 파일을 결합한 멀티모달 입력을 지원합니다. 다음 예는 텍스트 및 이미지 입력에서 텍스트를 생성하는 방법을 보여줍니다.
import google.generativeai as genai
import PIL.Image
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open("/path/to/organ.png")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)
텍스트 스트림 생성
기본적으로 모델은 전체 텍스트 생성 프로세스를 완료한 후에 응답을 반환합니다. 전체 결과를 기다리지 않고 대신 스트리밍을 사용하여 부분 결과를 처리하면 더 빠른 상호작용을 실행할 수 있습니다.
다음 예에서는 streamGenerateContent
메서드를 사용하여 스트리밍을 구현하여 텍스트 전용 입력 프롬프트에서 텍스트를 생성하는 방법을 보여줍니다.
import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Explain how AI works", stream=True)
for chunk in response:
print(chunk.text, end="")
채팅 대화 만들기
Gemini SDK를 사용하면 여러 번의 질문과 응답을 수집할 수 있으므로 사용자가 점진적으로 답변을 찾거나 여러 부분으로 구성된 문제와 관련하여 도움을 받을 수 있습니다. 이 SDK 기능은 대화 기록을 추적하는 인터페이스를 제공하지만, 백그라운드에서는 동일한 generateContent
메서드를 사용하여 응답을 만듭니다.
다음 코드 예는 기본 채팅 구현을 보여줍니다.
import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response2 = chat.send_message("How many paws are in my house?")
print(response2.text)
다음 예와 같이 채팅과 함께 스트리밍을 사용할 수도 있습니다.
import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.", stream=True)
for chunk in response:
print(chunk.text, end="")
response2 = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response2:
print(chunk.text, end="")
print(chat.history)
텍스트 생성 구성
모델에 전송하는 모든 프롬프트에는 모델이 응답을 생성하는 방식을 제어하는 매개변수가 포함됩니다. GenerationConfig
를 사용하여 이러한 매개변수를 구성할 수 있습니다. 매개변수를 구성하지 않으면 모델은 기본 옵션을 사용하며 이는 모델에 따라 다를 수 있습니다.
다음 예는 사용 가능한 여러 옵션을 구성하는 방법을 보여줍니다.
import google.generativeai as genai
genai.configure(api_key="GEMINI_API_KEY")
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
"Explain how AI works",
generation_config = genai.GenerationConfig(
max_output_tokens=1000,
temperature=0.1,
)
)
print(response.text)
다음 단계
이제 Gemini API의 기본사항을 살펴봤으므로 다음을 시도해 보세요.