Learn how to install and use the VLM Run Node.js SDK
# Using npm npm install vlmrun # Using yarn yarn add vlmrun # Using pnpm pnpm add vlmrun
import { VlmRun } from "vlmrun"; const client = new VlmRun({ apiKey: "your-api-key", });
import { VlmRun } from "vlmrun"; // Initialize the client const client = new VlmRun({ apiKey: "your-api-key", }); // Process an image using URL const imageUrl = "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/document.invoice/invoice_1.jpg"; const response = await client.image.generate({ images: [imageUrl], domain: "document.invoice", config: { jsonSchema: { type: "object", properties: { invoice_number: { type: "string" }, total_amount: { type: "number" }, }, }, }, });
import { z } from "zod"; const imageUrl = "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/document.invoice/invoice_1.jpg"; const schema = z.object({ invoice_number: z.string(), total_amount: z.number(), }); const apiResponse = await client.image.generate({ images: [imageUrl], domain: "document.invoice", config: { responseModel: schema, }, }); const response = apiResponse.response as z.infer<typeof schema>; console.log(response);
// Process an image using local file const localResponse = await client.image.generate({ images: ["path/to/local/image.jpg"], model: "vlm-1", domain: "document.invoice", });
// Upload a document const file = await client.files.upload({ filePath: "path/to/invoice.pdf", }); // Process a document using file ID const response = await client.document.generate({ fileId: file.id, model: "vlm-1", domain: "document.invoice", }); console.log(response); // Process a document using URL const documentUrl = "https://storage.googleapis.com/vlm-data-public-prod/hub/examples/document.invoice/google_invoice.pdf"; const urlResponse = await client.document.generate({ url: documentUrl, model: "vlm-1", domain: "document.invoice", }); console.log(urlResponse);
import { z } from "zod"; const schema = z.object({ invoice_id: z.string(), total: z.number(), sub_total: z.number(), tax: z.number(), items: z.array( z.object({ name: z.string(), quantity: z.number(), price: z.number(), total: z.number(), }) ), }); const apiResponse = await client.document.generate({ url: documentUrl, domain: "document.invoice", config: { responseModel: schema }, }); const response = apiResponse.response as z.infer<typeof schema>; console.log(response);
tsconfig.json
{ "compilerOptions": { "esModuleInterop": true, "strict": true } }