@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 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:
@@ -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":"AACA,OAAO,EAAqB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAqB,MAAM,+BAA+B,CAAC;AASzG,OAAO,EAGH,cAAc,EACjB,MAAM,8BAA8B,CAAC;AA4EtC,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAA+B;IAC3D,OAAO,CAAC,IAAI,CAAM;IAGlB,OAAO,CAAC,MAAM,CAAC,YAAY,CAA4C;IACvE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAoB;;IAmB/C,OAAO,CAAC,aAAa;IAgBrB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI;IAejG,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,EAAE,cAAc,CAAC;QACxB,KAAK,CAAC,EAAE,qBAAqB,CAAC;QAC9B,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;KAC7C,GAAG,IAAI;WAgCM,gBAAgB,IAAI,IAAI;WAQxB,mBAAmB,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE;IAiCxD,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAgKhF,mBAAmB;YAyFnB,uBAAuB;YAgPvB,YAAY;YA0BZ,0BAA0B;YAkJ1B,8BAA8B;YAuE9B,WAAW;IA4EzB,OAAO,CAAC,0BAA0B;YAsMpB,qBAAqB;YAgErB,eAAe;YAmJf,oBAAoB;YAyCpB,YAAY;IA4J1B,OAAO,CAAC,iBAAiB;YAwCX,4BAA4B;YAmJ5B,eAAe;IA0B7B,OAAO,CAAC,gCAAgC;IA0BxC,OAAO,CAAC,yBAAyB;IA8CjC,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,sBAAsB;YAkChB,8BAA8B;IAqK5C,OAAO,CAAC,4BAA4B;YA8DtB,qBAAqB;YAuGrB,eAAe;CAkK9B;AAED,wBAAgB,kBAAkB,SAEjC"}
1
+ {"version":3,"file":"AIPromptRunner.d.ts","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"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"}
@@ -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.executeModel(selectedModel, renderedPromptText, prompt, params, promptRun.VendorID, params.conversationMessages, params.templateMessageRole || 'system', params.cancellationToken);
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.61.0",
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.61.0",
19
- "@memberjunction/global": "2.61.0",
20
- "@memberjunction/core-entities": "2.61.0",
21
- "@memberjunction/ai": "2.61.0",
22
- "@memberjunction/ai-core-plus": "2.61.0",
23
- "@memberjunction/aiengine": "2.61.0",
24
- "@memberjunction/templates": "2.61.0",
25
- "@memberjunction/templates-base-types": "2.61.0",
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",