Skip to content

Commit 10b38f0

Browse files
authored
Merge pull request #20 from lowcoding/feat/v1.7.8
✨ feat: 支持其它 AI 模型
2 parents e119e74 + bc9b19f commit 10b38f0

File tree

9 files changed

+144
-333
lines changed

9 files changed

+144
-333
lines changed

README.md

Lines changed: 38 additions & 248 deletions
Original file line numberDiff line numberDiff line change
@@ -1,293 +1,83 @@
1-
<meta name="referrer" content="no-referrer" />
2-
31
## 关于
42

5-
低代码工具,支持 ChatGPT
3+
低代码工具,支持 ChatGPT 和其它 LLM
64

75
[详细文档](https://lowcoding.gitee.io/)
86

97
> 文档不经常更新,新功能使用方法可查看 [releases](https://github.com/lowcoding/lowcode-vscode/releases)
108
119
[物料仓库](https://github.com/lowcode-scaffold/lowcode-materials)
1210

13-
## 支持 ChatGPT
14-
15-
![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c30eede4784e4f81a61102c3e85ed06c~tplv-k3u1fbpfcp-zoom-1.image?)
16-
17-
[清晰动图点这里](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c30eede4784e4f81a61102c3e85ed06c~tplv-k3u1fbpfcp-zoom-1.image?)
18-
19-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9e27171a5e6f4d128f6193628a48adb5~tplv-k3u1fbpfcp-zoom-1.image?)
20-
21-
[清晰动图点这里](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9e27171a5e6f4d128f6193628a48adb5~tplv-k3u1fbpfcp-zoom-1.image?)
22-
23-
### 配置 ChatGPT
24-
25-
![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/647980a8dddd403bab7fd15194ee16f2~tplv-k3u1fbpfcp-zoom-1.image?)
26-
27-
### 预置 Prompt 模板
28-
29-
使用 lowcode 原有代码片段功能,可以随意预置 Prompt,支持 EJS 模板语法,可快速创建分析代码、重构代码、代码添加注释等 Prompt。
30-
31-
![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c121c1cf260e4f96b2b68bbcdc3cd5d4~tplv-k3u1fbpfcp-zoom-1.image?)
32-
33-
配置 chatGPT 字段:
34-
35-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5552fb27cb3947b89fb91d948ca3e0aa~tplv-k3u1fbpfcp-zoom-1.image?)
36-
37-
commandPrompt 既右键菜单选择模板后发送的内容,支持 EJS 模板语法。
38-
39-
viewPrompt 为 代码片段或者区块物料可视化详情页点 Ask ChatGPT 按钮后发送的内容。
40-
41-
### lowcode 代码生成功能结合 ChatGPT
42-
43-
很好的解决了代码变量的命名难题。
44-
45-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e74e5ce7c3c4462e8ad7ff099b3dca80~tplv-k3u1fbpfcp-zoom-1.image?)
46-
47-
[清晰动图点这里](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e74e5ce7c3c4462e8ad7ff099b3dca80~tplv-k3u1fbpfcp-zoom-1.image?)
48-
49-
## 不用 ChatGPT ,也可以使用一些常用功能
50-
51-
### 快速创建组件
52-
53-
<p align="center"><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8a4d59c06c364d86b9bffb964844b87f~tplv-k3u1fbpfcp-zoom-1.image" referrerpolicy="no-referrer" /></p>
54-
55-
### 根据 yapi 接口文档生成请求方法
56-
57-
复制接口 id
11+
## 下面是一些例子
5812

59-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e61758ab997d4d5ab81bb5cef3702b11~tplv-k3u1fbpfcp-zoom-1.image)
13+
### OCR + ChatGPT 翻译
6014

61-
写好接口方法,选中然后右键
62-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/31ec37302871463b8164fede1f35c845~tplv-k3u1fbpfcp-zoom-1.image?)
15+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/c620a1fe-b7a8-4ffb-a6a9-8854fd836516)
6316

