paitient-secure-model
Version:
PaiTIENT - HIPAA/SOC2 compliant secure model hosting SDK
111 lines (90 loc) • 2.93 kB
JavaScript
const { SecureModelClient } = require('../lib/client');
// Parse command line arguments
const args = process.argv.slice(2);
const command = args[0];
// Basic help menu
function displayHelp() {
console.log(`
PaiTIENT Secure Model Service CLI v0.0.1
----------------------------------------
HIPAA/SOC2 compliant secure model hosting with hybrid encryption (AES-256-GCM + RSA-4096)
USAGE:
secure-model [command] [options]
COMMANDS:
deploy Deploy a secure model
generate Generate text from a deployed model
status Check deployment status
subscription Check subscription status
help Display this help message
ENVIRONMENT VARIABLES:
PAITIENT_API_KEY API key for authentication
PAITIENT_CLIENT_ID Client ID for model ownership
For more information, visit: https://docs.paitient.ai
`);
}
// Main CLI function
async function main() {
// Check for API key and client ID
const apiKey = process.env.PAITIENT_API_KEY;
const clientId = process.env.PAITIENT_CLIENT_ID;
if (!command || command === 'help') {
return displayHelp();
}
if (!apiKey) {
console.error('Error: PAITIENT_API_KEY environment variable is required');
console.error('Set it with: export PAITIENT_API_KEY=your-api-key');
process.exit(1);
}
if (!clientId) {
console.error('Error: PAITIENT_CLIENT_ID environment variable is required');
console.error('Set it with: export PAITIENT_CLIENT_ID=your-client-id');
process.exit(1);
}
// Initialize client
const client = new SecureModelClient({
apiKey,
clientId
});
try {
// Execute requested command
switch (command) {
case 'deploy':
const deploymentResult = await client.deploy({
modelName: args[1] || 'ZimaBlueAI/HuatuoGPT-o1-8B',
useGpu: args.includes('--use-gpu')
});
console.log(JSON.stringify(deploymentResult, null, 2));
break;
case 'generate':
if (!args[1]) {
console.error('Error: Prompt is required');
console.error('Usage: secure-model generate "Your prompt here"');
process.exit(1);
}
const generateResult = await client.generate({
prompt: args[1],
maxTokens: 100
});
console.log(generateResult.text);
break;
case 'subscription':
const subscriptionStatus = await client.checkSubscription();
console.log(JSON.stringify(subscriptionStatus, null, 2));
break;
default:
console.error(`Unknown command: ${command}`);
displayHelp();
process.exit(1);
}
} catch (error) {
console.error(`Error: ${error.message}`);
process.exit(1);
}
}
// Run the CLI
main().catch(error => {
console.error(`Fatal error: ${error.message}`);
process.exit(1);
});
;