Skip to content

Commit 67600d4

Browse files
committed
Include Groq provider
1 parent 2d040f4 commit 67600d4

File tree

4 files changed

+219
-2
lines changed

4 files changed

+219
-2
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
"@jupyterlab/rendermime": "^4.4.0-alpha.0",
6363
"@jupyterlab/settingregistry": "^4.4.0-alpha.0",
6464
"@langchain/core": "^0.3.13",
65+
"@langchain/groq": "^0.1.2",
6566
"@langchain/mistralai": "^0.1.1",
6667
"@lumino/coreutils": "^2.1.2",
6768
"@lumino/polling": "^2.1.2",

schema/ai-provider.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"title": "The AI provider",
99
"description": "The AI provider to use for chat and completion",
1010
"default": "None",
11-
"enum": ["None", "MistralAI"]
11+
"enum": ["None", "Groq", "MistralAI"]
1212
}
1313
},
1414
"additionalProperties": true

src/llm-models/utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
2+
import { ChatGroq } from '@langchain/groq';
23
import { ChatMistralAI } from '@langchain/mistralai';
34
import { JSONObject } from '@lumino/coreutils';
45

@@ -30,6 +31,8 @@ export function getChatModel(
3031
): BaseChatModel | null {
3132
if (name === 'MistralAI') {
3233
return new ChatMistralAI({ ...settings });
34+
} else if (name === 'Groq') {
35+
return new ChatGroq({ ...settings });
3336
}
3437
return null;
3538
}
@@ -40,6 +43,8 @@ export function getChatModel(
4043
export function getErrorMessage(name: string, error: any): string {
4144
if (name === 'MistralAI') {
4245
return error.message;
46+
} else if (name === 'Groq') {
47+
return error.error.error.message;
4348
}
4449
return 'Unknown provider';
4550
}

yarn.lock

Lines changed: 212 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1944,6 +1944,7 @@ __metadata:
19441944
"@jupyterlab/rendermime": ^4.4.0-alpha.0
19451945
"@jupyterlab/settingregistry": ^4.4.0-alpha.0
19461946
"@langchain/core": ^0.3.13
1947+
"@langchain/groq": ^0.1.2
19471948
"@langchain/mistralai": ^0.1.1
19481949
"@lumino/coreutils": ^2.1.2
19491950
"@lumino/polling": ^2.1.2
@@ -1992,6 +1993,20 @@ __metadata:
19921993
languageName: node
19931994
linkType: hard
19941995

1996+
"@langchain/groq@npm:^0.1.2":
1997+
version: 0.1.3
1998+
resolution: "@langchain/groq@npm:0.1.3"
1999+
dependencies:
2000+
"@langchain/openai": ~0.3.0
2001+
groq-sdk: ^0.5.0
2002+
zod: ^3.22.4
2003+
zod-to-json-schema: ^3.22.5
2004+
peerDependencies:
2005+
"@langchain/core": ">=0.2.21 <0.4.0"
2006+
checksum: 29dc6c9fce60abcb10bc86c3c6107d1623be97bca539539ddbb0764bf539c01758b03a1c131f72794750f81815ebed19f4cd1109e0c408f2fe4861cb5ac66f4e
2007+
languageName: node
2008+
linkType: hard
2009+
19952010
"@langchain/mistralai@npm:^0.1.1":
19962011
version: 0.1.1
19972012
resolution: "@langchain/mistralai@npm:0.1.1"
@@ -2006,6 +2021,20 @@ __metadata:
20062021
languageName: node
20072022
linkType: hard
20082023

2024+
"@langchain/openai@npm:~0.3.0":
2025+
version: 0.3.17
2026+
resolution: "@langchain/openai@npm:0.3.17"
2027+
dependencies:
2028+
js-tiktoken: ^1.0.12
2029+
openai: ^4.77.0
2030+
zod: ^3.22.4
2031+
zod-to-json-schema: ^3.22.3
2032+
peerDependencies:
2033+
"@langchain/core": ">=0.3.29 <0.4.0"
2034+
checksum: af88894dcfa8381c0b0df924e085796995f5d5ba2a2657ea72b4181b35c5d92b0040c5cf305378c1f48a8f1f04d4a3b0b29ba1d84f80cedf5dab8bc46d7d5c6c
2035+
languageName: node
2036+
linkType: hard
2037+
20092038
"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1":
20102039
version: 1.2.1
20112040
resolution: "@lezer/common@npm:1.2.1"
@@ -2830,6 +2859,16 @@ __metadata:
28302859
languageName: node
28312860
linkType: hard
28322861

2862+
"@types/node-fetch@npm:^2.6.4":
2863+
version: 2.6.12
2864+
resolution: "@types/node-fetch@npm:2.6.12"
2865+
dependencies:
2866+
"@types/node": "*"
2867+
form-data: ^4.0.0
2868+
checksum: 9647e68f9a125a090220c38d77b3c8e669c488658ae7506f1b4f9568214beba087624b1705bba1dc76649a65281ce3fd5b400e15266cbef8088027fb88777557
2869+
languageName: node
2870+
linkType: hard
2871+
28332872
"@types/node@npm:*":
28342873
version: 20.14.2
28352874
resolution: "@types/node@npm:20.14.2"
@@ -2839,6 +2878,15 @@ __metadata:
28392878
languageName: node
28402879
linkType: hard
28412880

2881+
"@types/node@npm:^18.11.18":
2882+
version: 18.19.74
2883+
resolution: "@types/node@npm:18.19.74"
2884+
dependencies:
2885+
undici-types: ~5.26.4
2886+
checksum: 99bbddd23b8c397ec82fe89706ae52fcf0647c32f858db776f8dbd8e67d193df58b7179b6879abce73f26b607616af45f352446aee0c6b05d575fbbd528c6d6c
2887+
languageName: node
2888+
linkType: hard
2889+
28422890
"@types/normalize-package-data@npm:^2.4.0":
28432891
version: 2.4.4
28442892
resolution: "@types/normalize-package-data@npm:2.4.4"
@@ -3263,6 +3311,15 @@ __metadata:
32633311
languageName: node
32643312
linkType: hard
32653313

3314+
"abort-controller@npm:^3.0.0":
3315+
version: 3.0.0
3316+
resolution: "abort-controller@npm:3.0.0"
3317+
dependencies:
3318+
event-target-shim: ^5.0.0
3319+
checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75
3320+
languageName: node
3321+
linkType: hard
3322+
32663323
"acorn-import-assertions@npm:^1.9.0":
32673324
version: 1.9.0
32683325
resolution: "acorn-import-assertions@npm:1.9.0"
@@ -3290,6 +3347,15 @@ __metadata:
32903347
languageName: node
32913348
linkType: hard
32923349

3350+
"agentkeepalive@npm:^4.2.1":
3351+
version: 4.6.0
3352+
resolution: "agentkeepalive@npm:4.6.0"
3353+
dependencies:
3354+
humanize-ms: ^1.2.1
3355+
checksum: b3cdd10efca04876defda3c7671163523fcbce20e8ef7a8f9f30919a242e32b846791c0f1a8a0269718a585805a2cdcd031779ff7b9927a1a8dd8586f8c2e8c5
3356+
languageName: node
3357+
linkType: hard
3358+
32933359
"ajv-formats@npm:^2.1.1":
32943360
version: 2.1.1
32953361
resolution: "ajv-formats@npm:2.1.1"
@@ -3448,6 +3514,13 @@ __metadata:
34483514
languageName: node
34493515
linkType: hard
34503516

3517+
"asynckit@npm:^0.4.0":
3518+
version: 0.4.0
3519+
resolution: "asynckit@npm:0.4.0"
3520+
checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
3521+
languageName: node
3522+
linkType: hard
3523+
34513524
"available-typed-arrays@npm:^1.0.7":
34523525
version: 1.0.7
34533526
resolution: "available-typed-arrays@npm:1.0.7"
@@ -3683,6 +3756,15 @@ __metadata:
36833756
languageName: node
36843757
linkType: hard
36853758

3759+
"combined-stream@npm:^1.0.8":
3760+
version: 1.0.8
3761+
resolution: "combined-stream@npm:1.0.8"
3762+
dependencies:
3763+
delayed-stream: ~1.0.0
3764+
checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
3765+
languageName: node
3766+
linkType: hard
3767+
36863768
"commander@npm:^10.0.1":
36873769
version: 10.0.1
36883770
resolution: "commander@npm:10.0.1"
@@ -3989,6 +4071,13 @@ __metadata:
39894071
languageName: node
39904072
linkType: hard
39914073

4074+
"delayed-stream@npm:~1.0.0":
4075+
version: 1.0.0
4076+
resolution: "delayed-stream@npm:1.0.0"
4077+
checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
4078+
languageName: node
4079+
linkType: hard
4080+
39924081
"dir-glob@npm:^3.0.1":
39934082
version: 3.0.1
39944083
resolution: "dir-glob@npm:3.0.1"
@@ -4422,6 +4511,13 @@ __metadata:
44224511
languageName: node
44234512
linkType: hard
44244513

4514+
"event-target-shim@npm:^5.0.0":
4515+
version: 5.0.1
4516+
resolution: "event-target-shim@npm:5.0.1"
4517+
checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166
4518+
languageName: node
4519+
linkType: hard
4520+
44254521
"eventemitter3@npm:^4.0.4":
44264522
version: 4.0.7
44274523
resolution: "eventemitter3@npm:4.0.7"
@@ -4600,6 +4696,34 @@ __metadata:
46004696
languageName: node
46014697
linkType: hard
46024698

4699+
"form-data-encoder@npm:1.7.2":
4700+
version: 1.7.2
4701+
resolution: "form-data-encoder@npm:1.7.2"
4702+
checksum: aeebd87a1cb009e13cbb5e4e4008e6202ed5f6551eb6d9582ba8a062005178907b90f4887899d3c993de879159b6c0c940af8196725b428b4248cec5af3acf5f
4703+
languageName: node
4704+
linkType: hard
4705+
4706+
"form-data@npm:^4.0.0":
4707+
version: 4.0.1
4708+
resolution: "form-data@npm:4.0.1"
4709+
dependencies:
4710+
asynckit: ^0.4.0
4711+
combined-stream: ^1.0.8
4712+
mime-types: ^2.1.12
4713+
checksum: ccee458cd5baf234d6b57f349fe9cc5f9a2ea8fd1af5ecda501a18fd1572a6dd3bf08a49f00568afd995b6a65af34cb8dec083cf9d582c4e621836499498dd84
4714+
languageName: node
4715+
linkType: hard
4716+
4717+
"formdata-node@npm:^4.3.2":
4718+
version: 4.4.1
4719+
resolution: "formdata-node@npm:4.4.1"
4720+
dependencies:
4721+
node-domexception: 1.0.0
4722+
web-streams-polyfill: 4.0.0-beta.3
4723+
checksum: d91d4f667cfed74827fc281594102c0dabddd03c9f8b426fc97123eedbf73f5060ee43205d89284d6854e2fc5827e030cd352ef68b93beda8decc2d72128c576
4724+
languageName: node
4725+
linkType: hard
4726+
46034727
"free-style@npm:3.1.0":
46044728
version: 3.1.0
46054729
resolution: "free-style@npm:3.1.0"
@@ -4849,6 +4973,22 @@ __metadata:
48494973
languageName: node
48504974
linkType: hard
48514975

4976+
"groq-sdk@npm:^0.5.0":
4977+
version: 0.5.0
4978+
resolution: "groq-sdk@npm:0.5.0"
4979+
dependencies:
4980+
"@types/node": ^18.11.18
4981+
"@types/node-fetch": ^2.6.4
4982+
abort-controller: ^3.0.0
4983+
agentkeepalive: ^4.2.1
4984+
form-data-encoder: 1.7.2
4985+
formdata-node: ^4.3.2
4986+
node-fetch: ^2.6.7
4987+
web-streams-polyfill: ^3.2.1
4988+
checksum: 051ca56e99e4a2440080943c831b109687dd346b24155d3f085113df1ad0639cb95724c14a05611f7314d340db8bf342af425eb11905c97bc6a6948cd7262f04
4989+
languageName: node
4990+
linkType: hard
4991+
48524992
"hard-rejection@npm:^2.1.0":
48534993
version: 2.1.0
48544994
resolution: "hard-rejection@npm:2.1.0"
@@ -4962,6 +5102,15 @@ __metadata:
49625102
languageName: node
49635103
linkType: hard
49645104

5105+
"humanize-ms@npm:^1.2.1":
5106+
version: 1.2.1
5107+
resolution: "humanize-ms@npm:1.2.1"
5108+
dependencies:
5109+
ms: ^2.0.0
5110+
checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16
5111+
languageName: node
5112+
linkType: hard
5113+
49655114
"iconv-lite@npm:^0.6.2":
49665115
version: 0.6.3
49675116
resolution: "iconv-lite@npm:0.6.3"
@@ -5749,7 +5898,7 @@ __metadata:
57495898
languageName: node
57505899
linkType: hard
57515900

5752-
"mime-types@npm:^2.1.27":
5901+
"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27":
57535902
version: 2.1.35
57545903
resolution: "mime-types@npm:2.1.35"
57555904
dependencies:
@@ -5845,6 +5994,13 @@ __metadata:
58455994
languageName: node
58465995
linkType: hard
58475996

5997+
"ms@npm:^2.0.0":
5998+
version: 2.1.3
5999+
resolution: "ms@npm:2.1.3"
6000+
checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
6001+
languageName: node
6002+
linkType: hard
6003+
58486004
"mustache@npm:^4.2.0":
58496005
version: 4.2.0
58506006
resolution: "mustache@npm:4.2.0"
@@ -5884,6 +6040,13 @@ __metadata:
58846040
languageName: node
58856041
linkType: hard
58866042

6043+
"node-domexception@npm:1.0.0":
6044+
version: 1.0.0
6045+
resolution: "node-domexception@npm:1.0.0"
6046+
checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f
6047+
languageName: node
6048+
linkType: hard
6049+
58876050
"node-fetch@npm:^2.6.7":
58886051
version: 2.7.0
58896052
resolution: "node-fetch@npm:2.7.0"
@@ -5999,6 +6162,31 @@ __metadata:
59996162
languageName: node
60006163
linkType: hard
60016164

6165+
"openai@npm:^4.77.0":
6166+
version: 4.80.0
6167+
resolution: "openai@npm:4.80.0"
6168+
dependencies:
6169+
"@types/node": ^18.11.18
6170+
"@types/node-fetch": ^2.6.4
6171+
abort-controller: ^3.0.0
6172+
agentkeepalive: ^4.2.1
6173+
form-data-encoder: 1.7.2
6174+
formdata-node: ^4.3.2
6175+
node-fetch: ^2.6.7
6176+
peerDependencies:
6177+
ws: ^8.18.0
6178+
zod: ^3.23.8
6179+
peerDependenciesMeta:
6180+
ws:
6181+
optional: true
6182+
zod:
6183+
optional: true
6184+
bin:
6185+
openai: bin/cli
6186+
checksum: d20d5f34de510cad968e131d05290a1a0cda7d790944f701243f75db8223db8bdbdc373b2d90f69c1c14eceaf2fed65a500ef92726ec6d53a0f7306e83fbcc96
6187+
languageName: node
6188+
linkType: hard
6189+
60026190
"optionator@npm:^0.9.3":
60036191
version: 0.9.4
60046192
resolution: "optionator@npm:0.9.4"
@@ -7775,6 +7963,20 @@ __metadata:
77757963
languageName: node
77767964
linkType: hard
77777965

7966+
"web-streams-polyfill@npm:4.0.0-beta.3":
7967+
version: 4.0.0-beta.3
7968+
resolution: "web-streams-polyfill@npm:4.0.0-beta.3"
7969+
checksum: dfec1fbf52b9140e4183a941e380487b6c3d5d3838dd1259be81506c1c9f2abfcf5aeb670aeeecfd9dff4271a6d8fef931b193c7bedfb42542a3b05ff36c0d16
7970+
languageName: node
7971+
linkType: hard
7972+
7973+
"web-streams-polyfill@npm:^3.2.1":
7974+
version: 3.3.3
7975+
resolution: "web-streams-polyfill@npm:3.3.3"
7976+
checksum: 21ab5ea08a730a2ef8023736afe16713b4f2023ec1c7085c16c8e293ee17ed085dff63a0ad8722da30c99c4ccbd4ccd1b2e79c861829f7ef2963d7de7004c2cb
7977+
languageName: node
7978+
linkType: hard
7979+
77787980
"webidl-conversions@npm:^3.0.0":
77797981
version: 3.0.1
77807982
resolution: "webidl-conversions@npm:3.0.1"
@@ -8099,6 +8301,15 @@ __metadata:
80998301
languageName: node
81008302
linkType: hard
81018303

8304+
"zod-to-json-schema@npm:^3.22.5":
8305+
version: 3.24.1
8306+
resolution: "zod-to-json-schema@npm:3.24.1"
8307+
peerDependencies:
8308+
zod: ^3.24.1
8309+
checksum: 7195563f611bc21ea7f44129b8e32780125a9bd98b2e6b8709ac98bd2645729fecd87b8aeeaa8789617ee3f38e6585bab23dd613e2a35c31c6c157908f7a1681
8310+
languageName: node
8311+
linkType: hard
8312+
81028313
"zod@npm:^3.22.4":
81038314
version: 3.23.8
81048315
resolution: "zod@npm:3.23.8"

0 commit comments

Comments
 (0)