@jupyterlite/ai 0.6.2 → 0.8.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 +1 -1
- package/lib/base-completer.d.ts +22 -5
- package/lib/base-completer.js +14 -1
- package/lib/chat-handler.d.ts +23 -11
- package/lib/chat-handler.js +66 -45
- package/lib/completion-provider.d.ts +2 -2
- package/lib/completion-provider.js +5 -4
- package/lib/components/stop-button.d.ts +0 -1
- package/lib/default-prompts.d.ts +2 -0
- package/lib/default-prompts.js +31 -0
- package/lib/default-providers/Anthropic/completer.d.ts +4 -11
- package/lib/default-providers/Anthropic/completer.js +5 -16
- package/lib/default-providers/ChromeAI/completer.d.ts +4 -11
- package/lib/default-providers/ChromeAI/completer.js +5 -16
- package/lib/default-providers/ChromeAI/instructions.d.ts +4 -0
- package/lib/default-providers/ChromeAI/instructions.js +18 -0
- package/lib/default-providers/ChromeAI/settings-schema.json +0 -3
- package/lib/default-providers/Gemini/completer.d.ts +12 -0
- package/lib/default-providers/Gemini/completer.js +48 -0
- package/lib/default-providers/Gemini/instructions.d.ts +2 -0
- package/lib/default-providers/Gemini/instructions.js +9 -0
- package/lib/default-providers/Gemini/settings-schema.json +64 -0
- package/lib/default-providers/MistralAI/completer.d.ts +10 -13
- package/lib/default-providers/MistralAI/completer.js +42 -52
- package/lib/default-providers/MistralAI/instructions.d.ts +1 -1
- package/lib/default-providers/MistralAI/instructions.js +2 -0
- package/lib/default-providers/Ollama/completer.d.ts +12 -0
- package/lib/default-providers/Ollama/completer.js +43 -0
- package/lib/default-providers/Ollama/instructions.d.ts +2 -0
- package/lib/default-providers/Ollama/instructions.js +70 -0
- package/lib/default-providers/Ollama/settings-schema.json +143 -0
- package/lib/default-providers/OpenAI/completer.d.ts +4 -11
- package/lib/default-providers/OpenAI/completer.js +8 -16
- package/lib/default-providers/OpenAI/settings-schema.json +88 -128
- package/lib/default-providers/WebLLM/completer.d.ts +21 -0
- package/lib/default-providers/WebLLM/completer.js +127 -0
- package/lib/default-providers/WebLLM/instructions.d.ts +6 -0
- package/lib/default-providers/WebLLM/instructions.js +32 -0
- package/lib/default-providers/WebLLM/settings-schema.json +19 -0
- package/lib/default-providers/index.js +127 -8
- package/lib/index.d.ts +3 -2
- package/lib/index.js +80 -36
- package/lib/provider.d.ts +48 -22
- package/lib/provider.js +254 -101
- package/lib/settings/index.d.ts +1 -1
- package/lib/settings/index.js +1 -1
- package/lib/settings/panel.d.ts +151 -14
- package/lib/settings/panel.js +334 -145
- package/lib/settings/textarea.d.ts +2 -0
- package/lib/settings/textarea.js +18 -0
- package/lib/tokens.d.ts +45 -22
- package/lib/tokens.js +2 -1
- package/lib/types/ai-model.d.ts +24 -0
- package/lib/types/ai-model.js +5 -0
- package/package.json +19 -15
- package/schema/chat.json +1 -1
- package/schema/provider-registry.json +8 -8
- package/schema/system-prompts.json +22 -0
- package/src/base-completer.ts +38 -6
- package/src/chat-handler.ts +62 -31
- package/src/completion-provider.ts +3 -3
- package/src/default-prompts.ts +33 -0
- package/src/default-providers/Anthropic/completer.ts +5 -21
- package/src/default-providers/ChromeAI/completer.ts +5 -21
- package/src/default-providers/ChromeAI/instructions.ts +21 -0
- package/src/default-providers/Gemini/completer.ts +61 -0
- package/src/default-providers/Gemini/instructions.ts +9 -0
- package/src/default-providers/MistralAI/completer.ts +47 -65
- package/src/default-providers/MistralAI/instructions.ts +2 -0
- package/src/default-providers/Ollama/completer.ts +54 -0
- package/src/default-providers/Ollama/instructions.ts +70 -0
- package/src/default-providers/OpenAI/completer.ts +8 -21
- package/src/default-providers/WebLLM/completer.ts +151 -0
- package/src/default-providers/WebLLM/instructions.ts +33 -0
- package/src/default-providers/index.ts +158 -18
- package/src/index.ts +108 -40
- package/src/provider.ts +300 -109
- package/src/settings/index.ts +1 -1
- package/src/settings/panel.tsx +463 -101
- package/src/settings/textarea.tsx +33 -0
- package/src/tokens.ts +49 -24
- package/src/types/ai-model.ts +37 -0
- package/src/types/service-worker.d.ts +6 -0
- package/style/base.css +34 -0
- package/lib/settings/settings-connector.d.ts +0 -31
- package/lib/settings/settings-connector.js +0 -61
- package/src/settings/settings-connector.ts +0 -88
package/lib/settings/panel.d.ts
CHANGED
|
@@ -1,24 +1,89 @@
|
|
|
1
1
|
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
|
|
2
|
-
import { ISettingConnector } from '@jupyterlab/settingregistry';
|
|
3
2
|
import { IFormRenderer } from '@jupyterlab/ui-components';
|
|
4
3
|
import type { FieldProps } from '@rjsf/utils';
|
|
5
4
|
import { JSONSchema7 } from 'json-schema';
|
|
6
5
|
import { ISecretsManager } from 'jupyter-secrets-manager';
|
|
7
6
|
import React from 'react';
|
|
8
|
-
import { IAIProviderRegistry, IDict } from '../tokens';
|
|
7
|
+
import { IAIProviderRegistry, IDict, ModelRole } from '../tokens';
|
|
9
8
|
export declare const aiSettingsRenderer: (options: {
|
|
10
9
|
providerRegistry: IAIProviderRegistry;
|
|
11
10
|
secretsToken?: symbol;
|
|
12
11
|
rmRegistry?: IRenderMimeRegistry;
|
|
13
12
|
secretsManager?: ISecretsManager;
|
|
14
|
-
settingConnector?: ISettingConnector;
|
|
15
13
|
}) => IFormRenderer;
|
|
16
|
-
export interface
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
export interface IAiSettings {
|
|
15
|
+
/**
|
|
16
|
+
* Get the local storage settings for a specific role (chat or completer).
|
|
17
|
+
*/
|
|
18
|
+
getLocalStorage(role: ModelRole): IDict<any>;
|
|
19
|
+
/**
|
|
20
|
+
* Set the local storage item for a specific role (chat or completer).
|
|
21
|
+
* If the key is not provider (null) we assume the value should replace the whole
|
|
22
|
+
* local storage for this role.
|
|
23
|
+
*/
|
|
24
|
+
setLocalStorageItem(role: ModelRole, key: string | null, value: any): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get the settings from the registry (jupyterlab settings system) for a given role.
|
|
27
|
+
*/
|
|
28
|
+
getSettingsFromRegistry(role: ModelRole): IDict<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Save the settings to the setting registry.
|
|
31
|
+
*/
|
|
32
|
+
saveSettingsToRegistry(role: ModelRole, settings: IDict<any>): void;
|
|
19
33
|
}
|
|
20
|
-
export declare class AiSettings extends React.Component<FieldProps,
|
|
34
|
+
export declare class AiSettings extends React.Component<FieldProps, AiSettings.states> implements IAiSettings {
|
|
21
35
|
constructor(props: FieldProps);
|
|
36
|
+
private _settingsChanged;
|
|
37
|
+
/**
|
|
38
|
+
* Get the local storage settings for a specific role (chat or completer).
|
|
39
|
+
*/
|
|
40
|
+
getLocalStorage: (role: ModelRole) => IDict<any>;
|
|
41
|
+
/**
|
|
42
|
+
* Set the local storage item for a specific role (chat or completer).
|
|
43
|
+
* If the key is not provider (null) we assume the value should replace the whole
|
|
44
|
+
* local storage for this role.
|
|
45
|
+
*/
|
|
46
|
+
setLocalStorageItem: (role: ModelRole, key: string | null, value: any) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Get the settings from the registry (jupyterlab settings system) for a given role.
|
|
49
|
+
*/
|
|
50
|
+
getSettingsFromRegistry: (role: ModelRole) => IDict<any>;
|
|
51
|
+
/**
|
|
52
|
+
* Save the settings to the setting registry.
|
|
53
|
+
*/
|
|
54
|
+
saveSettingsToRegistry: (role: ModelRole, settings: IDict<any>) => void;
|
|
55
|
+
render(): JSX.Element;
|
|
56
|
+
private _settings;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The AI settings component namespace.
|
|
60
|
+
*/
|
|
61
|
+
declare namespace AiSettings {
|
|
62
|
+
/**
|
|
63
|
+
* The AI settings component states.
|
|
64
|
+
*/
|
|
65
|
+
type states = {
|
|
66
|
+
/**
|
|
67
|
+
* Whether there is only one provider for chat and completion.
|
|
68
|
+
*/
|
|
69
|
+
uniqueProvider: boolean;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* The provider names object.
|
|
73
|
+
*/
|
|
74
|
+
type providers = {
|
|
75
|
+
[key in ModelRole]: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* The provider schemas object.
|
|
79
|
+
*/
|
|
80
|
+
type schemas = {
|
|
81
|
+
[key in ModelRole]: JSONSchema7;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export declare class AiProviderSettings extends React.Component<AiProviderSettings.props, AiProviderSettings.states> {
|
|
85
|
+
constructor(props: AiProviderSettings.props);
|
|
86
|
+
componentDidMount(): void;
|
|
22
87
|
componentDidUpdate(): Promise<void>;
|
|
23
88
|
componentWillUnmount(): void;
|
|
24
89
|
/**
|
|
@@ -30,13 +95,25 @@ export declare class AiSettings extends React.Component<FieldProps, ISettingsFor
|
|
|
30
95
|
*/
|
|
31
96
|
saveCurrentProvider(): void;
|
|
32
97
|
/**
|
|
33
|
-
* Get settings from local storage for
|
|
98
|
+
* Get settings from local storage for the current provider provider.
|
|
34
99
|
*/
|
|
35
|
-
|
|
100
|
+
getSettingsFromLocalStorage(): IDict<any>;
|
|
36
101
|
/**
|
|
37
102
|
* Save settings in local storage for a given provider.
|
|
38
103
|
*/
|
|
39
|
-
|
|
104
|
+
saveSettingsToLocalStorage(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Save the settings to the setting registry.
|
|
107
|
+
*/
|
|
108
|
+
saveSettingsToRegistry(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Triggered when the settings has changed.
|
|
111
|
+
*/
|
|
112
|
+
private _settingsChanged;
|
|
113
|
+
/**
|
|
114
|
+
* Triggered when the secret fields visibility has changed.
|
|
115
|
+
*/
|
|
116
|
+
private _fieldVisibilityChanged;
|
|
40
117
|
/**
|
|
41
118
|
* Update the settings whether the secrets manager is used or not.
|
|
42
119
|
*
|
|
@@ -57,7 +134,12 @@ export declare class AiSettings extends React.Component<FieldProps, ISettingsFor
|
|
|
57
134
|
*/
|
|
58
135
|
private _renderInstruction;
|
|
59
136
|
/**
|
|
60
|
-
*
|
|
137
|
+
* Check for compatibility of the provider with the current environment.
|
|
138
|
+
* If the provider is not compatible, display an error message.
|
|
139
|
+
*/
|
|
140
|
+
private _checkProviderCompatibility;
|
|
141
|
+
/**
|
|
142
|
+
* Triggered when the provider has changed, to update the schema and values.
|
|
61
143
|
* Update the Jupyterlab settings accordingly.
|
|
62
144
|
*/
|
|
63
145
|
private _onProviderChanged;
|
|
@@ -66,24 +148,79 @@ export declare class AiSettings extends React.Component<FieldProps, ISettingsFor
|
|
|
66
148
|
* with the secret manager.
|
|
67
149
|
*/
|
|
68
150
|
private _onPasswordUpdated;
|
|
151
|
+
/**
|
|
152
|
+
* Update the current settings with the new values from the form.
|
|
153
|
+
*
|
|
154
|
+
* @param data - The form data to update.
|
|
155
|
+
* @returns - Boolean whether the form is not the default one.
|
|
156
|
+
*/
|
|
157
|
+
private _updatedFormData;
|
|
69
158
|
/**
|
|
70
159
|
* Triggered when the form value has changed, to update the current settings and save
|
|
71
160
|
* it in local storage.
|
|
72
161
|
* Update the Jupyterlab settings accordingly.
|
|
73
162
|
*/
|
|
74
|
-
private
|
|
163
|
+
private _onFormChanged;
|
|
164
|
+
/**
|
|
165
|
+
* Handler for the "Restore to defaults" button - clears all
|
|
166
|
+
* modified settings then calls `setFormData` to restore the
|
|
167
|
+
* values.
|
|
168
|
+
*/
|
|
169
|
+
private _reset;
|
|
75
170
|
render(): JSX.Element;
|
|
171
|
+
private _role;
|
|
76
172
|
private _providerRegistry;
|
|
77
173
|
private _provider;
|
|
78
174
|
private _providerSchema;
|
|
79
175
|
private _useSecretsManager;
|
|
80
|
-
private _hideSecretFields;
|
|
81
176
|
private _rmRegistry;
|
|
82
177
|
private _secretsManager;
|
|
83
|
-
private _settingConnector;
|
|
84
178
|
private _currentSettings;
|
|
85
179
|
private _uiSchema;
|
|
86
180
|
private _settings;
|
|
87
181
|
private _formRef;
|
|
88
182
|
private _secretFields;
|
|
183
|
+
private _defaultFormData;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* The AI provider settings component namespace.
|
|
187
|
+
*/
|
|
188
|
+
export declare namespace AiProviderSettings {
|
|
189
|
+
/**
|
|
190
|
+
* The AI provider settings component props.
|
|
191
|
+
*/
|
|
192
|
+
type props = FieldProps & {
|
|
193
|
+
/**
|
|
194
|
+
* Why this model is used for (chat or completion).
|
|
195
|
+
*/
|
|
196
|
+
role: ModelRole;
|
|
197
|
+
/**
|
|
198
|
+
* The parent component which should handle:
|
|
199
|
+
* - the get/set functions for local storage
|
|
200
|
+
* - save settings using jupyter settings system
|
|
201
|
+
*/
|
|
202
|
+
aiSettings: IAiSettings;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* The AI provider settings component states.
|
|
206
|
+
*/
|
|
207
|
+
type states = {
|
|
208
|
+
/**
|
|
209
|
+
* The schema of the settings.
|
|
210
|
+
*/
|
|
211
|
+
schema: JSONSchema7;
|
|
212
|
+
/**
|
|
213
|
+
* The instructions for this provider.
|
|
214
|
+
*/
|
|
215
|
+
instruction: HTMLElement | null;
|
|
216
|
+
/**
|
|
217
|
+
* An error if the model in not compatible with the current environment.
|
|
218
|
+
*/
|
|
219
|
+
compatibilityError: string | null;
|
|
220
|
+
/**
|
|
221
|
+
* Whether the settings are modified from default or not.
|
|
222
|
+
*/
|
|
223
|
+
isModified?: boolean;
|
|
224
|
+
};
|
|
89
225
|
}
|
|
226
|
+
export {};
|