Gemini API를 사용하여 텍스트 생성

Gemini API는 다음을 비롯한 다양한 유형의 입력으로 텍스트 출력을 생성할 수 있습니다. 동영상, 오디오, 텍스트, 이미지, 오디오입니다 텍스트 생성을 사용하여 애플리케이션에 다음과 같은 기능을 제공합니다.

  • 독창적인 글쓰기
  • 미디어 애셋 설명 또는 해석
  • 텍스트 완성
  • 자유 형식 텍스트 요약
  • 언어 간 번역
  • 챗봇
  • 나만의 새로운 사용 사례

이 가이드에서는 generateContentstreamGenerateContent 서버 측 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,
    )
)

개별 호출에 설정된 값은 모델 생성자의 값을 재정의합니다.

다음 단계

이 가이드에서는 generateContentstreamGenerateContent 을 사용하여 텍스트 전용 및 텍스트 및 이미지 입력에서 텍스트 출력을 생성합니다. 자세히 알아보기 Gemini API를 사용한 텍스트 생성에 관한 자세한 내용은 다음 리소스를 참고하세요.

  • 미디어 파일로 메시지 표시: Gemini API는 텍스트, 이미지, 오디오, 동영상 데이터의 프롬프팅을 지원하며 멀티모달 프롬프팅이라고 합니다
  • 시스템 안내: 시스템 지시사항을 사용하면 특정 작업 수행을 기준으로 모델의 동작을 사용 사례를 파악할 수 있습니다
  • 안전 안내: 생성형 AI가 존재함 모델이 부정확한 출력, 불쾌감을 주는 콘텐츠 후처리와 사람의 평가는 이러한 출력으로 인한 피해 위험을 최소화해야 합니다.