11import type { ReadableStream } from 'stream/web' ;
22
3- import type { AxAIModelMap } from './base.js' ;
43import type {
4+ AxAIModelMap ,
55 AxAIPromptConfig ,
66 AxAIService ,
77 AxAIServiceActionOptions ,
@@ -11,18 +11,20 @@ import type {
1111 AxEmbedRequest ,
1212 AxEmbedResponse ,
1313 AxModelConfig ,
14- AxModelInfo
14+ AxModelInfoWithProvider
1515} from './types.js' ;
1616
1717export class AxBalancer implements AxAIService {
1818 private services : AxAIService [ ] ;
1919 private currentServiceIndex : number = 0 ;
2020 private currentService : AxAIService ;
21+ private serviceMap : Record < string , AxAIService > = { } ;
2122
2223 constructor ( services : readonly AxAIService [ ] ) {
2324 if ( services . length === 0 ) {
2425 throw new Error ( 'No AI services provided.' ) ;
2526 }
27+
2628 this . services = [ ...services ] . sort ( ( a , b ) => {
2729 const aInfo = a . getModelInfo ( ) ;
2830 const bInfo = b . getModelInfo ( ) ;
@@ -42,12 +44,8 @@ export class AxBalancer implements AxAIService {
4244 this . currentService = cs ;
4345 }
4446
45- setModelMap ( modelMap : AxAIModelMap < string > ) : void {
46- this . currentService . setModelMap ( modelMap ) ;
47- }
48-
49- setEmbedModelMap ( embedModelMap : AxAIModelMap < string > ) : void {
50- this . currentService . setEmbedModelMap ( embedModelMap ) ;
47+ getModelMap ( ) : AxAIModelMap | undefined {
48+ throw new Error ( 'Method not implemented.' ) ;
5149 }
5250
5351 private getNextService ( ) : boolean {
@@ -72,11 +70,11 @@ export class AxBalancer implements AxAIService {
7270 return this . currentService . getName ( ) ;
7371 }
7472
75- getModelInfo ( ) : Readonly < AxModelInfo & { provider : string } > {
73+ getModelInfo ( ) : Readonly < AxModelInfoWithProvider > {
7674 return this . currentService . getModelInfo ( ) ;
7775 }
7876
79- getEmbedModelInfo ( ) : Readonly < AxModelInfo > | undefined {
77+ getEmbedModelInfo ( ) : Readonly < AxModelInfoWithProvider > | undefined {
8078 return this . currentService . getEmbedModelInfo ( ) ;
8179 }
8280
0 commit comments