Skip to content

Commit 70e886b

Browse files
committed
Use the provider registry for the settings schema
1 parent f72e0d1 commit 70e886b

File tree

5 files changed

+14
-101
lines changed

5 files changed

+14
-101
lines changed

src/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
1818
import { ISettingRegistry } from '@jupyterlab/settingregistry';
1919

2020
import { ChatHandler } from './chat-handler';
21-
import { getSettings, AIProviders } from './llm-models';
21+
import { AIProviders } from './llm-models';
2222
import { AIProviderRegistry } from './provider';
2323
import { renderSlashCommandOption } from './slash-commands';
2424
import { IAIProviderRegistry } from './token';
@@ -175,7 +175,7 @@ const aiProviderPlugin: JupyterFrontEndPlugin<IAIProviderRegistry> = {
175175
delete settings.schema.properties?.[key];
176176
}
177177
});
178-
const properties = getSettings(provider);
178+
const properties = aiProvider.settingsSchema(provider);
179179
if (properties === null) {
180180
return;
181181
}

src/llm-models/index.ts

+9-6
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,21 @@ import { CodestralCompleter } from './codestral-completer';
88
import { ChromeCompleter } from './chrome-completer';
99
import { OpenAICompleter } from './openai-completer';
1010

11-
import { ProviderSettings } from '../settings/schemas';
11+
import chromeAI from '../_provider-settings/chromeAI.json';
12+
import mistralAI from '../_provider-settings/mistralAI.json';
13+
import anthropic from '../_provider-settings/anthropic.json';
14+
import openAI from '../_provider-settings/openAI.json';
15+
1216
import { IAIProvider } from '../token';
1317

1418
export * from './base-completer';
15-
export * from './utils';
1619

1720
const AIProviders: IAIProvider[] = [
1821
{
1922
name: 'Anthropic',
2023
chatModel: ChatAnthropic,
2124
completer: AnthropicCompleter,
22-
settings: ProviderSettings['Anthropic'],
25+
settings: anthropic,
2326
errorMessage: (error: any) => error.error.error.message
2427
},
2528
{
@@ -28,19 +31,19 @@ const AIProviders: IAIProvider[] = [
2831
// @ts-expect-error: missing properties
2932
chatModel: ChromeAI,
3033
completer: ChromeCompleter,
31-
settings: ProviderSettings['ChromeAI']
34+
settings: chromeAI
3235
},
3336
{
3437
name: 'MistralAI',
3538
chatModel: ChatMistralAI,
3639
completer: CodestralCompleter,
37-
settings: ProviderSettings['MistralAI']
40+
settings: mistralAI
3841
},
3942
{
4043
name: 'OpenAI',
4144
chatModel: ChatOpenAI,
4245
completer: OpenAICompleter,
43-
settings: ProviderSettings['OpenAI']
46+
settings: openAI
4447
}
4548
];
4649

src/llm-models/utils.ts

-90
This file was deleted.

src/provider.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ export class AIProviderRegistry implements IAIProviderRegistry {
8181
* Get the settings schema.
8282
*/
8383
settingsSchema(provider: string): JSONSchema7 {
84-
return this._providers.get(provider)?.settings?.properties || {};
84+
return (this._providers.get(provider)?.settings?.properties ||
85+
{}) as JSONSchema7;
8586
}
8687

8788
/**

src/token.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { Token } from '@lumino/coreutils';
33
import { ISignal } from '@lumino/signaling';
44

55
import { IBaseCompleter } from './llm-models';
6-
import { JSONSchema7 } from 'json-schema';
76

87
export interface IType<T> {
98
new (...args: any[]): T;
@@ -13,7 +12,7 @@ export interface IAIProvider {
1312
name: string;
1413
chatModel?: IType<BaseChatModel>;
1514
completer?: IType<IBaseCompleter>;
16-
settings?: JSONSchema7;
15+
settings?: any;
1716
instructions?: string;
1817
errorMessage?: (error: any) => string;
1918
}

0 commit comments

Comments
 (0)