MCP Terminal Server

// Copyright 2024 Google LLC // SPDX-License-Identifier: Apache-2.0 package snippets import ( "context" "log" "github.com/firebase/genkit/go/ai" "github.com/firebase/genkit/go/genkit" "github.com/firebase/genkit/go/plugins/vertexai" ) func vertexaiEx(ctx context.Context) error { g, err := genkit.New(nil) if err != nil { log.Fatal(err) } // [START init] if err := vertexai.Init(ctx, g, nil); err != nil { return err } // [END init] yourProjectID := "" // [START initproj] if err := vertexai.Init(ctx, g, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err } // [END initproj] // [START initloc] if err := vertexai.Init(ctx, g, &vertexai.Config{Location: "asia-south1"}); err != nil { return err } // [END initloc] // [START model] langModel := vertexai.Model(g, "gemini-1.5-flash") // [END model] // [START gen] genRes, err := genkit.GenerateText(ctx, g, ai.WithModel(langModel), ai.WithTextPrompt("Tell me a joke.")) if err != nil { return err } // [END gen] _ = genRes var userInput string // [START embedder] embeddingModel := vertexai.Embedder(g, "text-embedding-004") // [END embedder] // [START embed] embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput)) if err != nil { return err } // [END embed] _ = embedRes var myRetriever ai.Retriever // [START retrieve] retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput)) if err != nil { return err } // [END retrieve] _ = retrieveRes var myIndexer ai.Indexer var docsToIndex []*ai.Document // [START index] if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil { return err } // [END index] return nil }