Vast.ai
Interactúa con los servicios de GPU en la nube de Vast.ai para obtener potencia informática bajo demanda.
Documentación
Instalación
Guía de instalación para macOS
Requisitos previos
- Instalar uv (gestor de paquetes de Python):
brew install uv
Instalar el servidor MCP de Vast.ai
-
Clonar el repositorio:
git clone https://github.com/your-repo/vastai-mcp.git cd vastai-mcp -
Instalar dependencias usando uv:
uv sync -
Instalar el servidor como herramienta:
uv tool install -e . # Install from current directory
Configuración
-
Obtén tu clave API de Vast.ai:
- Inicia sesión en console.vast.ai
- Ve a Cuenta > Claves API
- Crea o copia tu clave API
-
Configura el cliente MCP (para Claude Desktop u otros clientes MCP):
Actualiza tu archivo de configuración MCP (
~/.cursor/mcp.jsonpara Cursor):{ "mcpServers": { "vast-ai": { "command": "uv", "args": [ "run", "vast-mcp-server" ], "env": { "VAST_API_KEY": "your_vast_api_key_here", "SSH_KEY_FILE": "~/.ssh/id_rsa", "SSH_KEY_PUBLIC_FILE": "~/.ssh/id_rsa.pub" } } } }
Verificar la instalación
- Prueba el servidor directamente:
uv tool run vast-mcp-server --help
Configuración de clave SSH (Recomendado)
Para una funcionalidad completa, asegúrate de tener claves SSH configuradas:
-
Genera un par de claves SSH (si no tienes uno):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -
Verifica que los archivos de clave existan:
ls -la ~/.ssh/id_rsa*Deberías ver tanto el archivo
id_rsa(privado) como elid_rsa.pub(público).
Solución de problemas
-
Permiso denegado: Asegúrate de que tu clave SSH tenga los permisos correctos:
chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub -
Problemas con la clave API: Verifica que tu clave API sea correcta y tenga los permisos adecuados en Vast.ai
-
Problemas de red: Asegúrate de poder acceder a
console.vast.aidesde tu red
Guía de uso del servidor MCP de Vast.ai
Este documento describe cómo usar el servidor MCP (Protocolo de Contexto de Modelo) de Vast.ai para interactuar con la plataforma de nube de GPU de Vast.ai.
Herramientas disponibles
Este servidor proporciona 23 herramientas para gestionar instancias de GPU de Vast.ai:
1. show_user_info()
Muestra la información del usuario actual y el saldo de la cuenta.
Devuelve:
- Nombre de usuario, correo electrónico, saldo de la cuenta, ID de usuario
- Información de la clave SSH (si está disponible)
- Monto total gastado
2. show_instances(owner: str = "me")
Muestra las instancias del usuario (en ejecución, detenidas, etc.)
Parámetros:
owner(opcional): Propietario de las instancias a mostrar (por defecto: "me")
Devuelve:
- Lista de todas las instancias con sus detalles:
- ID de instancia y estado
- Etiqueta e ID de máquina
- Tipo de GPU y especificaciones
- Costo por hora
- Imagen Docker
- Dirección IP pública (si está disponible)
- Fecha de creación
3. search_offers(query: str = "", limit: int = 20, order: str = "score-")
Busca ofertas/máquinas de GPU disponibles para alquilar.
Parámetros:
query(opcional): Consulta de búsqueda en formato clave=valor (por ejemplo, "gpu_name=RTX_4090 num_gpus=2")limit(opcional): Número máximo de resultados a devolver (por defecto: 20)order(opcional): Orden de clasificación, agrega '-' para descendente (por defecto: "score-")
Devuelve:
- Lista de ofertas disponibles con:
- ID de oferta
- Especificaciones de GPU (nombre, cantidad)
- Detalles de CPU y RAM
- Espacio de almacenamiento
- Costo por hora
- Ubicación y puntuación de confiabilidad
- Versión de CUDA
- Velocidades de Internet
Ejemplos de consultas:
"gpu_name=RTX_4090"- Buscar GPUs RTX 4090"num_gpus=2 cpu_ram>=32"- Buscar configuraciones de doble GPU con 32GB+ de RAM
4. create_instance(offer_id: int, image: str, disk: float = 10.0, ssh: bool = False, jupyter: bool = False, direct: bool = False, env: str = "", label: str = "", bid_price: float = None)
Crea una nueva instancia a partir de una oferta.
Parámetros:
offer_id: ID de la oferta a alquilar (de search_offers)image: Imagen Docker a ejecutar (por ejemplo, "pytorch/pytorch:latest")disk(opcional): Tamaño del disco en GB (por defecto: 10.0)ssh(opcional): Habilitar acceso SSH (por defecto: False)jupyter(opcional): Habilitar Jupyter notebook (por defecto: False)direct(opcional): Usar conexiones directas (por defecto: False)env(opcional): Variables de entorno como dict (por defecto: None)label(opcional): Etiqueta para la instanciabid_price(opcional): Precio de oferta para instancias interrumpibles
Devuelve:
- Mensaje de éxito con ID de instancia o detalles de error
Ejemplo:
create_instance(
offer_id=12345,
image="pytorch/pytorch:latest",
disk=40.0,
ssh=True,
direct=True,
env={"JUPYTER_ENABLE_LAB": "yes"},
label="My PyTorch Training"
)
5. destroy_instance(instance_id: int)
Destruye una instancia, eliminándola por completo del sistema. No es necesario detenerla primero.
Parámetros:
instance_id: ID de la instancia a destruir
Devuelve:
- Mensaje de éxito/fracaso
6. start_instance(instance_id: int)
Inicia una instancia detenida.
Parámetros:
instance_id: ID de la instancia a iniciar
Devuelve:
- Mensaje de éxito/fracaso
7. stop_instance(instance_id: int)
Detiene una instancia en ejecución (sin destruirla).
Parámetros:
instance_id: ID de la instancia a detener
Devuelve:
- Mensaje de éxito/fracaso
8. search_volumes(query: str = "", limit: int = 20)
Busca ofertas de volúmenes de almacenamiento disponibles.
Parámetros:
query(opcional): Consulta de búsqueda en formato clave=valorlimit(opcional): Número máximo de resultados a devolver (por defecto: 20)
Devuelve:
- Lista de ofertas de volúmenes disponibles con:
- ID de oferta de volumen
- Capacidad de almacenamiento
- Costo por GB por mes
- Ubicación y confiabilidad
- Ancho de banda del disco
- Velocidades de Internet
9. label_instance(instance_id: int, label: str)
Establece una etiqueta en una instancia para facilitar su identificación.
Parámetros:
instance_id: ID de la instancia a etiquetarlabel: Texto de la etiqueta a establecer
Devuelve:
- Mensaje de éxito/fracaso
10. launch_instance_workflow(gpu_name: str, num_gpus: int, image: str, region: str = "", disk: float = 16.0, ssh: bool = True, jupyter: bool = False, direct: bool = True, label: str = "")
Lanza la mejor instancia de las ofertas de búsqueda según los parámetros dados (alternativa simplificada a create_instance).
Parámetros:
gpu_name: Nombre del modelo de GPU (por ejemplo, "RTX_4090")num_gpus: Número de GPUs requeridasimage: Imagen Docker a ejecutarregion(opcional): Preferencia de región geográficadisk(opcional): Tamaño del disco en GB (por defecto: 16.0)ssh(opcional): Habilitar acceso SSH (por defecto: True)jupyter(opcional): Habilitar Jupyter notebook (por defecto: False)direct(opcional): Usar conexiones directas (por defecto: True)label(opcional): Etiqueta para la instancia
Devuelve:
- Mensaje de éxito con detalles de la instancia o error
Ejemplo:
launch_instance_workflow(
gpu_name="RTX_4090",
num_gpus=2,
image="pytorch/pytorch:latest",
region="North_America",
disk=40.0,
ssh=True,
direct=True,
label="My Training Job"
)
11. prepay_instance(instance_id: int, amount: float)
Deposita créditos en una instancia reservada para obtener tarifas con descuento.
Parámetros:
instance_id: ID de la instancia a pagar por adelantadoamount: Cantidad de créditos a depositar
Devuelve:
- Detalles sobre la tasa de descuento y el período de cobertura
12. reboot_instance(instance_id: int)
Reinicia una instancia (detener/iniciar) sin perder la prioridad de GPU.
Parámetros:
instance_id: ID de la instancia a reiniciar
Devuelve:
- Mensaje de éxito/fracaso
13. recycle_instance(instance_id: int)
Recicla una instancia (destruir/crear desde una imagen recién extraída) sin perder la prioridad de GPU.
Parámetros:
instance_id: ID de la instancia a reciclar
Devuelve:
- Mensaje de éxito/fracaso
14. show_instance(instance_id: int)
Muestra información detallada sobre una instancia específica.
Parámetros:
instance_id: ID de la instancia a mostrar
Devuelve:
- Información detallada de la instancia que incluye:
- Estado y especificaciones
- Detalles de conexión (IP, SSH, Jupyter)
- Información de costo y tiempo de ejecución
- Detalles de configuración
15. logs(instance_id: int, tail: str = "1000", filter_text: str = "", daemon_logs: bool = False)
Obtiene los registros de una instancia.
Parámetros:
instance_id: ID de la instancia para obtener registrostail(opcional): Número de líneas desde el final de los registros (por defecto: "1000")filter_text(opcional): Filtro grep para entradas de registrodaemon_logs(opcional): Obtener registros del sistema daemon en lugar de registros del contenedor
Devuelve:
- Texto de registros de la instancia o mensaje de estado
16. attach_ssh(instance_id: int)
Adjunta una clave SSH a una instancia para acceso seguro.
Parámetros:
instance_id: ID de la instancia a la que adjuntar la clave SSH
Devuelve:
- Mensaje de éxito/fracaso
Ejemplos:
# Attach SSH key from configured public key file
attach_ssh(12345)
Notas:
- Utiliza el archivo de clave pública SSH configurado en la variable de entorno SSH_KEY_PUBLIC_FILE
- Solo se aceptan claves SSH públicas (no claves privadas)
- La clave SSH debe comenzar con el prefijo 'ssh-' (por ejemplo, ssh-rsa, ssh-ed25519)
- Después de adjuntarla, puedes conectarte por SSH a la instancia usando la clave privada correspondiente
17. search_templates()
Busca plantillas disponibles en Vast.ai.
Parámetros:
- Ninguno
Devuelve:
- Lista de plantillas disponibles con:
- ID y nombre de la plantilla
- Imagen Docker
- Descripción (si está disponible)
- Variables de entorno
- Configuración del tipo de ejecución
- Configuraciones de SSH y Jupyter
Ejemplo:
# Get all available templates
search_templates()
Notas:
- Las plantillas son entornos preconfigurados que simplifican la creación de instancias
- Las plantillas pueden incluir imágenes Docker específicas, configuraciones de entorno y scripts de inicio
18. execute_command(instance_id: int, command: str)
Ejecuta un comando remoto (restringido) solo disponible en instancias detenidas. Usa ssh para ejecutar comandos en instancias en ejecución.
Parámetros:
instance_id: ID de la instancia en la que ejecutar el comandocommand: Comando a ejecutar (limitado a ls, rm, du)
Devuelve:
- Salida del comando o mensaje de estado
Comandos disponibles:
ls: Listar el contenido del directoriorm: Eliminar archivos o directoriosdu: Resumir el uso del dispositivo para un conjunto de archivos
Ejemplos:
# List directory contents
execute_command(12345, "ls -l -o -r")
# Remove files
execute_command(12345, "rm -r home/delete_this.txt")
# Check disk usage
execute_command(12345, "du -d2 -h")
Notas:
- Solo funciona en instancias detenidas
- Para instancias en ejecución, usa ssh_execute_command en su lugar
- Limitado a comandos seguros específicos por seguridad
19. ssh_execute_command(remote_host: str, remote_user: str, remote_port: int, command: str)
Ejecuta un comando en un host remoto a través de SSH.
Parámetros:
remote_host: El nombre de host o dirección IP del servidor remotoremote_user: El nombre de usuario con el que conectarse (por ejemplo, 'root', 'ubuntu', 'ec2-user')remote_port: El número de puerto SSH (normalmente 22 o un puerto personalizado como 34608)command: El comando a ejecutar en el host remoto
Devuelve:
- Salida del comando con estado de salida, stdout y stderr
Ejemplo:
# Execute a command on a running instance
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="nvidia-smi"
)
Notas:
- Funciona con cualquier servidor accesible por SSH, no solo con instancias de Vast.ai
- Utiliza el archivo de clave privada SSH configurado en la variable de entorno SSH_KEY_FILE
- Maneja automáticamente diferentes tipos de claves SSH (RSA, Ed25519, ECDSA, DSS)
- Devuelve una salida detallada que incluye el estado de salida y tanto stdout como stderr
20. ssh_execute_background_command(remote_host: str, remote_user: str, remote_port: int, command: str, task_name: str = None)
Ejecuta un comando de larga duración en segundo plano en un host remoto a través de SSH usando nohup.
Parámetros:
remote_host: El nombre de host o dirección IP del servidor remotoremote_user: El nombre de usuario con el que conectarse (por ejemplo, 'root', 'ubuntu', 'ec2-user')remote_port: El número de puerto SSH (normalmente 22 o un puerto personalizado como 34608)command: El comando a ejecutar en segundo planotask_name(opcional): Nombre opcional para la tarea (para facilitar la identificación)
Devuelve:
- Información de la tarea que incluye ID de tarea, ID de proceso y ruta del archivo de registro
Ejemplo:
# Start a long-running training job
ssh_execute_background_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="python train.py --epochs 100",
task_name="training_job"
)
Notas:
- Devuelve task_id y process_id para monitoreo
- Crea archivos de registro en el servidor remoto para capturar la salida
- Usa ssh_check_background_task para monitorear el progreso
- Usa ssh_kill_background_task para detener si es necesario
21. ssh_check_background_task(remote_host: str, remote_user: str, remote_port: int, task_id: str, process_id: int, tail_lines: int = 50)
Verifica el estado de una tarea SSH en segundo plano y obtén su salida.
Parámetros:
remote_host: El nombre de host o dirección IP del servidor remotoremote_user: El nombre de usuario con el que conectarseremote_port: El número de puerto SSHtask_id: El ID de tarea devuelto por ssh_execute_background_commandprocess_id: El ID de proceso devuelto por ssh_execute_background_commandtail_lines(opcional): Número de líneas de registro recientes a mostrar (por defecto: 50) Devuelve:- Informe de estado con estado del proceso, salida de registros e información de progreso
Ejemplo:
# Check on a background task
ssh_check_background_task(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
task_id="training_job_a1b2c3d4",
process_id=12345,
tail_lines=100
)
Notas:
- Indica si la tarea sigue en ejecución o ha finalizado
- Muestra la salida de registros reciente de la tarea
- Proporciona el recuento total de líneas de registro para indicar el progreso
22. ssh_kill_background_task(remote_host: str, remote_user: str, remote_port: int, task_id: str, process_id: int)
Finaliza una tarea SSH en segundo plano en ejecución.
Parámetros:
remote_host: El nombre de host o dirección IP del servidor remotoremote_user: El nombre de usuario con el que conectarseremote_port: El número de puerto SSHtask_id: El ID de tarea devuelto por ssh_execute_background_commandprocess_id: El ID de proceso devuelto por ssh_execute_background_command
Devuelve:
- Estado de la operación de finalización y resultados de limpieza
Ejemplo:
# Stop a background task
ssh_kill_background_task(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
task_id="training_job_a1b2c3d4",
process_id=12345
)
Notas:
- Intenta una terminación gradual primero, luego una finalización forzada si es necesario
- Limpia automáticamente los archivos temporales de registro y PID
- Es seguro llamarlo incluso si el proceso ya ha finalizado
23. disable_sudo_password(remote_host: str, remote_user: str, remote_port: int)
Desactiva el requisito de contraseña de sudo para el grupo sudo en un host remoto mediante SSH.
Esta función modifica de forma segura el archivo sudoers para permitir acceso sudo sin contraseña a los usuarios del grupo sudo.
Parámetros:
remote_host: El nombre de host o dirección IP del servidor remotoremote_user: El nombre de usuario con el que conectarse (por ejemplo, 'root', 'ubuntu', 'ec2-user')remote_port: El número de puerto SSH (normalmente 22 o un puerto personalizado como 34608)
Devuelve:
- Estado detallado de la modificación de sudoers, incluyendo:
- Configuración de sudo anterior y nueva
- Resultados de validación
- Ubicación del archivo de respaldo
Ejemplo:
# Disable sudo password on a running instance
disable_sudo_password(
remote_host="ssh1.vast.ai",
remote_user="root",
remote_port=26378
)
Características de seguridad:
- Crea una copia de seguridad automática del archivo sudoers antes de la modificación
- Valida la sintaxis de sudoers con
visudo -cdespués de los cambios - Restaura automáticamente la copia de seguridad si la validación falla
- Muestra la configuración antes/después para verificación
Notas:
- Modifica sudoers a:
%sudo ALL=(ALL) NOPASSWD: ALL - Requiere que el usuario que se conecta tenga privilegios de sudo
- Los archivos de respaldo tienen marca de tiempo por seguridad
- Funciona con cualquier sistema Linux accesible por SSH
- Pruebe el cambio con
sudo -ldespués de la ejecución
24. configure_mcp_rules(auto_attach_ssh: bool = None, auto_label: bool = None, wait_for_ready: bool = None, label_prefix: str = None)
Configura las reglas de automatización de MCP que controlan los comportamientos automáticos durante la creación de instancias.
Parámetros:
auto_attach_ssh(opcional): Activar/desactivar la conexión automática de claves SSH para instancias SSH/Jupyterauto_label(opcional): Activar/desactivar el etiquetado automático de instanciaswait_for_ready(opcional): Activar/desactivar la espera de disponibilidad de la instancia después de la creaciónlabel_prefix(opcional): Establecer el prefijo para las etiquetas automáticas de instancias
Devuelve:
- Estado de configuración actual y cualquier cambio realizado
Ejemplo:
# Configure MCP rules
configure_mcp_rules(
auto_attach_ssh=True,
auto_label=True,
label_prefix="my-project",
wait_for_ready=True
)
# View current configuration
configure_mcp_rules()
Notas:
- Estas reglas afectan el comportamiento de create_instance y launch_instance_workflow
- La conexión automática de SSH se aplica solo cuando SSH o Jupyter está habilitado
- El etiquetado automático crea etiquetas con marca de tiempo cuando no se proporciona una etiqueta
- Esperar disponibilidad monitorea el estado de la instancia hasta que se vuelva "running"
Configuración
Configuración de la clave API
El servidor requiere una clave API de Vast.ai. Puede configurarla de varias maneras:
-
Variable de entorno:
export VAST_API_KEY="your_api_key_here" -
Archivo de clave API: Cree
~/.vastai_api_keycon su clave API -
Codificada (para desarrollo): El servidor actual tiene una clave API codificada para fines de prueba
Ejecutar el servidor
# Run with default settings (localhost:8000)
python vast_mcp_server.py
# Run with custom host and port
python vast_mcp_server.py --host 0.0.0.0 --port 9000
Flujos de trabajo comunes
1. Flujo de trabajo básico de creación de instancias
# 1. Check your account
show_user_info()
# 2. Search for available offers
search_offers("gpu_name=RTX_4090", limit=10)
# 3. Create instance from an offer
create_instance(
offer_id=12345,
image="pytorch/pytorch:latest",
disk=20.0,
ssh=True,
direct=True
)
# 4. Check instance status
show_instances()
2. Gestión de instancias
# View all instances
show_instances()
# Stop an instance
stop_instance(instance_id=67890)
# Start it again later
start_instance(instance_id=67890)
# Permanently destroy when done
destroy_instance(instance_id=67890)
3. Búsqueda de almacenamiento
# Search for storage volumes
search_volumes("disk_space>=100", limit=5)
4. Gestión avanzada de instancias
# Launch instance with specific GPU requirements (streamlined approach)
launch_instance_workflow(
gpu_name="RTX_4090",
num_gpus=2,
image="pytorch/pytorch:latest",
region="North_America",
disk=40.0,
ssh=True,
direct=True,
label="Training Job"
)
# Get detailed information about an instance
show_instance(instance_id=12345)
# Set a label for easier identification
label_instance(instance_id=12345, label="Production Model")
# Get instance logs
logs(instance_id=12345, tail="500", filter_text="error")
# Reboot instance without losing GPU priority
reboot_instance(instance_id=12345)
5. Monitoreo y mantenimiento de instancias
# Monitor instance logs with filtering
logs(instance_id=12345, filter_text="WARNING|ERROR", tail="100")
# Check instance details
show_instance(instance_id=12345)
# Recycle instance to update to latest image
recycle_instance(instance_id=12345)
# Prepay for discounted rates
prepay_instance(instance_id=12345, amount=50.0)
6. Gestión de acceso SSH
# Create instance with SSH enabled
create_instance(
offer_id=12345,
image="ubuntu:22.04",
ssh=True,
direct=True,
label="SSH Server"
)
# Attach your SSH key for access
attach_ssh(instance_id=67890)
# Get instance details including SSH connection info
show_instance(instance_id=67890)
# Monitor instance through logs
logs(instance_id=67890, tail="50")
7. Exploración de plantillas
# Browse available templates
search_templates()
8. Ejecución de comandos en instancias
# For stopped instances, use constrained execute_command
stop_instance(instance_id=12345)
# Execute safe commands on stopped instance
execute_command(instance_id=12345, command="ls -la /workspace")
execute_command(instance_id=12345, command="du -sh /workspace")
execute_command(instance_id=12345, command="rm -rf /tmp/old_files")
# For running instances, use SSH commands
start_instance(instance_id=12345)
# Get instance connection details
instance_details = show_instance(instance_id=12345)
# Extract SSH host, port from the output
# Execute commands via SSH on running instance
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="nvidia-smi"
)
# Check system resources
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="df -h && free -h && ps aux"
)
9. Gestión de tareas en segundo plano
# Start a long-running training job in background
task_info = ssh_execute_background_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="python train.py --epochs 100 --batch-size 32",
task_name="pytorch_training"
)
# Extract task_id and process_id from task_info output
# Format: "Task ID: pytorch_training_a1b2c3d4" and "Process ID: 12345"
# Monitor progress periodically
ssh_check_background_task(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
task_id="pytorch_training_a1b2c3d4",
process_id=12345,
tail_lines=100
)
# Stop the task if needed
ssh_kill_background_task(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
task_id="pytorch_training_a1b2c3d4",
process_id=12345
)
10. Flujo de trabajo completo de entrenamiento de ML
# 1. Find and create a GPU instance
search_offers("gpu_name=RTX_4090", limit=5)
create_instance(
offer_id=12345,
image="pytorch/pytorch:latest",
disk=50.0,
ssh=True,
direct=True,
env={},
label="ML Training"
)
# 2. Get connection details
instance_details = show_instance(instance_id=67890)
# 3. Set up the environment
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="pip install wandb tensorboard"
)
# 4. Upload your training code (assume already done)
# 5. Start training in background
training_task = ssh_execute_background_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="cd /workspace && python train.py --config config.yaml",
task_name="main_training"
)
# 6. Monitor training progress
ssh_check_background_task(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
task_id="main_training_a1b2c3d4",
process_id=12345,
tail_lines=50
)
# 7. Check GPU utilization
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="nvidia-smi"
)
# 8. When training is complete, save results
ssh_execute_command(
remote_host="116.43.148.85",
remote_user="root",
remote_port=26378,
command="tar -czf model_results.tar.gz /workspace/outputs"
)
# 9. Clean up
destroy_instance(instance_id=67890)
Sintaxis de consulta
Al buscar ofertas o volúmenes, puede usar estos operadores:
=o==- Igual a!=- Diferente de>- Mayor que>=- Mayor o igual que<- Menor que<=- Menor o igual que
Ejemplos de consultas:
"gpu_name=RTX_4090 num_gpus>=2"- RTX 4090 con 2 o más GPU"cpu_ram>64 reliability2>=99"- Alta RAM y fiabilidad"dph_total<=1.0"- Costo inferior a $1/hora
Manejo de errores
Todos los métodos incluyen manejo de errores y devolverán mensajes de error descriptivos si:
- La clave API falta o no es válida
- Ocurren problemas de conectividad de red
- Se proporcionan parámetros no válidos
- La API de Vast.ai devuelve errores
Consulte los registros del servidor para obtener información detallada sobre errores durante el desarrollo.