@memberjunction/ai-prompts 2.61.0 → 2.62.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/README.md +187 -0
- package/dist/AIPromptRunner.d.ts +42 -2
- package/dist/AIPromptRunner.d.ts.map +1 -1
- package/dist/AIPromptRunner.js +279 -1
- package/dist/AIPromptRunner.js.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -9,6 +9,28 @@ Advanced AI prompt execution engine with hierarchical template composition, inte
|
|
|
9
9
|
|
|
10
10
|
## Key Features
|
|
11
11
|
|
|
12
|
+
### 🛡️ Intelligent Failover Support
|
|
13
|
+
Automatic failover when AI providers experience outages, rate limits, or service degradation. The system intelligently switches between models and vendors to ensure reliable prompt execution.
|
|
14
|
+
|
|
15
|
+
#### Failover Strategies
|
|
16
|
+
- **SameModelDifferentVendor**: Try the same model from different providers
|
|
17
|
+
- **NextBestModel**: Switch to alternative models based on power rankings
|
|
18
|
+
- **PowerRank**: Use the global model power ranking for selection
|
|
19
|
+
|
|
20
|
+
#### Configuration
|
|
21
|
+
```typescript
|
|
22
|
+
const promptWithFailover = {
|
|
23
|
+
Name: "Critical Analysis",
|
|
24
|
+
FailoverStrategy: "SameModelDifferentVendor",
|
|
25
|
+
FailoverMaxAttempts: 3,
|
|
26
|
+
FailoverDelaySeconds: 2,
|
|
27
|
+
FailoverModelStrategy: "PreferSameModel",
|
|
28
|
+
FailoverErrorScope: "All" // or "NetworkOnly", "RateLimitOnly", "ServiceErrorOnly"
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Note**: Prompts with `AIModelTypeID = NULL` can use any available model during failover, while prompts with a specific type ID are restricted to models of that type.
|
|
33
|
+
|
|
12
34
|
### 🎯 Dynamic Hierarchical Template Composition
|
|
13
35
|
|
|
14
36
|
#### Why Dynamic Template Composition?
|
|
@@ -558,6 +580,171 @@ comprehensivePromptExecution().catch(console.error);
|
|
|
558
580
|
|
|
559
581
|
## Advanced Features
|
|
560
582
|
|
|
583
|
+
### Intelligent Failover System
|
|
584
|
+
|
|
585
|
+
The AI Prompt Runner includes a sophisticated failover system that automatically handles provider outages, rate limits, and service degradation. This ensures your AI-powered applications remain resilient and responsive even when individual providers experience issues.
|
|
586
|
+
|
|
587
|
+
#### How Failover Works
|
|
588
|
+
|
|
589
|
+
When a prompt execution fails, the system:
|
|
590
|
+
1. **Analyzes the error** using the ErrorAnalyzer to determine if failover is appropriate
|
|
591
|
+
2. **Selects alternative models/vendors** based on the configured strategy
|
|
592
|
+
3. **Applies intelligent delays** with exponential backoff to prevent overwhelming providers
|
|
593
|
+
4. **Tracks all attempts** for debugging and analysis
|
|
594
|
+
5. **Updates the execution** to use the successful model/vendor combination
|
|
595
|
+
|
|
596
|
+
#### Failover Configuration
|
|
597
|
+
|
|
598
|
+
Configure failover behavior at the prompt level:
|
|
599
|
+
|
|
600
|
+
```typescript
|
|
601
|
+
// Database columns added to AIPrompt entity:
|
|
602
|
+
FailoverStrategy: 'SameModelDifferentVendor' | 'NextBestModel' | 'PowerRank' | 'None'
|
|
603
|
+
FailoverMaxAttempts: number // Maximum failover attempts (default: 3)
|
|
604
|
+
FailoverDelaySeconds: number // Initial delay between attempts (default: 1)
|
|
605
|
+
FailoverModelStrategy: 'PreferSameModel' | 'PreferDifferentModel' | 'RequireSameModel'
|
|
606
|
+
FailoverErrorScope: 'All' | 'NetworkOnly' | 'RateLimitOnly' | 'ServiceErrorOnly'
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
#### Failover Strategies Explained
|
|
610
|
+
|
|
611
|
+
**SameModelDifferentVendor**: Ideal for multi-cloud deployments
|
|
612
|
+
```typescript
|
|
613
|
+
// Example: Claude from different providers
|
|
614
|
+
// Primary: Anthropic API
|
|
615
|
+
// Failover 1: AWS Bedrock
|
|
616
|
+
// Failover 2: Google Vertex AI
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
**NextBestModel**: Balances capability and availability
|
|
620
|
+
```typescript
|
|
621
|
+
// Example: Gradual capability reduction
|
|
622
|
+
// Primary: GPT-4-turbo
|
|
623
|
+
// Failover 1: Claude-3-opus
|
|
624
|
+
// Failover 2: GPT-3.5-turbo
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
**PowerRank**: Uses MemberJunction's model power rankings
|
|
628
|
+
```typescript
|
|
629
|
+
// Automatically selects models based on their PowerRank scores
|
|
630
|
+
// Ensures you always get the best available model
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
#### Error Scope Configuration
|
|
634
|
+
|
|
635
|
+
Control which types of errors trigger failover:
|
|
636
|
+
|
|
637
|
+
- **All**: Any error triggers failover (most resilient)
|
|
638
|
+
- **NetworkOnly**: Only network/connection errors
|
|
639
|
+
- **RateLimitOnly**: Only rate limit errors (429 status)
|
|
640
|
+
- **ServiceErrorOnly**: Only service errors (500, 503 status)
|
|
641
|
+
|
|
642
|
+
#### Failover Tracking
|
|
643
|
+
|
|
644
|
+
The system comprehensively tracks failover attempts in the database:
|
|
645
|
+
|
|
646
|
+
```typescript
|
|
647
|
+
// AIPromptRun entity tracking fields:
|
|
648
|
+
OriginalModelID: string // The initially selected model
|
|
649
|
+
OriginalRequestStartTime: Date // When the request started
|
|
650
|
+
FailoverAttempts: number // Number of failover attempts made
|
|
651
|
+
FailoverErrors: string (JSON) // Detailed error information for each attempt
|
|
652
|
+
FailoverDurations: string (JSON) // Duration of each attempt in milliseconds
|
|
653
|
+
TotalFailoverDuration: number // Total time spent in failover
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
#### Advanced Failover Customization
|
|
657
|
+
|
|
658
|
+
The AIPromptRunner exposes protected methods for advanced customization:
|
|
659
|
+
|
|
660
|
+
```typescript
|
|
661
|
+
class CustomPromptRunner extends AIPromptRunner {
|
|
662
|
+
// Override to implement custom failover configuration
|
|
663
|
+
protected getFailoverConfiguration(prompt: AIPromptEntity): FailoverConfiguration {
|
|
664
|
+
// Add environment-specific logic
|
|
665
|
+
if (process.env.NODE_ENV === 'production') {
|
|
666
|
+
return {
|
|
667
|
+
strategy: 'SameModelDifferentVendor',
|
|
668
|
+
maxAttempts: 5,
|
|
669
|
+
delaySeconds: 2,
|
|
670
|
+
modelStrategy: 'PreferSameModel',
|
|
671
|
+
errorScope: 'NetworkOnly'
|
|
672
|
+
};
|
|
673
|
+
}
|
|
674
|
+
return super.getFailoverConfiguration(prompt);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
// Override to implement custom failover decision logic
|
|
678
|
+
protected shouldAttemptFailover(
|
|
679
|
+
error: Error,
|
|
680
|
+
config: FailoverConfiguration,
|
|
681
|
+
attemptNumber: number
|
|
682
|
+
): boolean {
|
|
683
|
+
// Add custom error analysis
|
|
684
|
+
if (error.message.includes('quota_exceeded')) {
|
|
685
|
+
return false; // Don't retry quota errors
|
|
686
|
+
}
|
|
687
|
+
return super.shouldAttemptFailover(error, config, attemptNumber);
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
// Override to implement custom delay calculation
|
|
691
|
+
protected calculateFailoverDelay(
|
|
692
|
+
attemptNumber: number,
|
|
693
|
+
baseDelaySeconds: number,
|
|
694
|
+
previousError?: Error
|
|
695
|
+
): number {
|
|
696
|
+
// Custom backoff strategy
|
|
697
|
+
if (previousError?.message.includes('rate_limit')) {
|
|
698
|
+
return 60000; // 1 minute for rate limits
|
|
699
|
+
}
|
|
700
|
+
return super.calculateFailoverDelay(attemptNumber, baseDelaySeconds, previousError);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
#### Failover Best Practices
|
|
706
|
+
|
|
707
|
+
1. **Configure Appropriately**: Use `NetworkOnly` or `RateLimitOnly` for production to avoid retrying invalid requests
|
|
708
|
+
2. **Set Reasonable Attempts**: 3-5 attempts typically sufficient
|
|
709
|
+
3. **Monitor Failover Patterns**: Query the tracking data to identify problematic providers
|
|
710
|
+
4. **Test Failover Scenarios**: Simulate provider outages in development
|
|
711
|
+
5. **Consider Costs**: Failover may route to more expensive providers
|
|
712
|
+
|
|
713
|
+
#### Example: Production-Ready Configuration
|
|
714
|
+
|
|
715
|
+
```typescript
|
|
716
|
+
const productionPrompt = {
|
|
717
|
+
Name: "Customer Service Assistant",
|
|
718
|
+
FailoverStrategy: "SameModelDifferentVendor",
|
|
719
|
+
FailoverMaxAttempts: 4,
|
|
720
|
+
FailoverDelaySeconds: 2,
|
|
721
|
+
FailoverModelStrategy: "PreferSameModel",
|
|
722
|
+
FailoverErrorScope: "NetworkOnly",
|
|
723
|
+
// Ensure failover stays within approved models
|
|
724
|
+
MinPowerRank: 85
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
// Query failover performance
|
|
728
|
+
const failoverStats = await runView.RunView({
|
|
729
|
+
EntityName: 'MJ: AI Prompt Runs',
|
|
730
|
+
ExtraFilter: `FailoverAttempts > 0 AND RunAt >= '2024-01-01'`,
|
|
731
|
+
OrderBy: 'RunAt DESC'
|
|
732
|
+
});
|
|
733
|
+
|
|
734
|
+
// Analyze which vendors are most reliable
|
|
735
|
+
SELECT
|
|
736
|
+
OriginalModelID,
|
|
737
|
+
ModelID as FinalModelID,
|
|
738
|
+
COUNT(*) as FailoverCount,
|
|
739
|
+
AVG(TotalFailoverDuration) as AvgFailoverTime
|
|
740
|
+
FROM AIPromptRun
|
|
741
|
+
WHERE FailoverAttempts > 0
|
|
742
|
+
GROUP BY OriginalModelID, ModelID
|
|
743
|
+
ORDER BY FailoverCount DESC;
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
For more details on the failover implementation, see the [Failover Design Document](./failover-design.md).
|
|
747
|
+
|
|
561
748
|
### Intelligent Caching
|
|
562
749
|
|
|
563
750
|
The prompt system provides sophisticated caching with vector similarity matching:
|
package/dist/AIPromptRunner.d.ts
CHANGED
|
@@ -1,6 +1,34 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ChatResult, ChatMessage } from '@memberjunction/ai';
|
|
1
3
|
import { AIPromptRunResult } from '@memberjunction/ai-core-plus';
|
|
2
|
-
import { AIModelEntityExtended, AIPromptEntity } from '@memberjunction/core-entities';
|
|
3
|
-
import { AIPromptParams } from '@memberjunction/ai-core-plus';
|
|
4
|
+
import { AIModelEntityExtended, AIPromptEntity, AIPromptRunEntity } from '@memberjunction/core-entities';
|
|
5
|
+
import { TemplateMessageRole, AIPromptParams } from '@memberjunction/ai-core-plus';
|
|
6
|
+
interface ModelVendorCandidate {
|
|
7
|
+
model: AIModelEntityExtended;
|
|
8
|
+
vendorId?: string;
|
|
9
|
+
vendorName?: string;
|
|
10
|
+
driverClass: string;
|
|
11
|
+
apiName?: string;
|
|
12
|
+
isPreferredVendor: boolean;
|
|
13
|
+
priority: number;
|
|
14
|
+
source: 'explicit' | 'prompt-model' | 'model-type' | 'power-rank';
|
|
15
|
+
}
|
|
16
|
+
interface FailoverConfiguration {
|
|
17
|
+
strategy: 'SameModelDifferentVendor' | 'NextBestModel' | 'PowerRank' | 'None';
|
|
18
|
+
maxAttempts: number;
|
|
19
|
+
delaySeconds: number;
|
|
20
|
+
modelStrategy?: 'PreferSameModel' | 'PreferDifferentModel' | 'RequireSameModel';
|
|
21
|
+
errorScope?: 'All' | 'NetworkOnly' | 'RateLimitOnly' | 'ServiceErrorOnly';
|
|
22
|
+
}
|
|
23
|
+
interface FailoverAttempt {
|
|
24
|
+
attemptNumber: number;
|
|
25
|
+
modelId: string;
|
|
26
|
+
vendorId?: string;
|
|
27
|
+
error: Error;
|
|
28
|
+
errorType: string;
|
|
29
|
+
duration: number;
|
|
30
|
+
timestamp: Date;
|
|
31
|
+
}
|
|
4
32
|
export declare class AIPromptRunner {
|
|
5
33
|
private _metadata;
|
|
6
34
|
private _templateEngine;
|
|
@@ -35,6 +63,12 @@ export declare class AIPromptRunner {
|
|
|
35
63
|
private selectModelWithAPIKey;
|
|
36
64
|
private createPromptRun;
|
|
37
65
|
private renderPromptTemplate;
|
|
66
|
+
protected executeModelWithFailover(model: AIModelEntityExtended, renderedPrompt: string, prompt: AIPromptEntity, params: AIPromptParams, vendorId: string | null, conversationMessages?: ChatMessage[], templateMessageRole?: TemplateMessageRole, cancellationToken?: AbortSignal, allCandidates?: ModelVendorCandidate[], promptRun?: AIPromptRunEntity): Promise<ChatResult>;
|
|
67
|
+
protected buildFailoverCandidates(prompt: AIPromptEntity): Promise<ModelVendorCandidate[]>;
|
|
68
|
+
protected createCandidatesFromModels(models: AIModelEntityExtended[]): ModelVendorCandidate[];
|
|
69
|
+
protected updatePromptRunWithFailoverSuccess(promptRun: AIPromptRunEntity, failoverAttempts: FailoverAttempt[], currentModel: AIModelEntityExtended, currentVendorId: string | null): void;
|
|
70
|
+
private updatePromptRunWithFailoverFailure;
|
|
71
|
+
private createFailoverErrorResult;
|
|
38
72
|
private executeModel;
|
|
39
73
|
private buildMessageArray;
|
|
40
74
|
private executeWithValidationRetries;
|
|
@@ -48,6 +82,12 @@ export declare class AIPromptRunner {
|
|
|
48
82
|
private validateObjectAgainstExample;
|
|
49
83
|
private validateAgainstSchema;
|
|
50
84
|
private updatePromptRun;
|
|
85
|
+
protected getFailoverConfiguration(prompt: AIPromptEntity): FailoverConfiguration;
|
|
86
|
+
protected shouldAttemptFailover(error: Error, config: FailoverConfiguration, attemptNumber: number): boolean;
|
|
87
|
+
protected calculateFailoverDelay(attemptNumber: number, baseDelaySeconds: number, previousError?: Error): number;
|
|
88
|
+
protected selectFailoverCandidates(currentModel: AIModelEntityExtended, currentVendorId: string | undefined, strategy: FailoverConfiguration['strategy'], modelStrategy: FailoverConfiguration['modelStrategy'], allCandidates: ModelVendorCandidate[], attemptHistory: FailoverAttempt[]): ModelVendorCandidate[];
|
|
89
|
+
protected logFailoverAttempt(promptId: string, attempt: FailoverAttempt, willRetry: boolean): void;
|
|
51
90
|
}
|
|
52
91
|
export declare function LoadAIPromptRunner(): void;
|
|
92
|
+
export {};
|
|
53
93
|
//# sourceMappingURL=AIPromptRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPromptRunner.d.ts","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AIPromptRunner.d.ts","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/AIPromptRunner.js
CHANGED
|
@@ -759,6 +759,13 @@ class AIPromptRunner {
|
|
|
759
759
|
promptRun.NewRecord();
|
|
760
760
|
promptRun.PromptID = prompt.ID;
|
|
761
761
|
promptRun.ModelID = model.ID;
|
|
762
|
+
const promptRunWithFailover = promptRun;
|
|
763
|
+
promptRunWithFailover.OriginalModelID = model.ID;
|
|
764
|
+
promptRunWithFailover.OriginalRequestStartTime = startTime;
|
|
765
|
+
promptRunWithFailover.FailoverAttempts = 0;
|
|
766
|
+
promptRunWithFailover.FailoverErrors = null;
|
|
767
|
+
promptRunWithFailover.FailoverDurations = null;
|
|
768
|
+
promptRunWithFailover.TotalFailoverDuration = 0;
|
|
762
769
|
const modelWithVendor = model;
|
|
763
770
|
if (vendorId) {
|
|
764
771
|
promptRun.VendorID = vendorId;
|
|
@@ -883,6 +890,172 @@ class AIPromptRunner {
|
|
|
883
890
|
throw error;
|
|
884
891
|
}
|
|
885
892
|
}
|
|
893
|
+
async executeModelWithFailover(model, renderedPrompt, prompt, params, vendorId, conversationMessages, templateMessageRole = 'system', cancellationToken, allCandidates, promptRun) {
|
|
894
|
+
const failoverConfig = this.getFailoverConfiguration(prompt);
|
|
895
|
+
if (failoverConfig.strategy === 'None') {
|
|
896
|
+
return this.executeModel(model, renderedPrompt, prompt, params, vendorId, conversationMessages, templateMessageRole, cancellationToken);
|
|
897
|
+
}
|
|
898
|
+
const failoverAttempts = [];
|
|
899
|
+
let lastError = null;
|
|
900
|
+
let currentModel = model;
|
|
901
|
+
let currentVendorId = vendorId;
|
|
902
|
+
let attemptNumber = 0;
|
|
903
|
+
if (!allCandidates) {
|
|
904
|
+
allCandidates = await this.buildFailoverCandidates(prompt);
|
|
905
|
+
}
|
|
906
|
+
while (attemptNumber <= failoverConfig.maxAttempts) {
|
|
907
|
+
attemptNumber++;
|
|
908
|
+
const attemptStartTime = Date.now();
|
|
909
|
+
try {
|
|
910
|
+
if (attemptNumber > 1) {
|
|
911
|
+
(0, core_1.LogStatusEx)({
|
|
912
|
+
message: `🔄 Failover attempt ${attemptNumber} with model ${currentModel.Name} (vendor: ${currentVendorId || 'default'})`,
|
|
913
|
+
category: 'AI',
|
|
914
|
+
additionalArgs: [{
|
|
915
|
+
promptId: prompt.ID,
|
|
916
|
+
modelId: currentModel.ID,
|
|
917
|
+
vendorId: currentVendorId,
|
|
918
|
+
attemptNumber
|
|
919
|
+
}]
|
|
920
|
+
});
|
|
921
|
+
}
|
|
922
|
+
const result = await this.executeModel(currentModel, renderedPrompt, prompt, params, currentVendorId, conversationMessages, templateMessageRole, cancellationToken);
|
|
923
|
+
if (failoverAttempts.length > 0 && promptRun) {
|
|
924
|
+
this.updatePromptRunWithFailoverSuccess(promptRun, failoverAttempts, currentModel, currentVendorId);
|
|
925
|
+
}
|
|
926
|
+
return result;
|
|
927
|
+
}
|
|
928
|
+
catch (error) {
|
|
929
|
+
const attemptDuration = Date.now() - attemptStartTime;
|
|
930
|
+
lastError = error;
|
|
931
|
+
const errorAnalysis = ai_1.ErrorAnalyzer.analyzeError(lastError);
|
|
932
|
+
const failoverAttempt = {
|
|
933
|
+
attemptNumber,
|
|
934
|
+
modelId: currentModel.ID,
|
|
935
|
+
vendorId: currentVendorId,
|
|
936
|
+
error: lastError,
|
|
937
|
+
errorType: errorAnalysis.errorType,
|
|
938
|
+
duration: attemptDuration,
|
|
939
|
+
timestamp: new Date()
|
|
940
|
+
};
|
|
941
|
+
failoverAttempts.push(failoverAttempt);
|
|
942
|
+
const shouldFailover = this.shouldAttemptFailover(lastError, failoverConfig, attemptNumber);
|
|
943
|
+
if (!shouldFailover) {
|
|
944
|
+
this.logFailoverAttempt(prompt.ID, failoverAttempt, false);
|
|
945
|
+
break;
|
|
946
|
+
}
|
|
947
|
+
const nextCandidates = this.selectFailoverCandidates(currentModel, currentVendorId, failoverConfig.strategy, failoverConfig.modelStrategy, allCandidates, failoverAttempts);
|
|
948
|
+
if (nextCandidates.length === 0) {
|
|
949
|
+
this.logFailoverAttempt(prompt.ID, failoverAttempt, false);
|
|
950
|
+
break;
|
|
951
|
+
}
|
|
952
|
+
const nextCandidate = nextCandidates[0];
|
|
953
|
+
currentModel = nextCandidate.model;
|
|
954
|
+
currentVendorId = nextCandidate.vendorId;
|
|
955
|
+
this.logFailoverAttempt(prompt.ID, failoverAttempt, true);
|
|
956
|
+
if (attemptNumber < failoverConfig.maxAttempts) {
|
|
957
|
+
const delay = this.calculateFailoverDelay(attemptNumber, failoverConfig.delaySeconds, lastError);
|
|
958
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
if (promptRun && failoverAttempts.length > 0) {
|
|
963
|
+
this.updatePromptRunWithFailoverFailure(promptRun, failoverAttempts);
|
|
964
|
+
}
|
|
965
|
+
return this.createFailoverErrorResult(lastError, failoverAttempts);
|
|
966
|
+
}
|
|
967
|
+
async buildFailoverCandidates(prompt) {
|
|
968
|
+
const aiEngine = aiengine_1.AIEngine.Instance;
|
|
969
|
+
let allModels;
|
|
970
|
+
if (prompt.AIModelTypeID) {
|
|
971
|
+
const modelType = aiEngine.ModelTypes.find(mt => mt.ID === prompt.AIModelTypeID);
|
|
972
|
+
if (!modelType) {
|
|
973
|
+
throw new Error(`Model type ${prompt.AIModelTypeID} not found`);
|
|
974
|
+
}
|
|
975
|
+
allModels = aiEngine.Models.filter(m => m.AIModelType?.trim().toLowerCase() === modelType.Name.trim().toLowerCase());
|
|
976
|
+
}
|
|
977
|
+
else {
|
|
978
|
+
allModels = aiEngine.Models;
|
|
979
|
+
}
|
|
980
|
+
return this.createCandidatesFromModels(allModels);
|
|
981
|
+
}
|
|
982
|
+
createCandidatesFromModels(models) {
|
|
983
|
+
const candidates = [];
|
|
984
|
+
for (const model of models) {
|
|
985
|
+
const vendors = model.ModelVendors || [];
|
|
986
|
+
if (vendors.length === 0) {
|
|
987
|
+
candidates.push({
|
|
988
|
+
model: model,
|
|
989
|
+
vendorId: undefined,
|
|
990
|
+
vendorName: undefined,
|
|
991
|
+
driverClass: model.DriverClass,
|
|
992
|
+
apiName: model.APIName,
|
|
993
|
+
isPreferredVendor: false,
|
|
994
|
+
priority: model.PowerRank || 0,
|
|
995
|
+
source: 'power-rank'
|
|
996
|
+
});
|
|
997
|
+
}
|
|
998
|
+
else {
|
|
999
|
+
for (const vendor of vendors) {
|
|
1000
|
+
candidates.push({
|
|
1001
|
+
model: model,
|
|
1002
|
+
vendorId: vendor.VendorID,
|
|
1003
|
+
vendorName: vendor.Vendor,
|
|
1004
|
+
driverClass: vendor.DriverClass || model.DriverClass,
|
|
1005
|
+
apiName: vendor.APIName || model.APIName,
|
|
1006
|
+
isPreferredVendor: vendor.Priority > 0,
|
|
1007
|
+
priority: (model.PowerRank || 0) + (vendor.Priority || 0),
|
|
1008
|
+
source: 'power-rank'
|
|
1009
|
+
});
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
return candidates;
|
|
1014
|
+
}
|
|
1015
|
+
updatePromptRunWithFailoverSuccess(promptRun, failoverAttempts, currentModel, currentVendorId) {
|
|
1016
|
+
const promptRunWithFailover = promptRun;
|
|
1017
|
+
promptRunWithFailover.FailoverAttempts = failoverAttempts.length;
|
|
1018
|
+
promptRunWithFailover.FailoverErrors = JSON.stringify(failoverAttempts.map(a => ({
|
|
1019
|
+
model: a.modelId,
|
|
1020
|
+
vendor: a.vendorId,
|
|
1021
|
+
error: a.error.message,
|
|
1022
|
+
errorType: a.errorType
|
|
1023
|
+
})));
|
|
1024
|
+
promptRunWithFailover.FailoverDurations = JSON.stringify(failoverAttempts.map(a => a.duration));
|
|
1025
|
+
promptRunWithFailover.TotalFailoverDuration = failoverAttempts.reduce((sum, a) => sum + a.duration, 0);
|
|
1026
|
+
if (currentModel.ID !== promptRunWithFailover.OriginalModelID) {
|
|
1027
|
+
promptRun.ModelID = currentModel.ID;
|
|
1028
|
+
}
|
|
1029
|
+
if (currentVendorId && currentVendorId !== promptRun.VendorID) {
|
|
1030
|
+
promptRun.VendorID = currentVendorId;
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
updatePromptRunWithFailoverFailure(promptRun, failoverAttempts) {
|
|
1034
|
+
const promptRunWithFailover = promptRun;
|
|
1035
|
+
promptRunWithFailover.FailoverAttempts = failoverAttempts.length;
|
|
1036
|
+
promptRunWithFailover.FailoverErrors = JSON.stringify(failoverAttempts.map(a => ({
|
|
1037
|
+
model: a.modelId,
|
|
1038
|
+
vendor: a.vendorId,
|
|
1039
|
+
error: a.error.message,
|
|
1040
|
+
errorType: a.errorType
|
|
1041
|
+
})));
|
|
1042
|
+
promptRunWithFailover.FailoverDurations = JSON.stringify(failoverAttempts.map(a => a.duration));
|
|
1043
|
+
promptRunWithFailover.TotalFailoverDuration = failoverAttempts.reduce((sum, a) => sum + a.duration, 0);
|
|
1044
|
+
}
|
|
1045
|
+
createFailoverErrorResult(lastError, failoverAttempts) {
|
|
1046
|
+
const startTime = new Date();
|
|
1047
|
+
const endTime = new Date();
|
|
1048
|
+
return {
|
|
1049
|
+
success: false,
|
|
1050
|
+
startTime: startTime,
|
|
1051
|
+
endTime: endTime,
|
|
1052
|
+
errorMessage: lastError?.message || 'Unknown error',
|
|
1053
|
+
exception: lastError,
|
|
1054
|
+
statusText: `Failover failed after ${failoverAttempts.length} attempts`,
|
|
1055
|
+
timeElapsed: endTime.getTime() - startTime.getTime(),
|
|
1056
|
+
data: null
|
|
1057
|
+
};
|
|
1058
|
+
}
|
|
886
1059
|
async executeModel(model, renderedPrompt, prompt, params, vendorId, conversationMessages, templateMessageRole = 'system', cancellationToken) {
|
|
887
1060
|
try {
|
|
888
1061
|
const modelWithVendor = model;
|
|
@@ -1047,7 +1220,7 @@ class AIPromptRunner {
|
|
|
1047
1220
|
(0, core_1.LogStatus)(`🔄 Retrying execution due to validation failure, attempt ${attempt + 1}/${maxRetries + 1}`);
|
|
1048
1221
|
await this.applyRetryDelay(prompt, attempt);
|
|
1049
1222
|
}
|
|
1050
|
-
const modelResult = await this.
|
|
1223
|
+
const modelResult = await this.executeModelWithFailover(selectedModel, renderedPromptText, prompt, params, promptRun.VendorID, params.conversationMessages, params.templateMessageRole || 'system', params.cancellationToken, undefined, promptRun);
|
|
1051
1224
|
if (modelResult.data?.usage) {
|
|
1052
1225
|
cumulativePromptTokens += modelResult.data.usage.promptTokens || 0;
|
|
1053
1226
|
cumulativeCompletionTokens += modelResult.data.usage.completionTokens || 0;
|
|
@@ -1551,6 +1724,111 @@ class AIPromptRunner {
|
|
|
1551
1724
|
});
|
|
1552
1725
|
}
|
|
1553
1726
|
}
|
|
1727
|
+
getFailoverConfiguration(prompt) {
|
|
1728
|
+
const promptWithFailover = prompt;
|
|
1729
|
+
return {
|
|
1730
|
+
strategy: promptWithFailover.FailoverStrategy || 'None',
|
|
1731
|
+
maxAttempts: promptWithFailover.FailoverMaxAttempts || 3,
|
|
1732
|
+
delaySeconds: promptWithFailover.FailoverDelaySeconds || 1,
|
|
1733
|
+
modelStrategy: promptWithFailover.FailoverModelStrategy || 'PreferSameModel',
|
|
1734
|
+
errorScope: promptWithFailover.FailoverErrorScope || 'All'
|
|
1735
|
+
};
|
|
1736
|
+
}
|
|
1737
|
+
shouldAttemptFailover(error, config, attemptNumber) {
|
|
1738
|
+
if (config.strategy === 'None' || attemptNumber > config.maxAttempts) {
|
|
1739
|
+
return false;
|
|
1740
|
+
}
|
|
1741
|
+
const errorAnalysis = ai_1.ErrorAnalyzer.analyzeError(error);
|
|
1742
|
+
if (!errorAnalysis.canFailover) {
|
|
1743
|
+
return false;
|
|
1744
|
+
}
|
|
1745
|
+
switch (config.errorScope) {
|
|
1746
|
+
case 'NetworkOnly':
|
|
1747
|
+
return errorAnalysis.errorType === 'NetworkError';
|
|
1748
|
+
case 'RateLimitOnly':
|
|
1749
|
+
return errorAnalysis.errorType === 'RateLimit';
|
|
1750
|
+
case 'ServiceErrorOnly':
|
|
1751
|
+
return errorAnalysis.errorType === 'ServiceUnavailable' ||
|
|
1752
|
+
errorAnalysis.errorType === 'InternalServerError';
|
|
1753
|
+
case 'All':
|
|
1754
|
+
default:
|
|
1755
|
+
return true;
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
calculateFailoverDelay(attemptNumber, baseDelaySeconds, previousError) {
|
|
1759
|
+
const exponentialDelay = baseDelaySeconds * Math.pow(2, attemptNumber - 1);
|
|
1760
|
+
const jitter = exponentialDelay * 0.25 * Math.random();
|
|
1761
|
+
const totalDelay = Math.min(exponentialDelay + jitter, 30);
|
|
1762
|
+
return totalDelay * 1000;
|
|
1763
|
+
}
|
|
1764
|
+
selectFailoverCandidates(currentModel, currentVendorId, strategy, modelStrategy, allCandidates, attemptHistory) {
|
|
1765
|
+
const failedPairs = new Set(attemptHistory.map(a => `${a.modelId}:${a.vendorId || 'default'}`));
|
|
1766
|
+
const availableCandidates = allCandidates.filter(c => {
|
|
1767
|
+
const key = `${c.model.ID}:${c.vendorId || 'default'}`;
|
|
1768
|
+
return !failedPairs.has(key);
|
|
1769
|
+
});
|
|
1770
|
+
let candidates;
|
|
1771
|
+
switch (strategy) {
|
|
1772
|
+
case 'SameModelDifferentVendor':
|
|
1773
|
+
candidates = availableCandidates.filter(c => c.model.ID === currentModel.ID && c.vendorId !== currentVendorId);
|
|
1774
|
+
break;
|
|
1775
|
+
case 'NextBestModel':
|
|
1776
|
+
candidates = availableCandidates;
|
|
1777
|
+
if (modelStrategy === 'RequireSameModel') {
|
|
1778
|
+
candidates = candidates.filter(c => c.model.ID === currentModel.ID);
|
|
1779
|
+
}
|
|
1780
|
+
else if (modelStrategy === 'PreferSameModel') {
|
|
1781
|
+
candidates.sort((a, b) => {
|
|
1782
|
+
const aSameModel = a.model.ID === currentModel.ID ? 1 : 0;
|
|
1783
|
+
const bSameModel = b.model.ID === currentModel.ID ? 1 : 0;
|
|
1784
|
+
return bSameModel - aSameModel;
|
|
1785
|
+
});
|
|
1786
|
+
}
|
|
1787
|
+
else if (modelStrategy === 'PreferDifferentModel') {
|
|
1788
|
+
candidates.sort((a, b) => {
|
|
1789
|
+
const aDiffModel = a.model.ID !== currentModel.ID ? 1 : 0;
|
|
1790
|
+
const bDiffModel = b.model.ID !== currentModel.ID ? 1 : 0;
|
|
1791
|
+
return bDiffModel - aDiffModel;
|
|
1792
|
+
});
|
|
1793
|
+
}
|
|
1794
|
+
break;
|
|
1795
|
+
case 'PowerRank':
|
|
1796
|
+
candidates = availableCandidates;
|
|
1797
|
+
break;
|
|
1798
|
+
default:
|
|
1799
|
+
candidates = [];
|
|
1800
|
+
}
|
|
1801
|
+
return candidates.sort((a, b) => b.priority - a.priority);
|
|
1802
|
+
}
|
|
1803
|
+
logFailoverAttempt(promptId, attempt, willRetry) {
|
|
1804
|
+
const message = `Failover attempt ${attempt.attemptNumber} for prompt ${promptId}`;
|
|
1805
|
+
const metadata = {
|
|
1806
|
+
promptId,
|
|
1807
|
+
attemptNumber: attempt.attemptNumber,
|
|
1808
|
+
modelId: attempt.modelId,
|
|
1809
|
+
vendorId: attempt.vendorId,
|
|
1810
|
+
errorType: attempt.errorType,
|
|
1811
|
+
duration: attempt.duration,
|
|
1812
|
+
willRetry,
|
|
1813
|
+
error: attempt.error.message
|
|
1814
|
+
};
|
|
1815
|
+
if (willRetry) {
|
|
1816
|
+
(0, core_1.LogStatusEx)({
|
|
1817
|
+
message: `⚡ ${message}`,
|
|
1818
|
+
category: 'AI',
|
|
1819
|
+
additionalArgs: [metadata]
|
|
1820
|
+
});
|
|
1821
|
+
}
|
|
1822
|
+
else {
|
|
1823
|
+
(0, core_1.LogErrorEx)({
|
|
1824
|
+
message: message,
|
|
1825
|
+
error: attempt.error,
|
|
1826
|
+
category: 'AI',
|
|
1827
|
+
severity: 'error',
|
|
1828
|
+
metadata: metadata
|
|
1829
|
+
});
|
|
1830
|
+
}
|
|
1831
|
+
}
|
|
1554
1832
|
}
|
|
1555
1833
|
exports.AIPromptRunner = AIPromptRunner;
|
|
1556
1834
|
AIPromptRunner._schemaCache = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIPromptRunner.js","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AIPromptRunner.js","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ai-prompts",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.62.0",
|
|
4
4
|
"description": "MemberJunction: AI Prompt Execution and Management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"author": "MemberJunction.com",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@memberjunction/core": "2.
|
|
19
|
-
"@memberjunction/global": "2.
|
|
20
|
-
"@memberjunction/core-entities": "2.
|
|
21
|
-
"@memberjunction/ai": "2.
|
|
22
|
-
"@memberjunction/ai-core-plus": "2.
|
|
23
|
-
"@memberjunction/aiengine": "2.
|
|
24
|
-
"@memberjunction/templates": "2.
|
|
25
|
-
"@memberjunction/templates-base-types": "2.
|
|
18
|
+
"@memberjunction/core": "2.62.0",
|
|
19
|
+
"@memberjunction/global": "2.62.0",
|
|
20
|
+
"@memberjunction/core-entities": "2.62.0",
|
|
21
|
+
"@memberjunction/ai": "2.62.0",
|
|
22
|
+
"@memberjunction/ai-core-plus": "2.62.0",
|
|
23
|
+
"@memberjunction/aiengine": "2.62.0",
|
|
24
|
+
"@memberjunction/templates": "2.62.0",
|
|
25
|
+
"@memberjunction/templates-base-types": "2.62.0",
|
|
26
26
|
"ajv": "^8.12.0",
|
|
27
27
|
"date-fns": "^2.30.0",
|
|
28
28
|
"date-fns-tz": "^2.0.0",
|