@haiec/anthropic
v1.0.0
Published
Anthropic Claude SDK wrapper with automatic usage tracking and cost calculation for HAIEC AI Inventory
Maintainers
Readme
@haiec/anthropic
Anthropic Claude SDK wrapper with automatic usage tracking and cost calculation for HAIEC AI Inventory.
Features
- ✅ Automatic Usage Tracking - Logs every API call to HAIEC
- ✅ Cost Calculation - Calculates costs based on model pricing
- ✅ Streaming Support - Works with both regular and streaming responses
- ✅ Low Overhead - <10ms additional latency
- ✅ Error Handling - Gracefully handles tracking failures
- ✅ Drop-in Replacement - Works exactly like the official Anthropic SDK
Installation
npm install @haiec/anthropic @anthropic-ai/sdkUsage
Basic Example
import TrackedAnthropic from '@haiec/anthropic';
const client = new TrackedAnthropic({
apiKey: process.env.ANTHROPIC_API_KEY!,
haiecApiKey: process.env.HAIEC_API_KEY!,
});
const response = await client.messages.create({
model: 'claude-3-opus-20240229',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello, Claude!' }],
});
console.log(response.content[0].text);Streaming Example
const stream = await client.messages.stream({
model: 'claude-3-sonnet-20240229',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Tell me a story' }],
});
for await (const event of stream) {
if (event.type === 'content_block_delta') {
process.stdout.write(event.delta.text);
}
}
const finalMessage = await stream.finalMessage();
// Usage is automatically logged when stream completesConfiguration
const client = new TrackedAnthropic({
apiKey: 'sk-ant-...', // Your Anthropic API key
haiecApiKey: 'haiec_...', // Your HAIEC API key
haiecEndpoint: 'https://haiec.com/api/v1/inventory/usage/log', // Optional: Custom endpoint
});Self-Hosted HAIEC
const client = new TrackedAnthropic({
apiKey: process.env.ANTHROPIC_API_KEY!,
haiecApiKey: process.env.HAIEC_API_KEY!,
haiecEndpoint: 'https://your-haiec-instance.com/api/v1/inventory/usage/log',
});Supported Models & Pricing
| Model | Input Cost (per 1M tokens) | Output Cost (per 1M tokens) | |-------|---------------------------|----------------------------| | claude-3-opus-20240229 | $15.00 | $75.00 | | claude-3-sonnet-20240229 | $3.00 | $15.00 | | claude-3-haiku-20240307 | $0.25 | $1.25 | | claude-2.1 | $8.00 | $24.00 | | claude-2.0 | $8.00 | $24.00 | | claude-instant-1.2 | $0.80 | $2.40 |
Pricing is automatically updated based on Anthropic's latest rates.
What Gets Tracked
For each API call, the following data is logged to HAIEC:
- Provider:
anthropic - Model: e.g.,
claude-3-opus-20240229 - Endpoint:
messagesormessages.stream - Request Tokens: Number of input tokens
- Response Tokens: Number of output tokens
- Cost: Calculated cost in USD
- Latency: Response time in milliseconds
- Status Code: HTTP status code
- Error Message: If the request failed
Performance
- Overhead: <10ms per request
- Async Logging: Usage is logged asynchronously to avoid blocking
- Streaming: No additional overhead for streaming responses
- Error Handling: Tracking failures don't affect your API calls
Error Handling
If usage tracking fails, the error is logged to console but your Anthropic API call continues normally:
try {
const response = await client.messages.create({...});
// Your response is returned even if tracking fails
} catch (error) {
// Only Anthropic API errors are thrown
}API Compatibility
This wrapper maintains 100% compatibility with the official Anthropic SDK. All methods and parameters work exactly the same.
Streaming Support
Both regular and streaming responses are fully supported:
// Regular response
const response = await client.messages.create({...});
// Streaming response
const stream = await client.messages.stream({...});
for await (const event of stream) {
// Process events
}Usage is automatically tracked for both modes.
Getting Your HAIEC API Key
- Sign up at haiec.com
- Navigate to Settings > API Keys
- Click "Create API Key"
- Copy your key and add it to your environment variables
Comparison with OpenAI Wrapper
| Feature | @haiec/openai | @haiec/anthropic | |---------|--------------|------------------| | Provider | OpenAI | Anthropic | | Streaming | ✅ | ✅ | | Cost Tracking | ✅ | ✅ | | Error Handling | ✅ | ✅ | | Overhead | <10ms | <10ms |
Support
- Documentation: docs.haiec.com
- Issues: GitHub Issues
- Email: [email protected]
License
MIT
