본문 바로가기

인공지능

Go 개발자를 위한 AI 혁신, Genkit Go 1.0 공개

728x90
반응형
728x170

AI 애플리케이션 개발은 그동안 Python이나 JavaScript에 집중되어 있었습니다. 하지만 이제는 Go 개발자에게도 본격적인 선택지가 생겼습니다. Google이 오픈소스로 공개한 Genkit Go 1.0은 프로덕션 환경에서도 안정적으로 활용 가능한 첫 번째 정식 릴리스로, AI 애플리케이션을 빠르고 안전하게 구축할 수 있는 기반을 제공합니다. 이번 블로그에서는 Genkit Go 1.0이 무엇인지, 어떤 기능을 제공하는지, 그리고 실제 개발자가 어떻게 활용할 수 있는지 정리합니다.

반응형

Genkit Go 1.0이란 무엇인가

Genkit은 풀스택 AI 애플리케이션을 위한 오픈소스 프레임워크입니다. 여러 모델 제공자(Google AI, Vertex AI, OpenAI, Ollama 등)를 단일 인터페이스로 통합하고, 멀티모달 콘텐츠, 구조화된 출력, RAG(Retrieval-Augmented Generation), 에이전트 기반 워크플로우를 쉽게 구현할 수 있도록 지원합니다.

특히 이번에 출시된 Genkit Go 1.0은 Go 생태계 전용으로 설계된 안정화 버전입니다. 이제 Go 개발자는 기존과 동일한 개발 흐름을 유지하면서도 AI 기능을 프로덕션 수준으로 구현할 수 있습니다.


주요 기능 소개

1. 타입 안전(Type-Safe) AI 플로우

Genkit Go의 핵심은 **플로우(Flow)**입니다. 플로우는 특정 AI 활용 시나리오를 함수처럼 정의하고 실행할 수 있는 구조로, 테스트와 배포가 단순해집니다. 또한 Go의 엄격한 타입 시스템과 JSON 스키마 검증을 활용해 구조화된 데이터를 안정적으로 다룰 수 있습니다.

예를 들어, 특정 재료를 기반으로 레시피를 생성하는 플로우를 정의하면, AI가 반환하는 데이터는 레시피 구조체(Recipe struct)에 맞게 자동 변환됩니다. 이 방식은 불확실한 문자열 응답에 의존하는 기존 AI 호출보다 훨씬 안전합니다.


2. 통합 모델 인터페이스

Genkit Go는 다양한 AI 모델을 동일한 API로 호출할 수 있도록 합니다. 예를 들어 다음과 같이 Google Gemini, OpenAI GPT, Ollama 모델을 같은 방식으로 호출할 수 있습니다.

// Google AI 모델 사용
resp, err := genkit.Generate(ctx, g,
    ai.WithModelName("googleai/gemini-2.5-flash"),
    ai.WithPrompt("What is the weather like today?"),
)

// OpenAI 모델 사용
resp, err := genkit.Generate(ctx, g,
    ai.WithModelName("openai/gpt-4o"),
    ai.WithPrompt("How are you today?"),
)

// Ollama 로컬 모델 사용
resp, err := genkit.Generate(ctx, g,
    ai.WithModelName("ollama/llama3"),
    ai.WithPrompt("What is the meaning of life?"),
)

이렇게 하면 모델 제공자에 상관없이 일관된 방식으로 개발할 수 있습니다.


3. 툴 콜링 (Tool Calling)

Genkit Go는 AI 모델이 외부 함수나 API를 호출할 수 있도록 지원합니다. 예를 들어 날씨 API를 툴로 정의하고, AI가 질문을 받을 때 해당 툴을 활용할 수 있습니다.

type WeatherInput struct {
    Location string `json:"location"`
}

getWeatherTool := genkit.DefineTool(g, "getWeather", 
    "Gets the current weather in a given location",
    func(ctx *ai.ToolContext, input WeatherInput) (string, error) {
        return fmt.Sprintf("The current weather in %s is 72°F and sunny.", input.Location), nil
    })

