Skip to content

Commit c6a92b4

Browse files
committed
feat(llm): add glm-4 model support for chats
1 parent 9b63fcd commit c6a92b4

File tree

7 files changed

+281
-12
lines changed

7 files changed

+281
-12
lines changed

docs/configuration.md

+14-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Shows in chat panel model selection list.
3939
- **title** Display selected text
4040
- **type** `string`
4141
- **provider** Use that LLM Provider.
42-
- **type** `"anthropic" | "openai" | "qianfan" | "tongyi"`
42+
- **type** `"anthropic" | "openai" | "qianfan" | "tongyi" | "zhipuai"`
4343
- **baseURL** LLM API baseURL, Default use provider config.
4444
- **type** `string | undefined`
4545
- **apiKey** LLM API key, Default use provider config.
@@ -84,6 +84,11 @@ examples:
8484
"provider": "qianfan",
8585
"model": "ERNIE-Bot-turbo",
8686
},
87+
{
88+
"title": "ChatGLM 4",
89+
"provider": "zhipuai",
90+
"model": "glm-4",
91+
},
8792
]
8893
```
8994

@@ -232,6 +237,14 @@ See [开通 DashScope 并创建 API-KEY](https://help.aliyun.com/zh/dashscope/de
232237

233238
See [ollama](https://ollama.com/)
234239

240+
### ZhipuAI
241+
242+
See [智谱 AI 开放平台](https://open.bigmodel.cn/dev/api).
243+
244+
- **API Key** ZhipuAI API Key
245+
- **Model** Chat model used
246+
- **EnableSearch** 启用互联网搜索,模型会将搜索结果作为文本生成过程中的参考信息,但模型会基于其内部逻辑判断是否使用互联网搜索结果。默认:关闭。
247+
235248
### Transformers
236249

237250
local model runtime. For codebase and embedding only.

docs/features/chat.md

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ We support the following providers:
2121
- see [AutoDev: OpenAI](../configuration.md#openai)
2222
- **provider**: `tongyi`
2323
- see [AutoDev: Ali Cloud TongY](../configuration.md#ali-cloud-tongyi)
24+
- **provider**: `zhipuai`
25+
- see [AutoDev: ZhipuAI](../configuration.md#ZhipuAI)
2426

2527
For example, use openai:
2628

package.json

+45-11
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
"openai",
121121
"qianfan",
122122
"tongyi",
123+
"zhipuai",
123124
"ollama"
124125
],
125126
"default": "openai",
@@ -149,6 +150,11 @@
149150
"provider": "qianfan",
150151
"model": "ERNIE-Bot-turbo"
151152
},
153+
{
154+
"title": "ChatGLM 4",
155+
"provider": "zhipuai",
156+
"model": "glm-4"
157+
},
152158
{
153159
"title": "Llama3",
154160
"provider": "ollama",
@@ -506,61 +512,89 @@
506512
"description": "%configuration.tongyi.enableSearch.description%",
507513
"order": 16
508514
},
515+
"autodev.zhipuai.apiKey": {
516+
"type": "string",
517+
"description": "%configuration.zhipuai.apiKey.description%",
518+
"markdownDescription": "%configuration.zhipuai.apiKey.markdownDescription%",
519+
"order": 17
520+
},
521+
"autodev.zhipuai.model": {
522+
"type": "string",
523+
"enum": [
524+
"glm-4-0520",
525+
"glm-4",
526+
"glm-4-air",
527+
"glm-4-airx",
528+
"glm-4-flash"
529+
],
530+
"default": "glm-4",
531+
"description": "%configuration.zhipuai.model.description%",
532+
"order": 18
533+
},
534+
"autodev.zhipuai.embeddings.model": {
535+
"type": "string",
536+
"enum": [
537+
"embedding-2"
538+
],
539+
"default": "embedding-2",
540+
"description": "%configuration.zhipuai.embeddingModel.description%",
541+
"order": 19
542+
},
509543
"autodev.ollama.baseURL": {
510544
"type": "string",
511545
"default": "http://localhost:11434",
512546
"markdownDescription": "%configuration.ollama.baseURL.markdownDescription%",
513-
"order": 17
547+
"order": 20
514548
},
515549
"autodev.ollama.model": {
516550
"type": "string",
517551
"default": "llama3",
518552
"description": "%configuration.ollama.model.description%",
519-
"order": 18
553+
"order": 21
520554
},
521555
"autodev.ollama.completionModel": {
522556
"type": "string",
523557
"default": "codeqwen:7b-code-v1.5-q5_1",
524558
"description": "%configuration.ollama.completionModel.description%",
525-
"order": 19
559+
"order": 22
526560
},
527561
"autodev.ollama.embeddingModel": {
528562
"type": "string",
529563
"default": "all-minilm",
530564
"description": "%configuration.ollama.embeddingModel.description%",
531-
"order": 20
565+
"order": 23
532566
},
533567
"autodev.transformers.remoteHost": {
534568
"type": "string",
535569
"default": "https://huggingface.co",
536570
"description": "%configuration.transformers.remoteHost.description%",
537571
"markdownDescription": "%configuration.transformers.remoteHost.markdownDescription%",
538-
"order": 21
572+
"order": 24
539573
},
540574
"autodev.transformers.remotePathTemplate": {
541575
"type": "string",
542576
"default": "{model}/resolve/{revision}/",
543577
"description": "%configuration.transformers.remotePathTemplate.description%",
544578
"markdownDescription": "%configuration.transformers.remotePathTemplate.markdownDescription%",
545-
"order": 22
579+
"order": 25
546580
},
547581
"autodev.transformers.allowLocalModels": {
548582
"type": "boolean",
549583
"default": true,
550584
"markdownDescription": "%configuration.transformers.allowLocalModels.markdownDescription%",
551-
"order": 23
585+
"order": 26
552586
},
553587
"autodev.transformers.localModelPath": {
554588
"type": "string",
555589
"default": "",
556590
"markdownDescription": "%configuration.transformers.localModelPath.markdownDescription%",
557-
"order": 24
591+
"order": 27
558592
},
559593
"autodev.transformers.model": {
560594
"type": "string",
561595
"description": "%configuration.transformers.model.description%",
562596
"markdownDescription": "%configuration.transformers.model.markdownDescription%",
563-
"order": 25
597+
"order": 28
564598
},
565599
"autodev.transformers.onnxWasmNumThreads": {
566600
"type": [
@@ -569,7 +603,7 @@
569603
],
570604
"default": "auto",
571605
"description": "%configuration.transformers.onnxWasmNumThreads.description%",
572-
"order": 26
606+
"order": 29
573607
},
574608
"autodev.transformers.onnxLoglevel": {
575609
"type": "string",
@@ -583,7 +617,7 @@
583617
],
584618
"default": "error",
585619
"description": "%configuration.transformers.onnxLoglevel.description%",
586-
"order": 27
620+
"order": 30
587621
}
588622
},
589623
"order": 9

package.nls.json

+5
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@
6565
"configuration.tongyi.model.description": "Model name to use",
6666
"configuration.tongyi.enableSearch.description": "Enable Search Enhancement",
6767

68+
"configuration.zhipuai.apiKey.description": "ZhipuAI API Key",
69+
"configuration.zhipuai.apiKey.markdownDescription": "ZhipuAI API Key. See [智谱 AI 开放平台](https://open.bigmodel.cn/dev/api).",
70+
"configuration.zhipuai.model.description": "Model name to use",
71+
"configuration.zhipuai.embeddingModel.description": "Embedding Model name to use",
72+
6873
"configuration.ollama.baseURL.markdownDescription": "Ollama API URL, See [API Reference](https://github.com/ollama/ollama/blob/main/docs/api.md)",
6974
"configuration.ollama.model.description": "Model name to use",
7075
"configuration.ollama.completionModel.description": "Model name to use",

package.nls.zh-cn.json

+5
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
"configuration.tongyi.model.description": "模型名称",
5656
"configuration.tongyi.enableSearch.description": "启用互联网搜索",
5757

58+
"configuration.zhipuai.apiKey.description": "智谱 AI 的 API Key。",
59+
"configuration.zhipuai.apiKey.markdownDescription": "智谱 AI 的 API Key。参考 [智谱 AI 开放平台](https://open.bigmodel.cn/dev/api).",
60+
"configuration.zhipuai.model.description": "模型名称",
61+
"configuration.zhipuai.embeddingModel.description": "向量化模型名称",
62+
5863
"configuration.ollama.baseURL.markdownDescription": "Ollama 的 API URL, Key。参考 [API Reference](https://github.com/ollama/ollama/blob/main/docs/api.md)",
5964
"configuration.ollama.model.description": "模型名称",
6065

src/base/common/language-models/languageModelsService.ts

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { OllamaLanguageModelProvider } from './providers/ollamaProvider';
1010
import { OpenAILanguageModelProvider } from './providers/openaiProvider';
1111
import { TongyiLanguageModelProvider } from './providers/TongyiProvider';
1212
import { WenxinLanguageModelProvider } from './providers/WenxinProvider';
13+
import { ZhipuAILanguageModelProvider } from './providers/zhipuaiProvider';
1314
import { LocalEmbeddingsProvider } from "../../../code-search/embedding/LocalEmbeddingsProvider";
1415

1516
export interface LanguageModelSelector {
@@ -38,6 +39,7 @@ export class LanguageModelsService {
3839
['openai', new OpenAILanguageModelProvider(configService)],
3940
['qianfan', new WenxinLanguageModelProvider(configService)],
4041
['tongyi', new TongyiLanguageModelProvider(configService)],
42+
['zhipuai', new ZhipuAILanguageModelProvider(configService)],
4143
['ollama', new OllamaLanguageModelProvider(configService)],
4244
['transformers', new HuggingFaceTransformersLanguageModelProvider(configService)],
4345
// ['transformers', LocalEmbeddingsProvider.getInstance()],

0 commit comments

Comments
 (0)