最近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