@memberjunction/ai-prompts 2.103.0 → 2.105.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
@@ -768,7 +768,57 @@ GROUP BY OriginalModelID, ModelID
768
768
  ORDER BY FailoverCount DESC;
769
769
  ```
770
770
 
771
- For more details on the failover implementation, see the [Failover Design Document](./failover-design.md).
771
+ #### Configuration-Aware Failover
772
+
773
+ The failover system respects `AIConfiguration` boundaries to ensure environment-specific models stay isolated:
774
+
775
+ **How It Works:**
776
+ - When you specify a `configurationId`, the system builds a candidate list with two priority tiers:
777
+ 1. **Configuration-specific models** (priority 5000+): Models assigned to your configuration
778
+ 2. **NULL configuration models** (priority 2000+): Universal fallback models available to all configurations
779
+
780
+ **Example Setup:**
781
+ ```sql
782
+ -- Production Configuration: Only approved production models
783
+ INSERT INTO AIPromptModel (PromptID, ModelID, ConfigurationID, Priority)
784
+ VALUES
785
+ (@PromptID, @Claude35SonnetID, @ProductionConfigID, 100),
786
+ (@PromptID, @GPT4ID, @ProductionConfigID, 90);
787
+
788
+ -- Development Configuration: Include experimental models
789
+ INSERT INTO AIPromptModel (PromptID, ModelID, ConfigurationID, Priority)
790
+ VALUES
791
+ (@PromptID, @LlamaExperimentalID, @DevelopmentConfigID, 100);
792
+
793
+ -- NULL Configuration: Universal fallbacks for all environments
794
+ INSERT INTO AIPromptModel (PromptID, ModelID, ConfigurationID, Priority)
795
+ VALUES
796
+ (@PromptID, @Claude3HaikuID, NULL, 100),
797
+ (@PromptID, @GPT35TurboID, NULL, 90);
798
+ ```
799
+
800
+ **Failover Behavior:**
801
+ ```typescript
802
+ // Execute with Production configuration
803
+ const result = await runner.ExecutePrompt({
804
+ prompt: myPrompt,
805
+ configurationId: productionConfigID,
806
+ data: { query: 'Analyze this' }
807
+ });
808
+
809
+ // Failover order:
810
+ // 1. Try Claude 3.5 Sonnet (Production config, priority 5100)
811
+ // 2. Try GPT-4 (Production config, priority 5090)
812
+ // 3. Try Claude 3 Haiku (NULL config fallback, priority 2100)
813
+ // 4. Try GPT-3.5 Turbo (NULL config fallback, priority 2090)
814
+ // ✅ Never crosses to Development config models
815
+ ```
816
+
817
+ **Key Benefits:**
818
+ - **Environment Isolation**: Production models never failover to development/experimental models
819
+ - **Controlled Fallback**: Explicit hierarchy from config-specific to universal fallbacks
820
+ - **Performance**: Candidate list built once and cached, no rebuilding during failover
821
+ - **Consistency**: Same candidate list used for initial selection and all failover attempts
772
822
 
773
823
  ### Intelligent Caching
774
824
 
@@ -9,6 +9,7 @@ interface ModelVendorCandidate {
9
9
  vendorName?: string;
10
10
  driverClass: string;
11
11
  apiName?: string;
12
+ supportsEffortLevel?: boolean;
12
13
  isPreferredVendor: boolean;
13
14
  priority: number;
14
15
  source: 'explicit' | 'prompt-model' | 'model-type' | 'power-rank';
@@ -44,6 +45,7 @@ export declare class AIPromptRunner {
44
45
  prompt?: AIPromptEntityExtended;
45
46
  model?: AIModelEntityExtended;
46
47
  severity?: 'warning' | 'error' | 'critical';
48
+ maxErrorLength?: number;
47
49
  }): void;
48
50
  private isInferenceProvider;
49
51
  ExecutePrompt<T = unknown>(params: AIPromptParams): Promise<AIPromptRunResult<T>>;
@@ -54,10 +56,12 @@ export declare class AIPromptRunner {
54
56
  private renderPromptWithChildTemplates;
55
57
  private selectModel;
56
58
  private buildModelVendorCandidates;
59
+ private createSelectionInfo;
60
+ private buildCandidatesFromSelectionInfo;
57
61
  private selectModelWithAPIKeyTracked;
58
62
  private createPromptRun;
59
63
  private renderPromptTemplate;
60
- protected executeModelWithFailover(model: AIModelEntityExtended, renderedPrompt: string, prompt: AIPromptEntityExtended, params: AIPromptParams, vendorId: string | null, conversationMessages?: ChatMessage[], templateMessageRole?: TemplateMessageRole, cancellationToken?: AbortSignal, allCandidates?: ModelVendorCandidate[], promptRun?: AIPromptRunEntityExtended, vendorDriverClass?: string, vendorApiName?: string): Promise<ChatResult>;
64
+ protected executeModelWithFailover(model: AIModelEntityExtended, renderedPrompt: string, prompt: AIPromptEntityExtended, params: AIPromptParams, vendorId: string | null, conversationMessages?: ChatMessage[], templateMessageRole?: TemplateMessageRole, cancellationToken?: AbortSignal, allCandidates?: ModelVendorCandidate[], promptRun?: AIPromptRunEntityExtended, vendorDriverClass?: string, vendorApiName?: string, vendorSupportsEffortLevel?: boolean): Promise<ChatResult>;
61
65
  protected buildFailoverCandidates(prompt: AIPromptEntityExtended): Promise<ModelVendorCandidate[]>;
62
66
  protected createCandidatesFromModels(models: AIModelEntityExtended[]): ModelVendorCandidate[];
63
67
  protected updatePromptRunWithFailoverSuccess(promptRun: AIPromptRunEntityExtended, failoverAttempts: FailoverAttempt[], currentModel: AIModelEntityExtended, currentVendorId: string | null): void;
@@ -66,7 +70,11 @@ export declare class AIPromptRunner {
66
70
  private executeModel;
67
71
  private buildMessageArray;
68
72
  private executeWithValidationRetries;
73
+ private calculateRetryDelay;
69
74
  private applyRetryDelay;
75
+ private filterAuthenticationFailedVendor;
76
+ private handleRateLimitRetry;
77
+ private transitionToNextCandidate;
70
78
  private getValidationDecisionDescription;
71
79
  private generateSchemaFromExample;
72
80
  private isLikelyPlaceholder;
@@ -1 +1 @@
1
- {"version":3,"file":"AIPromptRunner.d.ts","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,UAAU,EAAmB,WAAW,EAA8B,MAAM,oBAAoB,CAAC;AAC/H,OAAO,EAAqB,iBAAiB,EAAwB,MAAM,8BAA8B,CAAC;AAG1G,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,yBAAyB,EAAmF,MAAM,+BAA+B,CAAC;AAQ1M,OAAO,EACH,mBAAmB,EAEnB,cAAc,EACjB,MAAM,8BAA8B,CAAC;AAkEtC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;CACnE;AAMD,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,0BAA0B,GAAG,eAAe,GAAG,WAAW,GAAG,MAAM,CAAC;IAC9E,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,iBAAiB,GAAG,sBAAsB,GAAG,kBAAkB,CAAC;IAChF,UAAU,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,eAAe,GAAG,kBAAkB,CAAC;CAC3E;AAKD,UAAU,eAAe;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,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,cAAc,CAAgB;;IActC,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,sBAAsB,CAAC;QAChC,KAAK,CAAC,EAAE,qBAAqB,CAAC;QAC9B,QAAQ,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;KAC7C,GAAG,IAAI;IAkCR,OAAO,CAAC,mBAAmB;IA2Cd,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAyMhF,mBAAmB;YAgHnB,uBAAuB;YA6QvB,YAAY;YA0BZ,0BAA0B;YAoJ1B,8BAA8B;YAuE9B,WAAW;IAoLzB,OAAO,CAAC,0BAA0B;YA0SpB,4BAA4B;YAmF5B,eAAe;YAmPf,oBAAoB;cAqDlB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,EAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,oBAAoB,CAAC,EAAE,WAAW,EAAE,EACpC,mBAAmB,GAAE,mBAA8B,EACnD,iBAAiB,CAAC,EAAE,WAAW,EAC/B,aAAa,CAAC,EAAE,oBAAoB,EAAE,EACtC,SAAS,CAAC,EAAE,yBAAyB,EACrC,iBAAiB,CAAC,EAAE,MAAM,EAC1B,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,CAAC;cAwIN,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA2BxG,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,oBAAoB,EAAE;IAwC7F,SAAS,CAAC,kCAAkC,CAC1C,SAAS,EAAE,yBAAyB,EACpC,gBAAgB,EAAE,eAAe,EAAE,EACnC,YAAY,EAAE,qBAAqB,EACnC,eAAe,EAAE,MAAM,GAAG,IAAI,GAC7B,IAAI;IAiCP,OAAO,CAAC,kCAAkC;IA4B1C,OAAO,CAAC,yBAAyB;YAmBnB,YAAY;IA2L1B,OAAO,CAAC,iBAAiB;YAwCX,4BAA4B;YA4J5B,eAAe;IA0B7B,OAAO,CAAC,gCAAgC;IA0BxC,OAAO,CAAC,yBAAyB;IA8CjC,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,sBAAsB;YAyChB,8BAA8B;IAuI5C,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,eAAe;YA0BT,iBAAiB;YA+CjB,iBAAiB;YAiGjB,qBAAqB;YAuGrB,eAAe;IAkP7B,SAAS,CAAC,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB;IAgCzF,SAAS,CAAC,qBAAqB,CAC7B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,qBAAqB,EAC7B,aAAa,EAAE,MAAM,GACpB,OAAO;IA0CV,SAAS,CAAC,sBAAsB,CAC9B,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GACvB,MAAM;IAgCT,SAAS,CAAC,wBAAwB,CAChC,YAAY,EAAE,qBAAqB,EACnC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAC3C,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,EACrD,aAAa,EAAE,oBAAoB,EAAE,EACrC,cAAc,EAAE,eAAe,EAAE,GAChC,oBAAoB,EAAE;IA4HzB,SAAS,CAAC,kBAAkB,CAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,OAAO,GACjB,IAAI;CA6BR;AAED,wBAAgB,kBAAkB,SAEjC"}
1
+ {"version":3,"file":"AIPromptRunner.d.ts","sourceRoot":"","sources":["../src/AIPromptRunner.ts"],"names":[],"mappings":"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"}