<ph type="x-smartling-placeholder">
Gemini API는 다음을 비롯한 다양한 유형의 입력으로 텍스트 출력을 생성할 수 있습니다. 동영상, 오디오, 텍스트, 이미지, 오디오입니다 텍스트 생성을 사용해 애플리케이션에 다음과 같은 기능을 제공합니다.
- 문예 창작
- 미디어 애셋 설명 또는 해석
- 텍스트 완성
- 자유 형식 텍스트 요약
- 언어 간 번역
- 챗봇
- 나만의 새로운 사용 사례
이 가이드에서는
generateContent
및
streamGenerateContent
서버 측 SDK를
선택하여 사용할 수 있습니다 텍스트 출력에 초점이 맞춰져 있어
텍스트 전용 및 텍스트 및 이미지 입력이 있습니다. 멀티모달 프롬프팅에 대해 자세히 알아보기
자세한 내용은
미디어 파일로 메시지 표시.
시작하기 전에: 프로젝트 및 API 키 설정
Gemini API를 호출하기 전에 프로젝트를 설정하고 확인할 수 있습니다
텍스트 전용 입력에서 텍스트 생성
Gemini API를 사용해 텍스트를 생성하는 가장 간단한 방법은 를 단일 텍스트 전용 입력으로 대체합니다.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)
이 경우 프롬프트('마법의 배낭에 관한 이야기 쓰기')는 출력 예, 시스템 안내 또는 형식 정보를 포함할 수 없습니다. 제로샷입니다 접근하는 것입니다. 일부 사용 사례의 경우 원샷 또는 퓨샷 프롬프트 사용자 기대치에 더 부합하는 출력을 생성할 수 있습니다 어떤 경우에는 kubectl 명령어도 시스템 안내를 참고하여 작업을 이해하거나 특정 가이드라인을 따릅니다.
텍스트 및 이미지 입력에서 텍스트 생성
Gemini API는 텍스트와 미디어 파일을 결합하는 멀티모달 입력을 지원합니다. 다음 예는 텍스트 및 이미지 입력에서 텍스트를 생성하는 방법을 보여줍니다.
import PIL.Image
model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)
텍스트 전용 프롬프팅과 마찬가지로 멀티모달 프롬프팅에도 다양한 접근 방식이 포함될 수 있습니다. 미세 조정 등이 있습니다 이 예의 출력에 따라 프롬프트에 단계를 추가하거나 지침을 더 구체적으로 지정할 수 있습니다. 자세히 알아보려면 파일 프롬프팅 전략을 참고하세요.
텍스트 스트림 생성
기본적으로 모델은 전체 텍스트를 완료한 후 응답을 반환합니다. 살펴보겠습니다 이때 대신 스트리밍을 사용하여 부분 결과를 처리합니다.
다음 예는
streamGenerateContent
메서드를 사용하여
텍스트 전용 입력 프롬프트에서
텍스트 생성
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
대화형 채팅 빌드
Gemini API를 사용하여 사용자를 위한 대화형 채팅 환경을 빌드할 수 있습니다. API의 채팅 기능을 사용하면 여러 라운드의 질문을 수집할 수 있습니다. 이를 통해 사용자는 점진적으로 질문의 답을 찾거나 도움을 받을 수 있습니다. 여러 파트로 나뉩니다. 이 기능은 지속적인 커뮤니케이션(예: 챗봇, 대화형 강사 또는 고객 지원) 어시스턴트의 도움을 받을 수 있습니다.
다음 코드 예에서는 기본적인 채팅 구현을 보여줍니다.
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)
response = chat.send_message("How many paws are in my house?")
print(response.text)
텍스트 생성 구성
모델로 보내는 모든 프롬프트에는
매개변수로
모델이 응답을 생성하는 방식을 제어합니다. 이때
GenerationConfig
(으)로
이 매개변수를 구성합니다. 매개변수를 구성하지 않는 경우 모델은
기본 옵션을 사용하며 이는 모델에 따라 다를 수 있습니다.
다음 예에서는 사용 가능한 여러 옵션을 구성하는 방법을 보여줍니다.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
"Tell me a story about a magic backpack.",
generation_config=genai.types.GenerationConfig(
# Only one candidate for now.
candidate_count=1,
stop_sequences=["x"],
max_output_tokens=20,
temperature=1.0,
),
)
print(response.text)
candidateCount
는 반환할 생성된 응답 수를 지정합니다.
현재 이 값은 1로만 설정할 수 있습니다. 설정하지 않으면 기본값은 1입니다.
stopSequences
는
출력 생성을 중지합니다 지정하면 처음 표시되는 순간 API가 중지됩니다.
stop_sequence
입니다. 중지 시퀀스는
있습니다.
maxOutputTokens
는 후보에 포함할 최대 토큰 수를 설정합니다.
temperature
는 출력의 무작위성을 제어합니다. 더 높은 값을 사용하여
보다 결정론적인 응답을 위해서는 값을 낮게 설정하세요. 값
범위는 [0.0, 2.0]입니다.
generateContent
에 대한 개별 호출을 구성할 수도 있습니다.
response = model.generate_content(
'Write a story about a magic backpack.',
generation_config = genai.GenerationConfig(
max_output_tokens=1000,
temperature=0.1,
)
)
개별 호출에 설정된 값은 모델 생성자의 값을 재정의합니다.
다음 단계
이 가이드에서는
generateContent
및
streamGenerateContent
을 사용하여 텍스트 전용 및 텍스트 및 이미지 입력에서 텍스트 출력을 생성합니다. 자세히 알아보기
Gemini API를 사용한 텍스트 생성에 관한 자세한 내용은 다음 리소스를 참고하세요.
- 미디어 파일로 메시지 표시: Gemini API는 텍스트, 이미지, 오디오, 동영상 데이터의 프롬프팅을 지원하며 멀티모달 프롬프팅이라고 합니다
- 시스템 안내: 시스템 지시사항을 사용하면 특정 작업 수행을 기준으로 모델의 동작을 사용 사례를 파악할 수 있습니다
- 안전 안내: 생성형 AI가 존재함 모델이 부정확한 출력, 불쾌감을 주는 콘텐츠 후처리와 사람의 평가는 이러한 출력으로 인한 피해 위험을 최소화해야 합니다.