64-
> 生成的 ts 类型可能不完全正确,需要手动调整
17+
### 生成指定格式 JSON
6518

66-
### 根据 json 生成 api 请求方法
19+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/12345e45-ec10-4a39-902e-0c18e490c26e)
6720

68-
复制 json 数据,比如:
21+
### 中文翻译成驼峰格式
6922

70-
```json
71-
{
72-
"code": 0,
73-
"message": "成功",
74-
"result": {
75-
"records": [
76-
{
77-
"id": 137,
78-
"code": "mechanisms",
79-
"name": "外部机构",
80-
"internalType": 0,
81-
"needArea": 0,
82-
"assetTypes": [],
83-
"serviceLines": [
84-
{
85-
"serviceLineCode": "CESHI",
86-
"serviceLineName": "测试勿动",
87-
"status": 1
88-
}
89-
]
90-
}
91-
],
92-
"total": 105,
93-
"size": 10,
94-
"current": 1,
95-
"orders": [],
96-
"optimizeCountSql": true,
97-
"hitCount": false,
98-
"countId": null,
99-
"maxLimit": null,
100-
"searchCount": true,
101-
"pages": 11
102-
}
103-
}
104-
```
23+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/ced740a2-2bcd-446b-919d-fd1a845df377)
10524

106-
写好接口方法,选中然后右键,选择相应的命令选项
107-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c587f449465f48f3b9b585e6486557c9~tplv-k3u1fbpfcp-zoom-1.image)
25+
### 当前目录翻译成英文
10826

109-
> 需要手动调整参数,接口地址
27+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/1126829d-92c4-4de6-9d33-d84792eff3c3)
11028

111-
### 根据 ts 类型生成 api 请求方法
29+
### 快速创建代码模板
11230

113-
复制 ts 类型,比如:
31+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/38a1f08a-c036-4800-81c8-2dd97c4e5bea)
11432

115-
```ts
116-
[{ name: string; code: string }]
117-
```
33+
### 生成 CURD
11834

119-
写好接口方法,选中然后右键,选择相应的命令选项
120-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/63a96ba4cfb749e6af4daefe00e43b71~tplv-k3u1fbpfcp-zoom-1.image)
121-
122-
### 根据 json 生成 ts 类型
123-
124-
复制 json 数据,比如:
125-
126-
```json
127-
{
128-
"code": 0,
129-
"message": "成功",
130-
"result": {
131-
"records": [
132-
{
133-
"id": 137,
134-
"code": "mechanisms",
135-
"name": "外部机构",
136-
"internalType": 0,
137-
"needArea": 0,
138-
"assetTypes": [],
139-
"serviceLines": [
140-
{
141-
"serviceLineCode": "CESHI",
142-
"serviceLineName": "测试勿动",
143-
"status": 1
144-
}
145-
]
146-
}
147-
],
148-
"total": 105,
149-
"size": 10,
150-
"current": 1,
151-
"orders": [],
152-
"optimizeCountSql": true,
153-
"hitCount": false,
154-
"countId": null,
155-
"maxLimit": null,
156-
"searchCount": true,
157-
"pages": 11
158-
}
159-
}
160-
```
161-
162-
写好类型名称,选中然后右键,选择相应的命令选项
163-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5d101d4fe73846cfb353db53a6fda857~tplv-k3u1fbpfcp-zoom-1.image)
164-
165-
根据 json 替换字段类型
166-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8525c8ea8e274132ab983e6ce76f6ce0~tplv-k3u1fbpfcp-zoom-1.image)
167-
168-
## mock
169-
170-
下载 mock 项目
171-
172-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/71c5f5f22c19444d9042e2b7feaf25e6~tplv-k3u1fbpfcp-zoom-1.image)
173-
174-
因为墙的原因下载不了的话,可以使用下面仓库地址下载:
175-
176-
https://gitee.com/lowcode-scaffold/lowcode-mock.git (不要直接 clone,用下图的方式)
177-
178-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0c32bb3dfbd14f59a6cf40c215e9b373~tplv-k3u1fbpfcp-zoom-1.image)
179-
180-
routes 目录下创建新的 mock 文件
181-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e52f09da64a3446baeb8cd179df19eaa~tplv-k3u1fbpfcp-zoom-1.image)
182-
183-
### 根据 yapi 接口文档生成 mock
184-
185-
复制接口 id
186-
187-
![](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a0fa6a6f3ed7442cbf6798ae50893e6e~tplv-k3u1fbpfcp-zoom-1.image?)
188-
189-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a21bf99aaca14b3ab6a530cec784b6c2~tplv-k3u1fbpfcp-zoom-1.image)
190-
191-
### 根据 ts 类型生成 mock
192-
193-
复制 ts 类型,比如(不需要复制类型名称):
194-
195-
```ts
196-
{
197-
/**
198-
* 0:成功,其他:失败
199-
*/
200-
code: number;
201-
message: string;
202-
result: {
203-
/**
204-
* 当前页数
205-
*/
206-
current: number;
207-
hitCount: boolean;
208-
optimizeCountSql: boolean;
209-
orders: string[];
210-
/**
211-
* 总页数
212-
*/
213-
pages: number;
214-
/**
215-
* 记录
216-
*/
217-
records: {
218-
id: number;
219-
/**
220-
* 组织名称
221-
*/
222-
orgNodeName: string;
223-
/**
224-
* 组织编码
225-
*/
226-
orgNodeCode: string;
227-
/**
228-
* 组织名称全路径
229-
*/
230-
fullPath: string;
231-
}[];
232-
searchCount: boolean;
233-
/**
234-
* 每页展示数
235-
*/
236-
size: number;
237-
/**
238-
* 总数据条数
239-
*/
240-
total: number;
241-
};
242-
}
243-
```
35+
以管理后台一个列表页为例
24436

