NVIDIA AI Client
Cliente TypeScript para la API de NVIDIA AI, facilitando el uso de los modelos de chat, embeddings y generación de imágenes.
Instalación
npm install nvidia-ai-client
Formas de importación
El paquete es híbrido y soporta tanto CommonJS como ES Modules automáticamente:
CommonJS (Node.js tradicional)
// Importar todo el cliente
const { NvidiaAI } = require('nvidia-ai-client');
// O importar como default
const NvidiaAI = require('nvidia-ai-client').default;
ES Modules (ESM)
// Importar todo el cliente
import { NvidiaAI } from 'nvidia-ai-client';
// O importar como default
import NvidiaAI from 'nvidia-ai-client';
TypeScript
// Importar todo el cliente
import { NvidiaAI } from 'nvidia-ai-client';
// O importar como default
import NvidiaAI from 'nvidia-ai-client';
// También puedes importar tipos específicos
import { NvidiaAI, ChatMessage, EmbeddingResponse } from 'nvidia-ai-client';
Ejemplos de uso
Chat con modelos de IA
const { NvidiaAI } = require('nvidia-ai-client');
require('dotenv').config();
const nvidia = new NvidiaAI({
apiKey: process.env.NVIDIA_API_KEY
});
async function main() {
const respuesta = await nvidia.chat.create({
model: 'mistralai/mistral-7b-instruct-v0.3',
messages: [
{ role: "system", content: "Eres un asistente útil." },
{ role: "user", content: "¿Qué son las GPUs de NVIDIA?" }
],
temperature: 0.2,
max_tokens: 300
});
console.log(respuesta.choices[0].message.content);
}
main();
Generación de imágenes con Stable Diffusion XL
const { NvidiaAI } = require('nvidia-ai-client');
require('dotenv').config();
const fs = require('fs');
const path = require('path');
// Configurar cliente
const nvidia = new NvidiaAI({
apiKey: process.env.NVIDIA_API_KEY,
baseURL: 'https://ai.api.nvidia.com/v1'
});
async function main() {
const respuesta = await nvidia.images.generateWithStableDiffusionXL({
text_prompts: [
{
text: "a magical forest with glowing plants, high detail",
weight: 1
}
],
cfg_scale: 7,
sampler: "DDIM",
steps: 30
});
// Guardar imagen
await nvidia.images.saveImageToFile(
respuesta.artifacts[0].base64,
path.join(__dirname, 'magical_forest.png')
);
}
main();
Generación de embeddings
const { NvidiaAI } = require('nvidia-ai-client');
require('dotenv').config();
const nvidia = new NvidiaAI({
apiKey: process.env.NVIDIA_API_KEY
});
async function main() {
const respuesta = await nvidia.embeddings.create({
model: 'nvidia/nv-embedcode-7b-v1',
input: ["Las GPUs de NVIDIA son herramientas esenciales para IA."],
input_type: "query",
encoding_format: "float",
truncate: "NONE"
});
console.log(`Dimensiones del embedding: ${respuesta.data[0].embedding.length}`);
}
main();
Configuración de timeouts
// Configuración global de timeouts antes de crear instancias
const { NvidiaAI } = require('nvidia-ai-client');
// Actualizar configuración global
NvidiaAI.updateConfig({
DEFAULT_TIMEOUT: 60000, // 60 segundos por defecto
CHAT_TIMEOUT: 120000, // 120 segundos para chat
EMBEDDINGS_TIMEOUT: 30000 // 30 segundos para embeddings
});
// Crear instancia que usará la configuración anterior
const nvidia = new NvidiaAI({
apiKey: process.env.NVIDIA_API_KEY
});
Compatibilidad entre sistemas de módulos
Este paquete utiliza la característica "exports" de Node.js para proporcionar una experiencia híbrida:
- En entornos CommonJS, Node.js cargará automáticamente
dist/index.js
- En entornos ES Modules, Node.js cargará automáticamente
dist/index.mjs
- Los tipos TypeScript siempre estarán disponibles en
dist/index.d.ts
No es necesario especificar manualmente qué formato usar: el sistema detectará automáticamente el entorno y utilizará el formato adecuado.
Documentación
Para más detalles, consulta los ejemplos en la carpeta examples/
:
chat-example.js
- Uso de modelos de chatembeddings-example.js
- Generación de embeddingsstable-diffusion-xl-example.js
- Generación de imágenes con SDXLflux-example.js
- Generación de imágenes con Flux.1-devnvidia-complete-example.js
- Ejemplo completo con todas las funcionalidades