cloud functionでgemini使ってみる

投稿者:

最近gpt-4o-miniが出て安さにビックリしています

geminiの安さとトークン数にもビックリしています

というわけでgeminiをcloud fucntionで使います

といっても大体ドキュメント通りですが

https://firebase.google.com/docs/genkit/get-started?hl=ja

install

既存のプロジェクトに追加します

npm i genkit
npx genkit init
# platform -> firebase
# model provider -> Google Cloud Vertex AI 
# generate a sample ? -> サンプルのindex.tsが生成される、もしあったら上書きされるので注意

use

cloudfunctionのソースの中で

import { gemini15Flash, gemini15Pro , vertexAI } from "@genkit-ai/vertexai";
import { generate } from "@genkit-ai/ai";
import { configureGenkit } from "@genkit-ai/core";
import { firebase } from "@genkit-ai/firebase";

    configureGenkit({
      plugins: [
        // Load the Firebase plugin, which provides integrations with several
        // Firebase services.
        firebase(),
        // Load the Vertex AI plugin. You can optionally specify your project ID
        // by passing in a config object; if you don't, the Vertex AI plugin uses
        // the value from the GCLOUD_PROJECT environment variable.
        vertexAI({ location: "us-central1" }),
      ],
      // Log debug output to tbe console.
      logLevel: "debug",
      // Perform OpenTelemetry instrumentation and enable trace collection.
      enableTracingAndMetrics: true,
    });

  async function gemini(model: string, prompt: string) {
    const result = await generate({
      model: model === "gemini-pro" ? gemini15Pro : gemini15Flash,
      config: { temperature: 0.5, maxOutputTokens: 4000 },
      prompt,
    });
    return {
      text: result.text(),
      inputToken: Number(result.usage.inputTokens),
      outputToken: Number(result.usage.outputTokens),
    };
  }

ちなみにconfigureGenkitを忘れると以下のようなエラー出ます

Error: Model {"name":"vertexai/gemini-1.5-flash","info":{"label":"Vertex AI - Gemini 1.5 Flash","versions":["gemini-1.5-flash-001"],"supports":{"multiturn":true,"media":true,"tools":true,"systemRole":true}},"configSchema":{"_def":{"unknownKeys":"strip","catchall":{"_def":{"typeName":"ZodNever"}},"typeName":"ZodObject"},"_cached":null}} not found

おわり

gemini 1.5すごいな〜

100万トークンだって

https://firebase.google.com/docs/vertex-ai/gemini-models?hl=ja&authuser=0#detailed-info

PFU キーボード HHKB Professional Classic 英語配列/墨