paitient-secure-model
Version:
PaiTIENT - HIPAA/SOC2 compliant secure model hosting SDK
121 lines (106 loc) • 2.9 kB
TypeScript
// Type definitions for secure-model-sdk
// Project: https://github.com/yourusername/secure-model-service
// Definitions by: Your Name <your-github-url>
import { EventEmitter } from 'events';
export interface ModelConfig {
model_name: string;
client_id: string;
environment: 'dev' | 'staging' | 'prod';
aws_region?: string;
instance_type?: string;
}
export interface DeploymentOptions {
model_config: ModelConfig;
use_gpu?: boolean;
subscription_tier?: 'basic' | 'pro' | 'enterprise';
custom_domain?: string;
enable_monitoring?: boolean;
auto_scale?: boolean;
min_replicas?: number;
max_replicas?: number;
}
export interface GenerateOptions {
prompt: string;
max_tokens?: number;
temperature?: number;
top_p?: number;
top_k?: number;
stop_sequences?: string[];
repetition_penalty?: number;
streaming?: boolean;
}
export interface ModelStatus {
status: string;
model_info: {
client_id: string;
model_name: string;
device: string;
uptime: string;
last_updated: string;
};
}
export interface TokenUsage {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
}
export interface GenerateResponse {
text: string;
usage: TokenUsage;
finish_reason?: string;
}
export interface SubscriptionStatus {
status: string;
is_active: boolean;
subscription_tier: string;
expiration_date?: string;
features?: string[];
}
export interface DeploymentResult {
deployment_id: string;
status: string;
endpoint?: string;
api_key?: string;
created_at: string;
error?: string;
}
export interface FineTuneOptions {
base_model: string;
dataset_path: string;
lora_rank?: number;
learning_rate?: number;
num_epochs?: number;
batch_size?: number;
output_dir?: string;
}
export interface FineTuneResult {
job_id: string;
status: string;
model_path?: string;
metrics?: {
loss: number;
accuracy?: number;
[key: string]: any;
};
error?: string;
}
export interface SecureModelClientOptions {
apiKey?: string;
clientId?: string;
endpoint?: string;
region?: string;
timeout?: number;
}
export class SecureModelClient {
constructor(options: SecureModelClientOptions);
deploy(options: DeploymentOptions): Promise<DeploymentResult>;
deleteDeployment(deploymentId: string): Promise<{ success: boolean; message: string }>;
getDeploymentStatus(deploymentId: string): Promise<DeploymentResult>;
listDeployments(): Promise<DeploymentResult[]>;
generate(options: GenerateOptions, deploymentId?: string): Promise<GenerateResponse>;
generateStream(options: GenerateOptions, deploymentId?: string): EventEmitter;
finetune(options: FineTuneOptions): Promise<FineTuneResult>;
getFinetuneStatus(jobId: string): Promise<FineTuneResult>;
checkSubscription(): Promise<SubscriptionStatus>;
getStatus(deploymentId?: string): Promise<ModelStatus>;
}