이제 Go용 Firebase Genkit 라이브러리가 미리보기로 제공됩니다. 왜냐하면 Go 라이브러리는 현재 알파 버전이므로 개발이 진행되고 있습니다. 따라서 프로토타입 제작 및 개발에만 탐색 분석
라이브러리 또는 이 문서에서 문제를 발견하면 신고해 주세요. GitHub 저장소에서 확인할 수 있습니다.
Genkit를 시작하려면 Genkit CLI를 설치하고 다음을 실행합니다.
Go 프로젝트의 genkit init
이 페이지의 나머지 부분에서 방법을 확인하시기 바랍니다.
요구사항
Go 1.22 이상
Node.js 20 이상 (Genkit CLI 및 UI용)
권장사항:
nvm
및nvm-windows
도구는 특정 버전의 Node.js를 설치할 수 있는 편리한 방법입니다. 설치해야 합니다 이러한 도구는 사용자별로 노드를 설치하므로 시스템 전체에 적용할 필요가 없습니다.macOS 또는 Linux와 같은 Unix 계열 시스템에
nvm
를 설치하려면 다음을 실행합니다. 명령어:curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
그런 다음
nvm
를 사용하여 노드를 설치하려면 새 셸을 열고 다음을 실행합니다. 명령어:nvm install 20
절차
다음 명령어를 실행하여 Genkit CLI를 설치합니다.
npm i -g genkit
이 명령어는 Genkit CLI를 노드 설치 디렉터리에 설치합니다. 노드 프로젝트 외부에서 사용할 수 있습니다.
새 프로젝트 디렉터리를 만듭니다.
mkdir genkit-intro && cd genkit-intro
Genkit 프로젝트를 초기화합니다.
genkit init
Go
을 런타임 환경으로 선택합니다.모델 선택:
Gemini (Google AI)
가장 간단하게 시작하는 방법은 Google AI Gemini API를 사용하는 것입니다. 입니다 거주 지역에서 사용할 수 있습니다.
API 키를 생성합니다. Gemini API를 사용하는 방법을 알아봅니다 그런 다음
GOOGLE_GENAI_API_KEY
를 설정합니다. 환경 변수를 키에 추가합니다.export GOOGLE_GENAI_API_KEY=<your API key>
Gemini (Vertex AI)
거주 지역에서 Google AI Gemini API를 사용할 수 없는 경우 다음 사항을 고려해 보세요. Gemini 및 기타 모델도 제공하는 Vertex AI API를 사용합니다. 나 결제가 사용 설정된 Google Cloud 프로젝트가 있어야 합니다. Platform API를 실행하고 몇 가지 추가 환경 변수를 설정합니다.
gcloud services enable aiplatform.googleapis.com
export GCLOUD_PROJECT=<your project ID>
export GCLOUD_LOCATION=us-central1
Vertex AI 가격 책정을 참조하세요.
모듈 이름으로 아무거나 지정합니다. 예:
example/genkit-intro
나머지 질문에 대한 기본 답변을 선택하면 샘플 코드로 프로젝트 폴더를 초기화합니다.
genkit init
명령어는 샘플 Go 모듈을 만들고 필수 종속 항목이 포함됩니다main.go
파일에는 단일 흐름이 포함되어 있습니다.menuSuggestionFlow
- LLM이 특정 항목에 대한 항목을 제안하도록 찾을 수 있습니다.이 파일은 다음과 같이 표시됩니다 (플러그인 구성 단계). Vertex AI를 선택한 경우 다르게 보일 수 있음).
package main import ( "context" "errors" "fmt" "log" // Import Genkit and the Google AI plugin "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/googleai" ) func main() { ctx := context.Background() // Initialize the Google AI plugin. When you pass nil for the // Config parameter, the Google AI plugin will get the API key from the // GOOGLE_GENAI_API_KEY environment variable, which is the recommended // practice. if err := googleai.Init(ctx, nil); err != nil { log.Fatal(err) } // Define a simple flow that prompts an LLM to generate menu suggestions. genkit.DefineFlow("menuSuggestionFlow", func(ctx context.Context, input string) (string, error) { // The Google AI API provides access to several generative models. Here, // we specify gemini-1.5-flash. m := googleai.Model("gemini-1.5-flash") if m == nil { return "", errors.New("menuSuggestionFlow: failed to find model") } // Construct a request and send it to the model API (Google AI). resp, err := m.Generate(ctx, ai.NewGenerateRequest( &ai.GenerationCommonConfig{Temperature: 1}, ai.NewUserTextMessage(fmt.Sprintf(`Suggest an item for the menu of a %s themed restaurant`, input))), nil) if err != nil { return "", err } // Handle the response from the model API. In this sample, we just // convert it to a string. but more complicated flows might coerce the // response into structured output or chain the response into another // LLM call. text, err := resp.Text() if err != nil { return "", fmt.Errorf("menuSuggestionFlow: %v", err) } return text, nil }) // Initialize Genkit and start a flow server. This call must come last, // after all of your plug-in configuration and flow definitions. When you // pass a nil configuration to Init, Genkit starts a local flow server, // which you can interact with using the developer UI. if err := genkit.Init(ctx, nil); err != nil { log.Fatal(err) } }
Genkit를 사용해 앱의 AI 기능을 빌드하면서 더 정교한 입력 전처리와 같은 여러 단계가 있는 데이터 흐름 프롬프트 구성, 조직의 외부 정보 소스 통합, 검색 증강 생성 (RAG) 등의 기술을 사용할 수 있습니다.
이제 로컬에서 Genkit 기능과 샘플 프로젝트를 실행하고 살펴볼 수 있습니다. 있습니다. Genkit 개발자 UI를 다운로드하여 시작합니다.
genkit start
이제 Genkit 개발자 UI가 컴퓨터에서 실행됩니다. 모델을 실행할 때는 또는 플로우를 기반으로 하는 경우 머신은 오케스트레이션 작업을 흐름의 단계가 함께 작동하도록 하는 데 필요한 외부 IP 주소 Gemini API와 같은 서비스는 계속해서 라이브 스트리밍 있습니다
또한 개발 환경에 있으므로 Genkit는 트레이스를 저장하고 로컬 파일의 흐름 상태에 따라 다릅니다
다음을 실행하면 Genkit 개발자 UI가 자동으로 다운로드되고 열립니다.
genkit start
명령어.개발자 UI를 사용하면 정의한 흐름과 모델링된 흐름을 볼 수 있습니다. 실행하고, 실행하고, 이전 실행의 트레이스를 검사할 수 있습니다. 사용해 보기 다음과 같습니다.
Run 탭에 있는 모든 흐름의 목록이 표시됩니다. 플러그인에서 구성한 모든 모델에서 사용할 수 있습니다.
menuSuggestionFlow를 클릭하고 입력 텍스트( 예:
"cat"
). 모든 것이 순조롭게 진행되면 제안입니다.Inspect 탭에 흐름 실행 기록이 표시됩니다. 각 흐름에 전달된 매개변수와 한 걸음 더 나갔습니다