import "jsr:@std/dotenv@0.225/load"; import { encodeBase64 } from "jsr:@std/encoding@1/base64"; import { map } from "jsr:@core/iterutil@0.9/async/map"; import { GoogleGenerativeAI, type InlineDataPart, } from "npm:@google/generative-ai@0.21"; const genAI = new GoogleGenerativeAI(Deno.env.get("GOOGLE_API_KEY")!); const model = genAI.getGenerativeModel({ model: "gemini-2.0-flash" }); const prompt = "Does this look store-bought or homemade?"; const image: InlineDataPart = { inlineData: { // いらすとやのクッキー data: encodeBase64( await (await fetch( "https://i.gyazo.com/9bc2fc4dceda599559735ac9eb649cd0.png", )).arrayBuffer(), ), mimeType: "image/png", }, }; const result = await model.generateContentStream([prompt, image]); ReadableStream.from(map(result.stream, (chunk) => chunk.text())) .pipeThrough(new TextEncoderStream()) .pipeTo(Deno.stdout.writable);