Meme Generator

이 가이드에서는 Gemma를 사용하여 함수 호출을 통해 애플리케이션을 구현하는 실용적인 접근 방식을 제공합니다. 이 기법은 신중한 프롬프트 엔지니어링을 통해 다양한 Gemma 모델 버전에 적용할 수 있습니다. 자세한 내용은 Beyond the Chatbot: Agentic AI with Gemma를 참고하세요.

함수 호출 설명

함수 호출의 일반적인 구조에는 Gemma가 외부 도구 또는 API와 상호작용할 수 있도록 설계된 몇 가지 주요 구성요소가 포함됩니다.

  1. 도구 설명
    모델에 사용할 수 있는 '도구' (함수)를 알려줍니다. 여기에는 다음이 포함됩니다.

    • 도구의 기능 (설명)
    • 도구에 필요한 정보 (매개변수)
  2. 사용자가 질문함
    모델에 질문하거나 작업을 제공합니다.

  3. Gemma가 결정합니다
    모델이 질문에 답변하는 데 도구가 필요한지 확인합니다.

  4. Gemma가 도구를 요청함
    도구가 필요한 경우 Gemma는 ```tool_code```로 래핑된 코드를 생성합니다.

  5. 도구가 작동
    도구 (함수)가 모델에서 정보를 가져와야 할 작업을 실행합니다.

  6. 도구가 결과를 반환함
    Gemma는 ```tool_output```으로 래핑된 결과를 다시 가져올 것으로 예상합니다.

  7. Gemma가 최종 답변을 제공합니다.
    모델은 도구의 결과를 사용하여 완전하고 정확한 답변을 생성합니다.

유용한 힌트

  • JSON 스키마: 매개변수 정의에 JSON 스키마를 사용하는 것은 필수는 아니지만 일관된 구조와 자동화된 유효성 검사의 이점을 제공합니다.
  • 명확한 이해: 모델이 함수를 사용할 시기를 올바르게 식별하려면 함수 설명의 품질이 중요합니다.
  • 오류 처리: 함수 호출이 실패하거나 예상치 못한 결과를 반환하는 케이스를 관리하려면 강력한 오류 처리가 필요합니다.
  • 반복 프로세스: 모델과 함수 호출 간에 여러 번의 대화 전환이 있을 수 있습니다.

프롬프트 및 출력 예시

이 애플리케이션의 코드는 Gemma Cookbook 코드 저장소에서 확인할 수 있습니다.

1단계 및 2단계: 도구 설명 및 과제 제공

웃긴 고양이 이미지

입력: 고양이의 재미있는 이미지
텍스트 입력:

If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.

You have access to the following tools.

* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters

Make a funny meme with this. "meme.jpg"

3단계: Gemma가 도구를 결정하고 요청합니다.

이 프롬프트는 다음과 같은 응답을 생성합니다.

Okay, here's a funny meme based on the image of the surprised cat:

```tool_code
generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.")
```

4단계: 도구가 작동함

코드 블록을 찾아 함수 인수를 파싱하고 함수를 실행하여 모델의 출력을 처리합니다.

밈 생성기의 최종 출력