@jupyterlite/ai 0.3.0 → 0.5.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/lib/chat-handler.d.ts +10 -4
- package/lib/chat-handler.js +42 -10
- package/lib/completion-provider.d.ts +5 -18
- package/lib/completion-provider.js +8 -34
- package/lib/{llm-models/anthropic-completer.d.ts → default-providers/Anthropic/completer.d.ts} +1 -1
- package/lib/{llm-models/anthropic-completer.js → default-providers/Anthropic/completer.js} +1 -1
- package/lib/{llm-models/chrome-completer.d.ts → default-providers/ChromeAI/completer.d.ts} +1 -1
- package/lib/{llm-models/chrome-completer.js → default-providers/ChromeAI/completer.js} +1 -1
- package/lib/default-providers/ChromeAI/instructions.d.ts +2 -0
- package/lib/default-providers/ChromeAI/instructions.js +24 -0
- package/lib/{llm-models/codestral-completer.d.ts → default-providers/MistralAI/completer.d.ts} +1 -1
- package/lib/{llm-models/codestral-completer.js → default-providers/MistralAI/completer.js} +1 -1
- package/lib/default-providers/MistralAI/instructions.d.ts +2 -0
- package/lib/default-providers/MistralAI/instructions.js +16 -0
- package/lib/{llm-models/openai-completer.d.ts → default-providers/OpenAI/completer.d.ts} +1 -1
- package/lib/{llm-models/openai-completer.js → default-providers/OpenAI/completer.js} +1 -1
- package/lib/default-providers/index.d.ts +2 -0
- package/lib/default-providers/index.js +60 -0
- package/lib/index.d.ts +3 -3
- package/lib/index.js +51 -64
- package/lib/provider.d.ts +45 -17
- package/lib/provider.js +97 -41
- package/lib/settings/base.json +7 -0
- package/lib/settings/panel.d.ts +84 -0
- package/lib/settings/panel.js +267 -0
- package/lib/tokens.d.ts +103 -0
- package/lib/tokens.js +5 -0
- package/package.json +12 -5
- package/schema/provider-registry.json +23 -0
- package/src/chat-handler.ts +50 -13
- package/src/completion-provider.ts +13 -37
- package/src/{llm-models/anthropic-completer.ts → default-providers/Anthropic/completer.ts} +2 -2
- package/src/{llm-models/chrome-completer.ts → default-providers/ChromeAI/completer.ts} +3 -2
- package/src/default-providers/ChromeAI/instructions.ts +24 -0
- package/src/{llm-models/codestral-completer.ts → default-providers/MistralAI/completer.ts} +2 -2
- package/src/default-providers/MistralAI/instructions.ts +16 -0
- package/src/{llm-models/openai-completer.ts → default-providers/OpenAI/completer.ts} +2 -2
- package/src/default-providers/index.ts +71 -0
- package/src/index.ts +75 -77
- package/src/provider.ts +100 -43
- package/src/settings/panel.tsx +346 -0
- package/src/tokens.ts +112 -0
- package/style/base.css +4 -0
- package/lib/llm-models/index.d.ts +0 -3
- package/lib/llm-models/index.js +0 -3
- package/lib/llm-models/utils.d.ts +0 -16
- package/lib/llm-models/utils.js +0 -86
- package/lib/slash-commands.d.ts +0 -16
- package/lib/slash-commands.js +0 -25
- package/lib/token.d.ts +0 -13
- package/lib/token.js +0 -2
- package/schema/ai-provider.json +0 -17
- package/src/llm-models/index.ts +0 -3
- package/src/llm-models/utils.ts +0 -90
- package/src/slash-commands.tsx +0 -55
- package/src/token.ts +0 -19
- /package/lib/{llm-models/base-completer.d.ts → base-completer.d.ts} +0 -0
- /package/lib/{llm-models/base-completer.js → base-completer.js} +0 -0
- /package/lib/{_provider-settings/anthropic.json → default-providers/Anthropic/settings-schema.json} +0 -0
- /package/lib/{_provider-settings/chromeAI.json → default-providers/ChromeAI/settings-schema.json} +0 -0
- /package/lib/{_provider-settings/mistralAI.json → default-providers/MistralAI/settings-schema.json} +0 -0
- /package/lib/{_provider-settings/openAI.json → default-providers/OpenAI/settings-schema.json} +0 -0
- /package/src/{llm-models/base-completer.ts → base-completer.ts} +0 -0
- /package/src/{llm-models/svg.d.ts → global.d.ts} +0 -0
package/src/llm-models/utils.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { ChatAnthropic } from '@langchain/anthropic';
|
|
2
|
-
import { ChromeAI } from '@langchain/community/experimental/llms/chrome_ai';
|
|
3
|
-
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
4
|
-
import { ChatMistralAI } from '@langchain/mistralai';
|
|
5
|
-
import { ChatOpenAI } from '@langchain/openai';
|
|
6
|
-
|
|
7
|
-
import { IBaseCompleter } from './base-completer';
|
|
8
|
-
import { AnthropicCompleter } from './anthropic-completer';
|
|
9
|
-
import { CodestralCompleter } from './codestral-completer';
|
|
10
|
-
import { ReadonlyPartialJSONObject } from '@lumino/coreutils';
|
|
11
|
-
import { ChromeCompleter } from './chrome-completer';
|
|
12
|
-
import { OpenAICompleter } from './openai-completer';
|
|
13
|
-
|
|
14
|
-
import chromeAI from '../_provider-settings/chromeAI.json';
|
|
15
|
-
import mistralAI from '../_provider-settings/mistralAI.json';
|
|
16
|
-
import anthropic from '../_provider-settings/anthropic.json';
|
|
17
|
-
import openAI from '../_provider-settings/openAI.json';
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Get an LLM completer from the name.
|
|
21
|
-
*/
|
|
22
|
-
export function getCompleter(
|
|
23
|
-
name: string,
|
|
24
|
-
settings: ReadonlyPartialJSONObject
|
|
25
|
-
): IBaseCompleter | null {
|
|
26
|
-
if (name === 'MistralAI') {
|
|
27
|
-
return new CodestralCompleter({ settings });
|
|
28
|
-
} else if (name === 'Anthropic') {
|
|
29
|
-
return new AnthropicCompleter({ settings });
|
|
30
|
-
} else if (name === 'ChromeAI') {
|
|
31
|
-
return new ChromeCompleter({ settings });
|
|
32
|
-
} else if (name === 'OpenAI') {
|
|
33
|
-
return new OpenAICompleter({ settings });
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Get an LLM chat model from the name.
|
|
40
|
-
*/
|
|
41
|
-
export function getChatModel(
|
|
42
|
-
name: string,
|
|
43
|
-
settings: ReadonlyPartialJSONObject
|
|
44
|
-
): BaseChatModel | null {
|
|
45
|
-
if (name === 'MistralAI') {
|
|
46
|
-
return new ChatMistralAI({ ...settings });
|
|
47
|
-
} else if (name === 'Anthropic') {
|
|
48
|
-
return new ChatAnthropic({ ...settings });
|
|
49
|
-
} else if (name === 'ChromeAI') {
|
|
50
|
-
// TODO: fix
|
|
51
|
-
// @ts-expect-error: missing properties
|
|
52
|
-
return new ChromeAI({ ...settings });
|
|
53
|
-
} else if (name === 'OpenAI') {
|
|
54
|
-
return new ChatOpenAI({ ...settings });
|
|
55
|
-
}
|
|
56
|
-
return null;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Get the error message from provider.
|
|
61
|
-
*/
|
|
62
|
-
export function getErrorMessage(name: string, error: any): string {
|
|
63
|
-
if (name === 'MistralAI') {
|
|
64
|
-
return error.message;
|
|
65
|
-
} else if (name === 'Anthropic') {
|
|
66
|
-
return error.error.error.message;
|
|
67
|
-
} else if (name === 'ChromeAI') {
|
|
68
|
-
return error.message;
|
|
69
|
-
} else if (name === 'OpenAI') {
|
|
70
|
-
return error.message;
|
|
71
|
-
}
|
|
72
|
-
return 'Unknown provider';
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/*
|
|
76
|
-
* Get an LLM completer from the name.
|
|
77
|
-
*/
|
|
78
|
-
export function getSettings(name: string): any {
|
|
79
|
-
if (name === 'MistralAI') {
|
|
80
|
-
return mistralAI.properties;
|
|
81
|
-
} else if (name === 'Anthropic') {
|
|
82
|
-
return anthropic.properties;
|
|
83
|
-
} else if (name === 'ChromeAI') {
|
|
84
|
-
return chromeAI.properties;
|
|
85
|
-
} else if (name === 'OpenAI') {
|
|
86
|
-
return openAI.properties;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return null;
|
|
90
|
-
}
|
package/src/slash-commands.tsx
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TODO: reuse from Jupyter AI instead of copying?
|
|
3
|
-
* https://github.com/jupyterlab/jupyter-ai/blob/main/packages/jupyter-ai/src/slash-autocompletion.tsx
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { Box, Typography } from '@mui/material';
|
|
7
|
-
import { AutocompleteCommand } from '@jupyter/chat';
|
|
8
|
-
|
|
9
|
-
import HideSource from '@mui/icons-material/HideSource';
|
|
10
|
-
|
|
11
|
-
import React from 'react';
|
|
12
|
-
|
|
13
|
-
const DEFAULT_SLASH_COMMAND_ICONS: Record<string, JSX.Element> = {
|
|
14
|
-
clear: <HideSource />
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type SlashCommandOption = AutocompleteCommand & {
|
|
18
|
-
id: string;
|
|
19
|
-
description: string;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Renders an option shown in the slash command autocomplete.
|
|
24
|
-
*/
|
|
25
|
-
export function renderSlashCommandOption(
|
|
26
|
-
optionProps: React.HTMLAttributes<HTMLLIElement>,
|
|
27
|
-
option: SlashCommandOption
|
|
28
|
-
): JSX.Element {
|
|
29
|
-
const icon =
|
|
30
|
-
option.id in DEFAULT_SLASH_COMMAND_ICONS
|
|
31
|
-
? DEFAULT_SLASH_COMMAND_ICONS[option.id]
|
|
32
|
-
: DEFAULT_SLASH_COMMAND_ICONS.unknown;
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<li {...optionProps}>
|
|
36
|
-
<Box sx={{ lineHeight: 0, marginRight: 4, opacity: 0.618 }}>{icon}</Box>
|
|
37
|
-
<Box sx={{ flexGrow: 1 }}>
|
|
38
|
-
<Typography
|
|
39
|
-
component="span"
|
|
40
|
-
sx={{
|
|
41
|
-
fontSize: 'var(--jp-ui-font-size1)'
|
|
42
|
-
}}
|
|
43
|
-
>
|
|
44
|
-
{option.label}
|
|
45
|
-
</Typography>
|
|
46
|
-
<Typography
|
|
47
|
-
component="span"
|
|
48
|
-
sx={{ opacity: 0.618, fontSize: 'var(--jp-ui-font-size0)' }}
|
|
49
|
-
>
|
|
50
|
-
{' — ' + option.description}
|
|
51
|
-
</Typography>
|
|
52
|
-
</Box>
|
|
53
|
-
</li>
|
|
54
|
-
);
|
|
55
|
-
}
|
package/src/token.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
2
|
-
import { Token } from '@lumino/coreutils';
|
|
3
|
-
import { ISignal } from '@lumino/signaling';
|
|
4
|
-
|
|
5
|
-
import { IBaseCompleter } from './llm-models';
|
|
6
|
-
|
|
7
|
-
export interface IAIProvider {
|
|
8
|
-
name: string;
|
|
9
|
-
completer: IBaseCompleter | null;
|
|
10
|
-
chatModel: BaseChatModel | null;
|
|
11
|
-
modelChange: ISignal<IAIProvider, void>;
|
|
12
|
-
chatError: string;
|
|
13
|
-
completerError: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const IAIProvider = new Token<IAIProvider>(
|
|
17
|
-
'@jupyterlite/ai:AIProvider',
|
|
18
|
-
'Provider for chat and completion LLM provider'
|
|
19
|
-
);
|
|
File without changes
|
|
File without changes
|
/package/lib/{_provider-settings/anthropic.json → default-providers/Anthropic/settings-schema.json}
RENAMED
|
File without changes
|
/package/lib/{_provider-settings/chromeAI.json → default-providers/ChromeAI/settings-schema.json}
RENAMED
|
File without changes
|
/package/lib/{_provider-settings/mistralAI.json → default-providers/MistralAI/settings-schema.json}
RENAMED
|
File without changes
|
/package/lib/{_provider-settings/openAI.json → default-providers/OpenAI/settings-schema.json}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|