Files
simple-ai-provider/examples/basic-usage.ts

82 lines
2.4 KiB
TypeScript

/**
* Basic usage example for Simple AI Provider
* Demonstrates how to use the Claude provider
*/
import { createClaudeProvider, AIProviderError, AIErrorType } from '../src/index.js';
async function basicExample() {
// Replace with your actual API key
const apiKey = process.env.ANTHROPIC_API_KEY || 'your-api-key-here';
try {
// Create and initialize the Claude provider
console.log('Creating Claude provider...');
const claude = createClaudeProvider(apiKey, {
defaultModel: 'claude-3-5-haiku-20241022', // Using faster model for demo
timeout: 30000
});
console.log('Initializing provider...');
await claude.initialize();
console.log('Provider info:', claude.getInfo());
// Basic completion
console.log('\n--- Basic Completion ---');
const response = await claude.complete({
messages: [
{ role: 'system', content: 'You are a helpful assistant that responds concisely.' },
{ role: 'user', content: 'What is TypeScript?' }
],
maxTokens: 150,
temperature: 0.7
});
console.log('Response:', response.content);
console.log('Usage:', response.usage);
// Streaming example
console.log('\n--- Streaming Example ---');
console.log('Streaming response for: "Write a haiku about coding"\n');
for await (const chunk of claude.stream({
messages: [
{ role: 'user', content: 'Write a haiku about coding' }
],
maxTokens: 100
})) {
if (!chunk.isComplete) {
process.stdout.write(chunk.content);
} else {
console.log('\n\nStream completed. Usage:', chunk.usage);
}
}
} catch (error) {
if (error instanceof AIProviderError) {
console.error(`AI Provider Error (${error.type}):`, error.message);
switch (error.type) {
case AIErrorType.AUTHENTICATION:
console.error('Please check your API key.');
break;
case AIErrorType.RATE_LIMIT:
console.error('You are being rate limited. Please wait and try again.');
break;
case AIErrorType.INVALID_REQUEST:
console.error('Invalid request parameters.');
break;
default:
console.error('An unexpected error occurred.');
}
} else {
console.error('Unexpected error:', error);
}
}
}
// Run the example
if (import.meta.main) {
basicExample().catch(console.error);
}