245-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/48e9e2934e844689bf4e28e40d7be63c~tplv-k3u1fbpfcp-zoom-1.image)
37+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/e14ff6ed-fdc7-4a45-877a-88c0d2ab7e82)
24638

247-
### 根据 json 生成 mock
39+
#### 选择对应的模板
24840

249-
同理,复制 json,选择对应的命令选项。
41+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/36a581f3-cdd4-43be-ba1c-4f3e26197bf4)
25042

251-
> 建议所有的前端项目共用同一个 mock 项目,避免频繁切换项目,以及接口冲突。不同的项目在 routes 目录下创建相应的文件。
43+
#### 截图查询区域,使用 OCR 初始化查询表单的配置
25244

253-
[mockjs 文档](http://mockjs.com/examples.html)
45+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/a3a8f693-a9bc-48fa-95d9-bfc7a00cf5ea)
25446

255-
## 提升列表页、表单开发效率
47+
#### 截图表头,使用 OCR 初始化 table 的配置
25648

257-
### 常规查询列表页
49+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/c65f8532-68dd-4de4-a6fe-90e1a4cfd984)
25850

259-
以下面原型为例
260-
![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f8176d2115934947bbf43590f5b06949~tplv-k3u1fbpfcp-zoom-1.image?)
51+
#### 使用 ChatGPT 翻译中文字段
26152

262-
选择列表页区块
53+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/dcb20ee4-561b-4539-b70e-f411e33b6aee)
26354

264-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/35e5483596ee4a17b6abe1fe730ca160~tplv-k3u1fbpfcp-zoom-1.image)
55+
#### 生成代码
26556

266-
配置表单
57+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/e858aaa6-0432-4e53-a58d-95727c0e5fce)
26758

268-
https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5b24b7d804ac4db1a3673fd2aa4aa4cd~tplv-k3u1fbpfcp-zoom-1.image
59+
#### 效果
26960

270-
生成代码
61+
目前我们没有写一行代码,就已经达到了如下的效果
27162

