developing-genkit-js은(는) 무엇을 하나요?
Genkit을 사용하여 Node.js/TypeScript에서 AI 기반 애플리케이션을 개발합니다. 사용자가 Genkit, AI 에이전트, 플로우, 또는 JavaScript/TypeScript 도구에 대해 질문하거나 Genkit 오류, 유효성 검사 문제, 타입 오류, API 문제를 만났을 때 사용하세요.
개요
이 기술은 Google의 Genkit 프레임워크를 사용하여 Node.js/TypeScript 환경에서 AI 기반 애플리케이션을 개발하는 방법을 제공합니다. Genkit은 AI 모델 통합, 도구 체인 구축, 프롬프트 관리, 출력 검증 등을 위한 종합적인 도구 세트를 제공합니다.
주요 기능
- AI 플로우 정의: 복잡한 AI 워크플로우를 간결하게 정의
- 도구 통합: 외부 API, 데이터베이스, 파일 시스템 등과 통합
- 프롬프트 관리: 템플릿 기반 프롬프트 관리 및 버전 관리
- 출력 검증: Zod와 같은 스키마 검증 라이브러리를 사용한 출력 검증
- 보안 및 모니터링: 요청 추적, 로깅, 오류 처리
사용 방법
설치
npm install genkit
기본 플로우 정의
import { genkit, z } from 'genkit';
const ai = genkit();
// 간단한 플로우 정의
const helloFlow = ai.defineFlow(
{
name: 'helloFlow',
inputSchema: z.object({ name: z.string() }),
outputSchema: z.string(),
},
async (input) => {
return `Hello, ${input.name}!`;
}
);
// 플로우 실행
const result = await helloFlow({ name: 'World' });
도구 통합
const greetTool = ai.defineTool(
{
name: 'greetTool',
description: '인사 메시지를 생성합니다',
inputSchema: z.object({ name: z.string() }),
outputSchema: z.string(),
},
async (input) => {
return `안녕하세요, ${input.name}님!`;
}
);
// 플로우에서 도구 사용
const chatFlow = ai.defineFlow(
{
name: 'chatFlow',
inputSchema: z.object({ message: z.string() }),
},
async (input) => {
return ai.generate({
prompt: input.message,
tools: [greetTool],
});
}
);
오류 처리
Genkit은 다음과 같은 오류 유형을 제공합니다:
GenkitError: 일반적인 Genkit 오류ValidationError: 입력/출력 검증 오류ToolError: 도구 실행 중 오류FlowError: 플로우 실행 중 오류
import { GenkitError } from 'genkit';
try {
const result = await myFlow(input);
} catch (error) {
if (error instanceof GenkitError) {
console.error('Genkit 오류:', error.message);
}
}