Вы можете развернуть потоки Genkit как веб-сервисы с помощью Cloud Run. На этой странице в качестве примера описывается процесс развертывания примера потока по умолчанию.
Установите Google Cloud CLI, если вы еще этого не сделали.
Создайте новый проект Google Cloud с помощью консоли Cloud или выберите существующий. Проект должен быть привязан к платежному аккаунту.
После создания или выбора проекта настройте интерфейс командной строки Google Cloud для его использования:
gcloud auth login
gcloud init
Создайте каталог для примера проекта Genkit:
mkdir -p ~/tmp/genkit-cloud-project
cd ~/tmp/genkit-cloud-project
Если вы собираетесь использовать IDE, откройте ее в этом каталоге.
Инициализируйте модуль Go в каталоге вашего проекта:
go mod init example/cloudrun
go mod get github.com/firebase/genkit/go
Создайте пример приложения с помощью Genkit:
package main import ( "context" "fmt" "log" "net/http" "os" "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/googlegenai" "github.com/firebase/genkit/go/plugins/server" ) func main() { ctx := context.Background() // Initialize Genkit with the Google AI plugin and Gemini 2.0 Flash. // Alternatively, use &googlegenai.VertexAI{} and "vertexai/gemini-2.0-flash" // to use Vertex AI as the provider instead. g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}), genkit.WithDefaultModel("googleai/gemini-2.0-flash"), ) if err != nil { log.Fatalf("failed to initialize Genkit: %w", err) } flow := genkit.DefineFlow(g, "jokesFlow", func(ctx context.Context, topic string) (string, error) { resp, err := genkit.Generate(ctx, g, ai.WithPrompt(`Tell a short joke about %s. Be creative!`, topic), ) if err != nil { return "", fmt.Errorf("failed to generate joke: %w", err) } return resp.Text(), nil }) mux := http.NewServeMux() mux.HandleFunc("POST /jokesFlow", genkit.Handler(flow)) log.Fatal(server.Start(ctx, "127.0.0.1:"+os.Getenv("PORT"), mux)) }
Сделайте учетные данные API доступными для развернутой функции. Выберите, какие учетные данные вам нужны, исходя из вашего выбора в приведенном выше примере:
Близнецы (ИИ Google)
Убедитесь, что Google AI доступен в вашем регионе .
Создайте ключ API для Gemini API с помощью Google AI Studio.
Сделайте ключ API доступным в среде Cloud Run:
- В облачной консоли включите API Secret Manager .
- На странице «Менеджер секретов» создайте новый секрет, содержащий ваш ключ API.
- После создания секрета на той же странице предоставьте своей учетной записи вычислительной службы по умолчанию доступ к секрету с помощью роли Секретного доступа диспетчера секретов . (Имя учетной записи вычислительной службы по умолчанию можно найти на странице IAM.)
На более позднем этапе, когда вы развернете службу, вам нужно будет указать имя этого секрета.
Близнецы (Vertex AI)
В облачной консоли включите API Vertex AI для своего проекта.
На странице IAM убедитесь, что учетной записи службы вычислений по умолчанию предоставлена роль пользователя Vertex AI .
Единственный секрет, который вам нужно настроить для этого руководства, — это поставщик модели, но в целом вы должны сделать что-то подобное для каждой службы, которую использует ваш поток.
Необязательно : попробуйте свой алгоритм в пользовательском интерфейсе разработчика:
Настройте локальную среду для выбранного вами поставщика модели:
Близнецы (ИИ Google)
export GEMINI_API_KEY=<your API key>
Близнецы (Vertex AI)
export GOOGLE_CLOUD_PROJECT=<your project ID>
export GOOGLE_CLOUD_LOCATION=us-central1
gcloud auth application-default login
Запустите пользовательский интерфейс:
genkit start -- go run .
В пользовательском интерфейсе разработчика (http://localhost:4000/) запустите поток:
Нажмите шуткиFlow .
На вкладке «Ввод JSON» укажите тему модели:
"bananas"
Нажмите «Выполнить» .
Если пока все работает так, как ожидалось, вы можете создать и развернуть поток:
Близнецы (ИИ Google)
gcloud run deploy --port 3400 \ --update-secrets=GEMINI_API_KEY=<your-secret-name>:latest
Близнецы (Vertex AI)
gcloud run deploy --port 3400 \ --set-env-vars GOOGLE_CLOUD_PROJECT=<your-gcloud-project> \ --set-env-vars GOOGLE_CLOUD_LOCATION=us-central1
(
GOOGLE_CLOUD_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 '"bananas"'