Skip to content

Commit 80c45c4

Browse files
committed
Merge branch 'main' of https://github.com/dataease/SQLBot
2 parents 980a874 + 6ad151d commit 80c45c4

File tree

6 files changed

+22
-15
lines changed

6 files changed

+22
-15
lines changed

backend/apps/datasource/api/datasource.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ async def get_datasource(session: SessionDep, id: int):
3030

3131
@router.post("/check")
3232
async def check(session: SessionDep, ds: CoreDatasource):
33-
return check_status(session, ds)
33+
return check_status(session, ds, True)
3434

3535

3636
@router.post("/add", response_model=CoreDatasource)

backend/apps/datasource/crud/datasource.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,15 @@ def get_ds(session: SessionDep, id: int):
3535
return datasource
3636

3737

38-
def check_status(session: SessionDep, ds: CoreDatasource):
38+
def check_status(session: SessionDep, ds: CoreDatasource, is_raise: bool = False):
3939
conn = get_engine(ds)
4040
try:
4141
with conn.connect() as connection:
4242
print("success")
4343
return True
4444
except Exception as e:
45-
raise HTTPException(status_code=500, detail=e.args)
45+
if is_raise:
46+
raise HTTPException(status_code=500, detail=f'Connect Failed: {e.args}')
4647
print("Fail:", e)
4748
return False
4849

backend/apps/db/db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ def get_tables(ds: CoreDatasource):
126126
LEFT JOIN
127127
pg_description d ON d.objoid = c.oid AND d.objsubid = 0
128128
WHERE n.nspname = current_schema()
129-
AND c.relkind IN ('r', 'v')
129+
AND c.relkind IN ('r', 'v', 'p')
130130
AND c.relname NOT LIKE 'pg_%'
131131
AND c.relname NOT LIKE 'sql_%'
132132
ORDER BY c.relname \

backend/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ dependencies = [
3636
"pyyaml (>=6.0.2,<7.0.0)",
3737
"fastapi-mcp (>=0.3.4,<0.4.0)",
3838
"tabulate>=0.9.0",
39-
"sqlbot-xpack==0.0.3.6",
39+
"sqlbot-xpack==0.0.3.7",
4040
"fastapi-cache2>=0.2.2",
4141
"sqlparse>=0.5.3",
4242
]

backend/template.yaml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ template:
1313
- 如数据库引擎是 PostgreSQL、Oracle,则在schema、表名、字段名、别名外层加双引号;
1414
- 如数据库引擎是 MySQL,则在表名、字段名、别名外层加反引号;
1515
- 如数据库引擎是 Microsoft SQL Server,则在schema、表名、字段名、别名外层加方括号。
16-
- 如果生成SQL的字段内有时间格式的字段:
16+
- 如果生成SQL的字段内有时间格式的字段(重要):
1717
- 若提问中没有指定查询顺序,则默认按时间升序排序
1818
- 若提问是时间,且没有指定具体格式,则格式化为yyyy-MM-dd HH:mm:ss的格式
1919
- 若提问是日期,且没有指定具体格式,则格式化为yyyy-MM-dd的格式
@@ -29,6 +29,8 @@ template:
2929
- 如果问题是图表展示相关且与生成SQL查询无关时,请参考上一次回答的SQL来生成SQL
3030
- 如果问题是图表展示相关,可参考的图表类型为表格(table)、柱状图(column)、条形图(bar)、折线图(line)或饼图(pie),返回的JSON:
3131
{{"success":true,"sql":"生成的SQL语句","chart-type":"选择的图表类型(table/column/bar/line/pie)","tables":["表名1","表名2",...]}}
32+
- 生成的SQL查询结果可以用来进行图表展示,需要注意排序字段的排序优先级,例如:
33+
- 柱状图或折线图:适合展示在横轴的字段优先排序,若SQL包含分类字段,则分类字段次一级排序
3234
3335
### 响应, 请直接返回JSON结果:
3436
```json
@@ -55,7 +57,7 @@ template:
5557
- 如果需要柱状图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series):
5658
{{"type":"column", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}}}
5759
必须从 SQL 查询列中提取“x”和“y”。
58-
- 如果需要条形图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series):
60+
- 如果需要条形图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series),条形图相当于是旋转后的柱状图,因此 x 轴仍为维度轴,y 轴仍为指标轴
5961
{{"type":"bar", "title": "标题", "axis": {{"x": {{"name":"x轴的中文名称", "value": "SQL 查询 x 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "y": {{"name":"y轴的中文名称","value": "SQL 查询 y 轴的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}, "series": {{"name":"分类的中文名称","value":"SQL 查询分类的列(有别名用别名,去掉外层的反引号、双引号、方括号)"}}}}}}
6062
必须从 SQL 查询列中提取“x”和“y”。
6163
- 如果需要折线图,则生成的 JSON 格式应为(如果有分类则在JSON中返回series):
@@ -104,7 +106,7 @@ template:
104106
- 最多返回4个你推测出的结果
105107
- 若无法推测,则返回空数据JSON:
106108
[]
107-
- 不需要思考过程,或者尽量精简思考过程
109+
- 不需要思考过程,或者尽量精简思考过程(重要)
108110
109111
### 响应, 请直接返回JSON结果:
110112
```json

frontend/src/views/ds/Datasource.vue

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,16 @@ const handleEditDatasource = (res: any) => {
9595
})
9696
}
9797
98-
const handleQuestion = (id: string) => {
99-
router.push({
100-
path: '/chat/index',
101-
query: {
102-
start_chat: id,
103-
},
98+
const handleQuestion = (ele: any) => {
99+
datasourceApi.check(ele).then((res: any) => {
100+
if (res) {
101+
router.push({
102+
path: '/chat/index',
103+
query: {
104+
start_chat: ele.id,
105+
},
106+
})
107+
}
104108
})
105109
}
106110
@@ -290,7 +294,7 @@ const back = () => {
290294
:type-name="ele.type_name"
291295
:num="ele.num"
292296
:description="ele.description"
293-
@question="handleQuestion"
297+
@question="handleQuestion(ele)"
294298
@edit="handleEditDatasource(ele)"
295299
@del="deleteHandler(ele)"
296300
@data-table-detail="dataTableDetail(ele)"

0 commit comments

Comments
 (0)