# Advanced Features

### Custom Logging

```typescript
import { Logger } from './ai-model-lib';

class MyCustomLogger implements Logger {
  log(type: string, message: string, data?: unknown): void {
    // Send to your logging service
    myLoggingService.send({
      level: type.toLowerCase(),
      message,
      data,
      timestamp: new Date().toISOString()
    });
  }
  
  enable(enabled: boolean): void {
    // Enable/disable your logger
    myLoggingService.setEnabled(enabled);
  }
}

const ai = new AIModel(config, new MyCustomLogger());
```

### Custom Providers

```typescript
// Register custom AI provider
ProviderRegistry.registerProvider('my-company-ai', {
  name: 'My Company AI',
  baseURL: 'https://api.mycompany.ai/v1',
  defaultModel: 'company-model-v2',
  headers: {
    'X-API-Version': '2024-01-01',
    'X-Client-ID': 'my-app'
  }
});

// Use custom provider
const customAI = new AIModel({
  apiKey: 'company-api-key',
  provider: 'my-company-ai',
  model: 'company-model-v2-premium'
});
```

### Request Options Override

```typescript
// Override defaults per request
const response = await ai.send({
  temperature: 0.9,        // More creative
  maxTokens: 2000,         // Longer response
  model: 'gpt-4'           // Different model
});

// Different options for streaming
await ai.stream(
  chunk => console.log(chunk),
  { temperature: 0.3 }  // More deterministic
);
```