Security News
Understanding the Security Concerns of npm Shrinkwrap
Explore the security risks of using npm shrinkwrap, the potential for outdated dependencies, and best practices for mitigating these concerns in your projects.
@primaryrecord/vertexai
Advanced tools
Readme
A fork of Google's Vertex AI Node.js SDK. Adds support for function calling and auth configuration. Also fixes a couple bugs.
See here for detailed samples using the Vertex AI Node.js SDK.
Install this SDK via NPM.
npm install @primaryrecord/vertexai
To use the SDK, create an instance of VertexAI
by passing it your Google Cloud project ID and location. Then create a reference to a generative model.
const {VertexAI, HarmCategory, HarmBlockThreshold} = require('@primaryrecord/vertexai');
const project = 'your-cloud-project';
const location = 'us-central1';
const vertex_ai = new VertexAI({project: project, location: location});
// Instantiate models
const generativeModel = vertex_ai.preview.getGenerativeModel({
model: 'gemini-pro',
// The following parameters are optional
// They can also be passed to individual content generation requests
safety_settings: [{category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold: HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE}],
generation_config: {max_output_tokens: 256},
});
const generativeVisionModel = vertex_ai.preview.getGenerativeModel({
model: 'gemini-pro-vision',
});
async function streamGenerateContent() {
const request = {
contents: [{role: 'user', parts: [{text: 'How are you doing today?'}]}],
};
const streamingResp = await generativeModel.generateContentStream(request);
for await (const item of streamingResp.stream) {
console.log('stream chunk: ', JSON.stringify(item));
}
console.log('aggregated response: ', JSON.stringify(await streamingResp.response));
};
streamGenerateContent();
async function streamChat() {
const chat = generativeModel.startChat({});
const chatInput1 = "How can I learn more about Node.js?";
const result1 = await chat.sendMessageStream(chatInput1);
for await (const item of result1.stream) {
console.log(item.candidates[0].content.parts[0].text);
}
console.log('aggregated response: ', JSON.stringify(await result1.response));
}
streamChat();
async function multiPartContent() {
const filePart = {file_data: {file_uri: "gs://generativeai-downloads/images/scones.jpg", mime_type: "image/jpeg"}};
const textPart = {text: 'What is this a picture of?'};
const request = {
contents: [{role: 'user', parts: [textPart, filePart]}],
};
const streamingResp = await generativeVisionModel.generateContentStream(request);
for await (const item of streamingResp.stream) {
console.log('stream chunk: ', JSON.stringify(item));
}
const aggregatedResponse = await streamingResp.response;
console.log(aggregatedResponse.candidates[0].content);
}
multiPartContent();
async function multiPartContentImageString() {
const b64imageStr = "yourbase64imagestr";
const filePart = {inline_data: {data: b64imageStr, mime_type: "image/jpeg"}};
const textPart = {text: 'What is this a picture of?'};
const request = {
contents: [{role: 'user', parts: [textPart, filePart]}],
};
const resp = await generativeVisionModel.generateContentStream(request);
const contentResponse = await resp.response;
console.log(contentResponse.candidates[0].content);
}
multiPartContentImageString();
async function generateContent() {
const request = {
contents: [{role: 'user', parts: [{text: 'How are you doing today?'}]}],
};
const resp = await generativeModel.generateContent(request);
console.log('aggregated response: ', JSON.stringify(await resp.response));
};
generateContent();
async function countTokens() {
const request = {
contents: [{role: 'user', parts: [{text: 'How are you doing today?'}]}],
};
const resp = await generativeModel.countTokens(request);
console.log('count tokens response: ', resp);
}
countTokens();
The contents of this repository are licensed under the Apache License, version 2.0.
FAQs
Vertex Generative AI client for Node.js
We found that @primaryrecord/vertexai demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Explore the security risks of using npm shrinkwrap, the potential for outdated dependencies, and best practices for mitigating these concerns in your projects.
Security News
Node.js is taking steps towards removing Corepack from its distribution, aiming for changes in the next major release.
Security News
OpenSSF has released a guide to help package repositories adopt Trusted Publishers, which enhances security by using short-lived identity tokens for authentication, reducing the risks associated with long-lived secrets.