Cloud Run이 포함된 Firebase Genkit

Cloud Run을 사용하여 Firebase Genkit 흐름을 웹 서비스로 배포할 수 있습니다. 이 페이지에서는 를 사용하면 기본 샘플을 배포할 수 있는 프로세스를 있습니다.

  1. 다음 경우에 Google Cloud CLI를 설치합니다. 해야 합니다.

  2. 다음을 사용하여 새 Google Cloud 프로젝트를 만듭니다. Cloud 콘솔로 이동하거나 기존 Cloud 콘솔을 선택합니다. 프로젝트를 결제 계정에 연결해야 합니다.

    프로젝트를 만들거나 선택한 후 다음을 사용하도록 Google Cloud CLI 구성 다음과 같습니다.

    gcloud auth login
    gcloud init
    
  3. Genkit 샘플 프로젝트용 디렉터리를 만듭니다.

    mkdir -p ~/tmp/genkit-cloud-project
    cd ~/tmp/genkit-cloud-project
    

    IDE를 사용하려면 이 디렉터리로 엽니다.

  4. 프로젝트 디렉터리에서 Go 모듈을 초기화합니다.

    go mod init example/cloudrun
    
  5. 프로젝트에서 Genkit를 초기화합니다.

    genkit init
    

    사용할 모델 제공업체를 선택합니다.

    나머지 프롬프트는 기본값을 수락합니다. genkit 도구는 자체 AI 흐름 개발을 시작하는 데 도움이 되는 샘플 소스 파일을 제공합니다. 하지만 이 튜토리얼의 나머지 부분에서는 샘플 흐름을 배포하기만 하면 됩니다.

  6. 샘플 파일 (main.go 또는 genkit.go)을 수정하여 흐름 서버가 수신 대기해야 하는 포트:

    if err := genkit.Init(ctx,
        &genkit.Options{FlowAddr: ":3400"}, // Add this parameter.
    ); err != nil {
        log.Fatal(err)
    }
    
  7. 배포된 함수에 API 사용자 인증 정보를 제공합니다. 다음 작업 중 하나를 수행합니다. 선택한 모델 공급업체에 따라 다음과 같습니다.

    Gemini (Google AI)

    1. Google AI가 거주 지역에서 사용할 수 있습니다.

    2. API 키를 생성합니다. Gemini API를 사용하는 방법을 알아봅니다

    3. Cloud Run 환경에서 API 키를 사용할 수 있도록 설정합니다.

      1. Cloud 콘솔에서 Secret Manager API
      2. Secret Manager 페이지에서 API 키가 포함된 새 보안 비밀을 만듭니다.
      3. 보안 비밀을 만든 후 같은 페이지에서 보안 비밀에 대한 컴퓨팅 서비스 계정 액세스 권한을 Secret Manager 보안 비밀 접근자 역할 ( IAM 페이지에서 기본 컴퓨팅 서비스 계정의 ID를 가져올 수도 있습니다.)

      이후 단계에서 서비스를 배포할 때 이 보안 비밀의 이름을 참조합니다.

    Gemini (Vertex AI)

    1. Cloud 콘솔에서 Vertex AI API 사용 설정 사용할 수 있습니다

    2. IAM에서 페이지에서 기본 컴퓨팅 서비스 계정이 부여되었는지 확인합니다. Vertex AI 사용자 역할이 필요합니다.

    이 튜토리얼에서 설정해야 하는 유일한 보안 비밀은 모델 일반적으로 각 서비스에 대해 유사한 작업을 수행해야 합니다. 자세히 알아볼 수 있습니다

  8. 선택사항: 개발자 UI에서 흐름을 시도해 보세요.

    1. 선택한 모델 제공업체의 로컬 환경을 설정합니다.

      Gemini (Google AI)

      export GOOGLE_GENAI_API_KEY=<your API key>
      

      Gemini (Vertex AI)

      export GCLOUD_PROJECT=<your project ID>
      export GCLOUD_LOCATION=us-central1
      gcloud auth application-default login
      
    2. UI를 시작합니다.

      genkit start
      
    3. 개발자 UI (http://localhost:4000/)에서 흐름을 실행합니다.

      1. menuSuggestionFlow를 클릭합니다.

      2. JSON 입력 탭에서 모델의 제목을 입력합니다.

        "banana"
        
      3. 실행을 클릭합니다.

  9. 지금까지 모든 것이 예상한 대로 작동한다면 GKE API를 흐름:

    Gemini (Google AI)

    gcloud run deploy --port 3400 \
      --update-secrets=GOOGLE_GENAI_API_KEY=<your-secret-name>:latest
    

    Gemini (Vertex AI)

    gcloud run deploy --port 3400 \
      --set-env-vars GCLOUD_PROJECT=<your-gcloud-project> \
      --set-env-vars GCLOUD_LOCATION=us-central1
    

    (GCLOUD_LOCATION은 사용할 Vertex API 리전을 구성합니다.)

    인증되지 않은 호출을 허용할지 묻는 메시지가 표시되면 N를 선택합니다. N에 응답하면 IAM 사용자 인증 정보를 요구하도록 서비스가 구성됩니다. 자세한 내용은 인증 사용자 인증 정보를 제공하는 방법에 대한 자세한 내용은 Cloud Run 문서를 참조하세요.

배포가 완료되면 도구에서 서비스 URL을 출력합니다. 다음을 테스트할 수 있습니다. curl로 다음을 실행합니다.

curl -X POST https://<service-url>/menuSuggestionFlow \
  -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json" -d '"banana"'