The VLM Run Node.js SDK is the official Node.js client for VLM Run API platform, providing a convenient way to interact with our REST APIs.
# Using npm
npm install vlmrun
# Using yarn
yarn add vlmrun
# Using pnpm
pnpm add vlmrun
import { VlmRun } from "vlmrun";
// Initialize the client
const client = new VlmRun({
apiKey: "your-api-key",
});
// Process an image (using image 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" },
},
},
},
});
console.log(response);
// Process an image passing zod schema
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 response = await client.image.generate({
images: [imageUrl],
domain: "document.invoice",
config: {
responseModel: schema,
},
});
const response = response.response as z.infer<typeof schema>;
console.log(response);
// Process an image (using local file path)
const response = await client.image.generate({
images: ["tests/integration/assets/invoice.jpg"],
model: "vlm-1",
domain: "document.invoice",
});
console.log(response);
import { VlmRun } from "vlmrun";
// Initialize the client
const client = new VlmRun({
apiKey: "your-api-key",
});
// 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 response = await client.document.generate({
url: documentUrl,
model: "vlm-1",
domain: "document.invoice",
});
console.log(response);
// Process a document passing zod schema
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 response = await client.document.generate({
url: documentUrl,
domain: "document.invoice",
config: { responseModel: schema },
});
const response = response.response as z.infer<typeof schema>;
console.log(response);
Check out the examples directory for more detailed usage examples:
- Models - List available models
- Files - Upload and manage files
- Predictions - Make predictions with different types of inputs
- Feedback - Submit feedback for predictions
To use the VLM Run API, you'll need an API key. You can obtain one by:
- Create an account at VLM Run
- Navigate to dashboard Settings -> API Keys
Then use it to initialize the client:
const client = new VlmRun({
apiKey: "your-api-key",
});
For detailed documentation and API reference, visit our documentation site.
We welcome contributions! Please check out our contributing guidelines for details.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.