AI 모델은 단순히 텍스트만 생성하는 것이 아니라, 필요한 경우 이런 툴을 호출해 실제 데이터와 결합할 수 있습니다.


4. 손쉬운 배포

플로우를 간단히 HTTP 엔드포인트로 노출할 수 있습니다.

mux := http.NewServeMux()
mux.HandleFunc("POST /recipeGeneratorFlow", genkit.Handler(recipeFlow))
log.Fatal(server.Start(ctx, "127.0.0.1:3400", mux))

이처럼 배포 과정이 간단해, 프로덕션 환경에서의 확장이 용이합니다.


5. 개발자 도구와 CLI

Genkit Go는 풍부한 로컬 개발 도구를 제공합니다. 별도 런타임 설치 없이 사용할 수 있는 단독 CLI 바이너리와 시각적으로 플로우를 디버깅할 수 있는 Developer UI를 통해 개발자가 빠르게 반복 테스트할 수 있습니다.

CLI 설치 예시(macOS/Linux):

curl -sL cli.genkit.dev | bash

Developer UI 실행 예시:

genkit start -- go run .

6. AI 코딩 어시스턴트 통합 (genkit init:ai-tools)

새롭게 추가된 genkit init:ai-tools 명령어는 개발자의 AI 코딩 보조 도구를 자동 설정해 줍니다. 이 기능을 통해 Genkit 문서 검색, 플로우 실행, 트레이스 확인 등을 바로 사용할 수 있습니다.

지원되는 AI 도구는 다음과 같습니다.

  • Gemini CLI
  • Firebase Studio
  • Claude Code
  • Cursor

Go 개발자는 AI 도우미를 통해 코드 생성, 플로우 디버깅, 테스트 자동화를 손쉽게 수행할 수 있습니다.


예제: Recipe Generator 플로우

다음은 아보카도를 재료로, 채식 레시피를 생성하는 플로우를 정의하고 실행하는 예제입니다.

recipe, err := recipeFlow.Run(ctx, &RecipeInput{
    Ingredient:          "avocado",
    DietaryRestrictions: "vegetarian",
})
if err != nil {
    log.Fatalf("could not generate recipe: %v", err)
}

실행하면 구조화된 JSON 형태의 레시피가 출력되며, 이 데이터를 그대로 애플리케이션에 사용할 수 있습니다.


728x90

Genkit Go 1.0은 Go 개발자에게 새로운 기회를 열어줍니다. 지금까지는 Python에 집중되었던 AI 개발 생태계에서, 이제 Go도 타입 안정성과 속도, 그리고 프로덕션 환경에서의 신뢰성을 무기로 AI 영역에 본격 진입할 수 있게 되었습니다.

  • 안정적인 API와 장기적 호환성을 보장합니다.
  • 다양한 모델 제공자를 하나의 인터페이스로 활용할 수 있습니다.
  • 타입 안정성 덕분에 구조화된 데이터를 신뢰성 있게 다룰 수 있습니다.
  • CLI, Developer UI, AI 보조 도구까지 통합된 개발 경험을 제공합니다.

앞으로 Genkit Go는 AI 개발에서 안전성과 생산성을 동시에 확보하고자 하는 Go 개발자들에게 강력한 도구가 될 것입니다.

https://developers.googleblog.com/en/announcing-genkit-go-10-and-enhanced-ai-assisted-development/?fbclid=IwY2xjawMvtG9leHRuA2FlbQIxMQABHuijIJUSh0_1qL1WoAWhd2IxvHlsFJ8vcMUBOiK0WERsgKaoLoV2ce32GqN3_aem_LVh3c_fBPKSyuOOiz1ahxg

 

Announcing Genkit Go 1.0 and Enhanced AI-Assisted Development- Google Developers Blog

We're excited to announce the release of Genkit Go 1.0, the first stable, production-ready release of Google’s open-source AI development framework for the Go ecosystem. Along with this release, we're also introducing the genkit init:ai-tools command to

developers.googleblog.com

728x90
반응형
그리드형