모델로 콘텐츠 생성 — generate() 인터페이스
모델로 콘텐츠 생성 — generate() 인터페이스
Genkit은 어떤 공급자의 생성형 AI 모델이든 통합된 인터페이스로 다루게 해 줘요. 모델 플러그인을 한 번 설정하면 같은 API로 모든 모델을 호출할 수 있어서, 여러 모델을 조합하거나 앱이 진화하며 모델을 바꿔 끼우기 쉬워요.
모델과 상호작용하는 주 인터페이스는 generate() 메서드예요. 가장 단순한 generate() 호출은 사용할 모델과 텍스트 프롬프트를 지정해요.
다중 턴 대화는 prompt 대신 messages 파라미터로 대화 기록을 제공해요. 각 메시지는 role('system', 'user', 'model', 'tool' 중 하나)과 content를 가져요.
출력 길이를 조절하는 파라미터로는 최대 출력 토큰 수가 있어요. 좋은 기준은 영단어 하나를 토큰 2~4개로 보는 거예요. '창의성'을 조절하는 파라미터는 temperature, top-p, top-k예요.
- top-p — 0.0~1.0 사이 값으로, 고려할 토큰 수를 누적 확률로 제어해요. 1.0은 모든 토큰을, 0.4는 확률이 0.4까지 합쳐지는 가장 가능성 높은 토큰만 고려해요.
- top-k — 고려할 토큰의 최대 개수를 명시하는 정수예요. 1로 지정하면 모델이 결정적으로 동작해요.
스키마를 지정하면 구조화 출력(structured output) 을 요청할 수 있고, generateStream()으로 스트리밍도 해요.
const { stream, response } = ai.generateStream({
prompt: 'Tell me a story about a boy and his dog.',
});
멀티모달 입력을 지원하는 모델은 미디어 파트와 텍스트 파트를 배열로 넘겨요.
const response = await ai.generate({
prompt: [
{ media: { url: 'https://.../image.jpg' } },
{ text: 'What is in this image?' },
],
});
오디오 생성(TTS), generate() 호출 동작을 바꾸는 미들웨어, 그리고 RAG·평가(evaluation) 같은 고급 LLM 사용도 지원돼요.
더 알아보기
- https://genkit.dev/docs/js/models/ — 콘텐츠 생성
- https://genkit.dev/docs/js/flows/ — 플로우 정의