272-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a8d4a0d04ba645e290ba787592d7d62f~tplv-k3u1fbpfcp-zoom-1.image)
63+
![](https://github.com/lowcoding/lowcode-vscode/assets/9456046/c87225e8-39c4-4760-8bb4-2c8af4570657)
27364

274-
若后端已经提供 yapi 接口文档,可以同时使用根据 yapi 接口文档生成请求方法的功能:
65+
#### 使用其它 LLM
27566

276-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f2f5863ce23b485bb1144c4d56829c6b~tplv-k3u1fbpfcp-zoom-1.image)
277-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/853eadf031e049c0ac22d63771b4ab7f~tplv-k3u1fbpfcp-zoom-1.image)
67+
具体查看 https://github.com/lowcode-scaffold/lowcode-materials
27868

279-
### 表单
69+
## 相关资料
28070

281-
选择表单区块,配置 Schema 表单
71+
[我的 2023 年度关键词:ChatGPT、生产力工具](https://juejin.cn/post/7324889553508122664)
28272

283-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a0c793a67924583a4cb83569483687c~tplv-k3u1fbpfcp-zoom-1.image)
73+
[还在封装 xxxForm,xxxTable 残害你的同事?试试这个工具](https://juejin.cn/post/7315242945454735414)
28474

285-
## 自定义区块
75+
[TypeChat、JSONSchemaChat 实战 - 让 ChatGPT 更听你的话](https://juejin.cn/post/7309732396081020928)
28676

287-
创建新的区块
77+
[我理想中的低代码开发工具的形态](https://juejin.cn/post/7248207744086638629)
28878

289-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/48f22790459d49f7b708a7684f9d2321~tplv-k3u1fbpfcp-zoom-1.image)
79+
[曾经辛苦造的轮子,现在能否用 ChatGPT 替代呢?](https://juejin.cn/post/7246376735838502971)
29080

291-
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ca76e8e939334df48d7bd3512dadf40a~tplv-k3u1fbpfcp-zoom-1.image)
81+
[我在 vscode 插件里接入了 ChatGPT,解决了代码变量命名的难题](https://juejin.cn/post/7243263236623450170)
29282

293-
配置 Schema 表单:支持 amis、formily、form-render,创建区块的时候根据自己需要选择相应的类型。
83+
[vscode 插件可视化制作和管理脚手架及原理解析](https://juejin.cn/post/7080787567192309797)

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"name": "lowcode",
33
"displayName": "lowcode",
4-
"description": "lowcode tool, support ChatGPT",
4+
"description": "lowcode tool, support ChatGPT and other LLM",
55
"author": "wjkang <[email protected]>",
6-
"version": "1.7.7",
6+
"version": "1.7.8",
77
"icon": "asset/icon.png",
88
"publisher": "wjkang",
99
"repository": "https://github.com/lowcoding/lowcode-vscode",
@@ -30,6 +30,9 @@
3030
"ChatGPT",
3131
"openai",
3232
"GPT",
33+
"Gemini",
34+
"LLM",
35+
"AI",
3336
"yapi",
3437
"yapi to ts",
3538
"typescript to json",

src/commands/runSnippetScript.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { getSnippets } from '../utils/materials';
55
import { getEnv, rootPath } from '../utils/vscodeEnv';
66
import { getInnerLibs } from '../utils/lib';
77
import { getOutputChannel } from '../utils/outputChannel';
8-
import { createChatCompletionForScript } from '../utils/openai';
8+
import { createChatCompletionForScript } from '../utils/llm';
99
import { getClipboardImage } from '../utils/clipboard';
1010
import { formatPath } from '../utils/platform';
1111

src/utils/generate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { getInnerLibs } from './lib';
1818
import { getOutputChannel } from './outputChannel';
1919
import { getLastActiveTextEditor } from '../context';
2020
import { getSyncFolder } from './config';
21-
import { createChatCompletionForScript } from './openai';
21+
import { createChatCompletionForScript } from './llm';
2222

2323
export const genCodeByBlock = async (data: {
2424
material: string;

0 commit comments

Comments
 (0)