@stackbilt/llm-providers 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +261 -0
- package/dist/errors.d.ts +79 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +183 -0
- package/dist/errors.js.map +1 -0
- package/dist/factory.d.ts +95 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +418 -0
- package/dist/factory.js.map +1 -0
- package/dist/index.d.ts +137 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +263 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/anthropic.d.ts +38 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +378 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +107 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +230 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/cerebras.d.ts +30 -0
- package/dist/providers/cerebras.d.ts.map +1 -0
- package/dist/providers/cerebras.js +292 -0
- package/dist/providers/cerebras.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +47 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +544 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/groq.d.ts +30 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +222 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/openai.d.ts +36 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +331 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/types.d.ts +238 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +111 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +365 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/cost-tracker.d.ts +130 -0
- package/dist/utils/cost-tracker.d.ts.map +1 -0
- package/dist/utils/cost-tracker.js +272 -0
- package/dist/utils/cost-tracker.js.map +1 -0
- package/dist/utils/credit-ledger.d.ts +161 -0
- package/dist/utils/credit-ledger.d.ts.map +1 -0
- package/dist/utils/credit-ledger.js +463 -0
- package/dist/utils/credit-ledger.js.map +1 -0
- package/dist/utils/retry.d.ts +46 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +125 -0
- package/dist/utils/retry.js.map +1 -0
- package/package.json +57 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Providers Package
|
|
3
|
+
* Unified interface for OpenAI, Anthropic, and Cloudflare AI providers
|
|
4
|
+
* with intelligent fallback logic and cost optimization
|
|
5
|
+
*/
|
|
6
|
+
// Provider implementations
|
|
7
|
+
export { BaseProvider } from './providers/base';
|
|
8
|
+
export { OpenAIProvider } from './providers/openai';
|
|
9
|
+
export { AnthropicProvider } from './providers/anthropic';
|
|
10
|
+
export { CloudflareProvider } from './providers/cloudflare';
|
|
11
|
+
export { CerebrasProvider } from './providers/cerebras';
|
|
12
|
+
export { GroqProvider } from './providers/groq';
|
|
13
|
+
// Factory pattern
|
|
14
|
+
export { LLMProviderFactory, createLLMProviderFactory, createCostOptimizedFactory } from './factory';
|
|
15
|
+
// Local imports for use within this file
|
|
16
|
+
import { LLMProviderFactory } from './factory';
|
|
17
|
+
import { createCostOptimizedFactory } from './factory';
|
|
18
|
+
import { ConfigurationError } from './errors';
|
|
19
|
+
// Error classes
|
|
20
|
+
export { LLMProviderError, RateLimitError, QuotaExceededError, AuthenticationError, InvalidRequestError, ModelNotFoundError, TimeoutError, NetworkError, ServerError, ContentFilterError, TokenLimitError, ConfigurationError, CircuitBreakerOpenError, LLMErrorFactory } from './errors';
|
|
21
|
+
// Utility classes
|
|
22
|
+
export { RetryManager, defaultRetryManager, withRetry, retry } from './utils/retry';
|
|
23
|
+
export { CircuitBreaker, CircuitBreakerManager, defaultCircuitBreakerManager } from './utils/circuit-breaker';
|
|
24
|
+
export { CostTracker, CostOptimizer, defaultCostTracker } from './utils/cost-tracker';
|
|
25
|
+
export { CreditLedger } from './utils/credit-ledger';
|
|
26
|
+
/**
|
|
27
|
+
* Main LLMProviders class for easy usage
|
|
28
|
+
*/
|
|
29
|
+
export class LLMProviders {
|
|
30
|
+
factory;
|
|
31
|
+
constructor(config) {
|
|
32
|
+
this.factory = new LLMProviderFactory(config);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Auto-discover providers from a Cloudflare Worker `env` object.
|
|
36
|
+
*
|
|
37
|
+
* Scans for known API-key environment variables and bindings, configures
|
|
38
|
+
* only the providers whose keys are present, and returns a ready-to-use
|
|
39
|
+
* `LLMProviders` instance.
|
|
40
|
+
*
|
|
41
|
+
* @throws ConfigurationError if no providers are detected
|
|
42
|
+
*/
|
|
43
|
+
static fromEnv(env, overrides = {}) {
|
|
44
|
+
const config = {};
|
|
45
|
+
if (typeof env.ANTHROPIC_API_KEY === 'string' && env.ANTHROPIC_API_KEY) {
|
|
46
|
+
config.anthropic = { apiKey: env.ANTHROPIC_API_KEY };
|
|
47
|
+
}
|
|
48
|
+
if (typeof env.OPENAI_API_KEY === 'string' && env.OPENAI_API_KEY) {
|
|
49
|
+
config.openai = { apiKey: env.OPENAI_API_KEY };
|
|
50
|
+
}
|
|
51
|
+
if (typeof env.GROQ_API_KEY === 'string' && env.GROQ_API_KEY) {
|
|
52
|
+
config.groq = { apiKey: env.GROQ_API_KEY };
|
|
53
|
+
}
|
|
54
|
+
if (typeof env.CEREBRAS_API_KEY === 'string' && env.CEREBRAS_API_KEY) {
|
|
55
|
+
config.cerebras = { apiKey: env.CEREBRAS_API_KEY };
|
|
56
|
+
}
|
|
57
|
+
if (env.AI != null && typeof env.AI === 'object') {
|
|
58
|
+
config.cloudflare = { ai: env.AI };
|
|
59
|
+
}
|
|
60
|
+
const detected = [
|
|
61
|
+
config.anthropic && 'anthropic',
|
|
62
|
+
config.openai && 'openai',
|
|
63
|
+
config.groq && 'groq',
|
|
64
|
+
config.cerebras && 'cerebras',
|
|
65
|
+
config.cloudflare && 'cloudflare',
|
|
66
|
+
].filter(Boolean);
|
|
67
|
+
if (detected.length === 0) {
|
|
68
|
+
throw new ConfigurationError('fromEnv', 'No LLM providers detected in env. Expected at least one of: ' +
|
|
69
|
+
'ANTHROPIC_API_KEY, OPENAI_API_KEY, GROQ_API_KEY, CEREBRAS_API_KEY, or AI binding.');
|
|
70
|
+
}
|
|
71
|
+
if (overrides.defaultProvider !== undefined) {
|
|
72
|
+
config.defaultProvider = overrides.defaultProvider;
|
|
73
|
+
}
|
|
74
|
+
if (overrides.costOptimization !== undefined) {
|
|
75
|
+
config.costOptimization = overrides.costOptimization;
|
|
76
|
+
}
|
|
77
|
+
if (overrides.enableCircuitBreaker !== undefined) {
|
|
78
|
+
config.enableCircuitBreaker = overrides.enableCircuitBreaker;
|
|
79
|
+
}
|
|
80
|
+
if (overrides.enableRetries !== undefined) {
|
|
81
|
+
config.enableRetries = overrides.enableRetries;
|
|
82
|
+
}
|
|
83
|
+
if (overrides.fallbackRules !== undefined) {
|
|
84
|
+
config.fallbackRules = overrides.fallbackRules;
|
|
85
|
+
}
|
|
86
|
+
if (overrides.ledger !== undefined) {
|
|
87
|
+
config.ledger = overrides.ledger;
|
|
88
|
+
}
|
|
89
|
+
return new LLMProviders(config);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Generate response with automatic provider selection and fallback
|
|
93
|
+
*/
|
|
94
|
+
async generateResponse(request) {
|
|
95
|
+
return this.factory.generateResponse(request);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get specific provider instance
|
|
99
|
+
*/
|
|
100
|
+
getProvider(name) {
|
|
101
|
+
return this.factory.getProvider(name);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get all available providers
|
|
105
|
+
*/
|
|
106
|
+
getAvailableProviders() {
|
|
107
|
+
return this.factory.getAvailableProviders();
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get provider health status
|
|
111
|
+
*/
|
|
112
|
+
async getHealth() {
|
|
113
|
+
return this.factory.getProviderHealth();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get cost analytics
|
|
117
|
+
*/
|
|
118
|
+
getCostAnalytics() {
|
|
119
|
+
return this.factory.getCostAnalytics();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Reset all metrics and circuit breakers
|
|
123
|
+
*/
|
|
124
|
+
reset() {
|
|
125
|
+
this.factory.reset();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Update configuration
|
|
129
|
+
*/
|
|
130
|
+
updateConfig(config) {
|
|
131
|
+
this.factory.updateConfig(config);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create LLMProviders instance with cost optimization
|
|
136
|
+
*/
|
|
137
|
+
export function createCostOptimizedLLMProviders(config) {
|
|
138
|
+
const factory = createCostOptimizedFactory(config);
|
|
139
|
+
return new LLMProviders(config);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create LLMProviders instance with basic configuration
|
|
143
|
+
*/
|
|
144
|
+
export function createLLMProviders(config) {
|
|
145
|
+
return new LLMProviders(config);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Default export for convenience
|
|
149
|
+
*/
|
|
150
|
+
export default LLMProviders;
|
|
151
|
+
/**
|
|
152
|
+
* Version and metadata
|
|
153
|
+
*/
|
|
154
|
+
export const VERSION = '0.1.0';
|
|
155
|
+
export const SUPPORTED_PROVIDERS = ['openai', 'anthropic', 'cloudflare', 'cerebras', 'groq'];
|
|
156
|
+
/**
|
|
157
|
+
* Common model mappings for easy reference
|
|
158
|
+
*/
|
|
159
|
+
export const MODELS = {
|
|
160
|
+
// OpenAI models
|
|
161
|
+
GPT_4O: 'gpt-4o',
|
|
162
|
+
GPT_4O_MINI: 'gpt-4o-mini',
|
|
163
|
+
GPT_4_TURBO: 'gpt-4-turbo',
|
|
164
|
+
GPT_4: 'gpt-4',
|
|
165
|
+
GPT_3_5_TURBO: 'gpt-3.5-turbo',
|
|
166
|
+
// Anthropic models
|
|
167
|
+
CLAUDE_3_5_SONNET: 'claude-3-5-sonnet-20241022',
|
|
168
|
+
CLAUDE_3_5_HAIKU: 'claude-3-5-haiku-20241022',
|
|
169
|
+
CLAUDE_3_OPUS: 'claude-3-opus-20240229',
|
|
170
|
+
CLAUDE_3_SONNET: 'claude-3-sonnet-20240229',
|
|
171
|
+
CLAUDE_3_HAIKU: 'claude-3-haiku-20240307',
|
|
172
|
+
// Cloudflare models
|
|
173
|
+
LLAMA_3_1_8B: '@cf/meta/llama-3.1-8b-instruct',
|
|
174
|
+
LLAMA_3_1_70B: '@cf/meta/llama-3.1-70b-instruct',
|
|
175
|
+
LLAMA_3_8B: '@cf/meta/llama-3-8b-instruct',
|
|
176
|
+
MISTRAL_7B: '@cf/mistral/mistral-7b-instruct-v0.1',
|
|
177
|
+
TINY_LLAMA: '@cf/tinyllama/tinyllama-1.1b-chat-v1.0',
|
|
178
|
+
// Cerebras models
|
|
179
|
+
CEREBRAS_LLAMA_3_1_8B: 'llama-3.1-8b',
|
|
180
|
+
CEREBRAS_LLAMA_3_3_70B: 'llama-3.3-70b',
|
|
181
|
+
CEREBRAS_ZAI_GLM_4_7: 'zai-glm-4.7',
|
|
182
|
+
CEREBRAS_QWEN_3_235B: 'qwen-3-235b-a22b-instruct-2507',
|
|
183
|
+
// Groq models
|
|
184
|
+
GROQ_LLAMA_3_3_70B_VERSATILE: 'llama-3.3-70b-versatile',
|
|
185
|
+
GROQ_LLAMA_3_1_8B_INSTANT: 'llama-3.1-8b-instant'
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Model recommendations by use case
|
|
189
|
+
*/
|
|
190
|
+
export const MODEL_RECOMMENDATIONS = {
|
|
191
|
+
// Cost-optimized models
|
|
192
|
+
COST_EFFECTIVE: [
|
|
193
|
+
MODELS.CEREBRAS_LLAMA_3_1_8B,
|
|
194
|
+
MODELS.TINY_LLAMA,
|
|
195
|
+
MODELS.CLAUDE_3_5_HAIKU,
|
|
196
|
+
MODELS.GPT_4O_MINI
|
|
197
|
+
],
|
|
198
|
+
// High-performance models
|
|
199
|
+
HIGH_PERFORMANCE: [
|
|
200
|
+
MODELS.CEREBRAS_ZAI_GLM_4_7,
|
|
201
|
+
MODELS.GPT_4O,
|
|
202
|
+
MODELS.CLAUDE_3_5_SONNET,
|
|
203
|
+
MODELS.CEREBRAS_QWEN_3_235B,
|
|
204
|
+
MODELS.LLAMA_3_1_70B
|
|
205
|
+
],
|
|
206
|
+
// Balanced models
|
|
207
|
+
BALANCED: [
|
|
208
|
+
MODELS.GPT_3_5_TURBO,
|
|
209
|
+
MODELS.CLAUDE_3_HAIKU,
|
|
210
|
+
MODELS.LLAMA_3_1_8B
|
|
211
|
+
],
|
|
212
|
+
// Tool/function calling
|
|
213
|
+
TOOL_CALLING: [
|
|
214
|
+
MODELS.GPT_4O,
|
|
215
|
+
MODELS.CLAUDE_3_5_SONNET,
|
|
216
|
+
MODELS.CEREBRAS_ZAI_GLM_4_7,
|
|
217
|
+
MODELS.CEREBRAS_QWEN_3_235B,
|
|
218
|
+
MODELS.GPT_4_TURBO
|
|
219
|
+
],
|
|
220
|
+
// Long context tasks
|
|
221
|
+
LONG_CONTEXT: [
|
|
222
|
+
MODELS.CLAUDE_3_5_SONNET,
|
|
223
|
+
MODELS.GPT_4_TURBO,
|
|
224
|
+
MODELS.CLAUDE_3_OPUS
|
|
225
|
+
]
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Utility function to get recommended model for a use case
|
|
229
|
+
*/
|
|
230
|
+
export function getRecommendedModel(useCase, availableProviders) {
|
|
231
|
+
const recommendations = MODEL_RECOMMENDATIONS[useCase];
|
|
232
|
+
for (const model of recommendations) {
|
|
233
|
+
// Check if we have the provider for this model
|
|
234
|
+
if (model.startsWith('gpt-') && availableProviders.includes('openai')) {
|
|
235
|
+
return model;
|
|
236
|
+
}
|
|
237
|
+
if (model.includes('claude') && availableProviders.includes('anthropic')) {
|
|
238
|
+
return model;
|
|
239
|
+
}
|
|
240
|
+
if (model.startsWith('@cf/') && availableProviders.includes('cloudflare')) {
|
|
241
|
+
return model;
|
|
242
|
+
}
|
|
243
|
+
if ((model.startsWith('llama-3.1-8b') || model.startsWith('llama-3.3-70b')
|
|
244
|
+
|| model.startsWith('zai-glm') || model.startsWith('qwen-3-235b')) && availableProviders.includes('cerebras')) {
|
|
245
|
+
return model;
|
|
246
|
+
}
|
|
247
|
+
if ((model.includes('-versatile') || model.includes('-instant')) && availableProviders.includes('groq')) {
|
|
248
|
+
return model;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// Fallback to first available provider's default model
|
|
252
|
+
if (availableProviders.includes('cloudflare')) {
|
|
253
|
+
return MODELS.LLAMA_3_1_8B;
|
|
254
|
+
}
|
|
255
|
+
if (availableProviders.includes('anthropic')) {
|
|
256
|
+
return MODELS.CLAUDE_3_HAIKU;
|
|
257
|
+
}
|
|
258
|
+
if (availableProviders.includes('openai')) {
|
|
259
|
+
return MODELS.GPT_3_5_TURBO;
|
|
260
|
+
}
|
|
261
|
+
throw new Error('No available providers configured');
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic Provider
|
|
3
|
+
* Implementation for Claude models with streaming and tools support
|
|
4
|
+
*/
|
|
5
|
+
import type { LLMRequest, LLMResponse, AnthropicConfig, ModelCapabilities } from '../types';
|
|
6
|
+
import { BaseProvider } from './base';
|
|
7
|
+
export declare class AnthropicProvider extends BaseProvider {
|
|
8
|
+
name: string;
|
|
9
|
+
models: string[];
|
|
10
|
+
supportsStreaming: boolean;
|
|
11
|
+
supportsTools: boolean;
|
|
12
|
+
supportsBatching: boolean;
|
|
13
|
+
private apiKey;
|
|
14
|
+
private baseUrl;
|
|
15
|
+
private version;
|
|
16
|
+
constructor(config: AnthropicConfig);
|
|
17
|
+
generateResponse(request: LLMRequest): Promise<LLMResponse>;
|
|
18
|
+
validateConfig(): boolean;
|
|
19
|
+
getModels(): string[];
|
|
20
|
+
estimateCost(request: LLMRequest): number;
|
|
21
|
+
healthCheck(): Promise<boolean>;
|
|
22
|
+
protected getModelCapabilities(): Record<string, ModelCapabilities>;
|
|
23
|
+
private makeAnthropicRequest;
|
|
24
|
+
private formatRequest;
|
|
25
|
+
private formatResponse;
|
|
26
|
+
private mapStopReason;
|
|
27
|
+
/**
|
|
28
|
+
* Stream response support
|
|
29
|
+
*/
|
|
30
|
+
streamResponse(request: LLMRequest): Promise<ReadableStream<string>>;
|
|
31
|
+
/**
|
|
32
|
+
* Tool usage support
|
|
33
|
+
*/
|
|
34
|
+
generateWithTools(request: LLMRequest & {
|
|
35
|
+
tools: any[];
|
|
36
|
+
}): Promise<LLMResponse>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAoDtC,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAe;IACnB,MAAM,WASJ;IACF,iBAAiB,UAAQ;IACzB,aAAa,UAAQ;IACrB,gBAAgB,UAAS;IAEzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,eAAe;IAY7B,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAwCjE,cAAc,IAAI,OAAO;IAIzB,SAAS,IAAI,MAAM,EAAE;IAIrB,YAAY,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAenC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBrC,SAAS,CAAC,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;YA6ErD,oBAAoB;IAuBlC,OAAO,CAAC,aAAa;IAgFrB,OAAO,CAAC,cAAc;IAmDtB,OAAO,CAAC,aAAa;IAarB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IA6D1E;;OAEG;IACG,iBAAiB,CACrB,OAAO,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,GAAG,EAAE,CAAA;KAAE,GACrC,OAAO,CAAC,WAAW,CAAC;CAaxB"}
|