简单调试
This commit is contained in:
13
.idea/dataSources.xml
generated
13
.idea/dataSources.xml
generated
@@ -13,5 +13,18 @@
|
||||
</jdbc-additional-properties>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
</data-source>
|
||||
<data-source source="LOCAL" name="main@192.168.100.139" uuid="eb4550b4-11dc-430c-9617-be74169dcc17">
|
||||
<driver-ref>mysql.8</driver-ref>
|
||||
<synchronize>true</synchronize>
|
||||
<jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mysql://192.168.100.139:3307/main?useSSL=false&allowPublicKeyRetrieval=true</jdbc-url>
|
||||
<jdbc-additional-properties>
|
||||
<property name="com.intellij.clouds.kubernetes.db.host.port" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.enabled" value="false" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.resource.type" value="Deployment" />
|
||||
<property name="com.intellij.clouds.kubernetes.db.container.port" />
|
||||
</jdbc-additional-properties>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
@@ -55,8 +55,8 @@ public class ChatController {
|
||||
// language=TEXT
|
||||
prompts.add("""
|
||||
你是一名服务器主机运维管理员,对于用户提出的问题,你会尝试从多个方面思考分析,通过多种角度进行研究,使用尽可能多的数据对比对用户的问题进行回答
|
||||
你会积极使用表格、echarts图表等形式对数据进行分类、统计,力求能直观表达数据之间的关系和趋势,尤其是用户问题中出现“趋势”、“占比”、“对比”等字眼的时候
|
||||
你始终会在中文语境下回答,对于用户的每个问题,先提出4个和用户提问最为相关的问题,针对以上5个问题分别进行回答
|
||||
你会积极使用表格、echarts图表等形式对数据进行分类、统计,力求能直观表达数据之间的关系和趋势,当用户问题中出现“趋势”、“占比”、“对比”等字眼的时候,优先使用echarts图表进行分析
|
||||
你始终会在中文语境下回答,对于用户的每个问题,先提出4个和用户提问最为相关的问题,针对以上5个问题分别进行回答再并整合答案汇总成为最终的回答,至少500字以上
|
||||
|
||||
对于echarts图表,严格按照如下格式进行绘制,这部份代码必须新起一段
|
||||
```echarts
|
||||
@@ -169,6 +169,7 @@ public class ChatController {
|
||||
你将所管理的主机信息记录在据数据库中schema名为main、表名为host_assets的MySQL表中,任何关于主机的数据的回答都必须从实际的数据中获取,严禁虚构任何不存在的表或表字段,没有描述的表或字段可以从表名或字段名中推测,如果找不到答案,就回复“数据库中没有找到相关数据”
|
||||
任何时候你都只能查询数据库,不会对数据库进行任何修改操作,也不会查询除host_assets外的任何表,数据库查询结果中出现null表示没有数据
|
||||
用户问题中提到的关键词通常不是精准的字段名或字段内容,你需要结合精确匹配或模糊匹配等等多种方式综合查询数据,必要的时候可以多次查询数据库综合查询数据
|
||||
当用户的问题涉及到具体检索某一列的某个值时,如果该列不是主键、日期、时间等内容,先使用distinct语句查询该列的取值情况,再根据用户的需求选择具体的值进行查询,避免查询不存在的取值
|
||||
以下是host_assets表的详细信息,包含表名、表描述、字段名和字段描述""");
|
||||
prompts.add(databaseTools.getTableInformation(databaseName));
|
||||
prompts.add("");
|
||||
|
||||
@@ -30,6 +30,7 @@ spring:
|
||||
completions-path: /chat/completions
|
||||
options:
|
||||
model: "glm-4-flash"
|
||||
parallel-tool-calls: true
|
||||
ollama:
|
||||
chat:
|
||||
model: "qwen2.5:7b"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.lanyuanxiaoyao.ai.analysis;
|
||||
|
||||
import cn.hutool.core.date.DateField;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.db.DbUtil;
|
||||
@@ -11,6 +13,7 @@ import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.datafaker.Faker;
|
||||
|
||||
@@ -23,15 +26,15 @@ public class FakeData {
|
||||
public static void main(String[] args) {
|
||||
Faker faker = new Faker(new Locale("zh-CN"));
|
||||
|
||||
try (Session session = DbUtil.newSession(new SimpleDataSource("jdbc:mysql://localhost:3307/main", "test", "test"))) {
|
||||
/*try (Session session = DbUtil.newSession(new SimpleDataSource("jdbc:mysql://192.168.100.139:3307/main", "test", "test"))) {
|
||||
String fieldName = "system_name";
|
||||
List<String> items = new ArrayList<>();
|
||||
List<Entity> entities = session.query(StrUtil.format("select distinct {} as name from host_assets where {} is not null", fieldName, fieldName));
|
||||
for (Entity entity : entities) {
|
||||
/* Set<String> fields = entity.getFieldNames();
|
||||
*//* Set<String> fields = entity.getFieldNames();
|
||||
for (String field : fields) {
|
||||
items.add(entity.get(field).toString());
|
||||
} */
|
||||
} *//*
|
||||
items.add(entity.getStr("name"));
|
||||
}
|
||||
for (String item : items) {
|
||||
@@ -46,6 +49,28 @@ public class FakeData {
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}*/
|
||||
try (Session session = DbUtil.newSession(new SimpleDataSource("jdbc:mysql://192.168.100.139:3307/main?useSSL=false&allowPublicKeyRetrieval=true", "test", "test"))) {
|
||||
String fieldName = "id";
|
||||
List<String> items = new ArrayList<>();
|
||||
List<Entity> entities = session.query(StrUtil.format("select distinct {} as name from host_assets where {} is not null", fieldName, fieldName));
|
||||
for (Entity entity : entities) {
|
||||
Set<String> fields = entity.getFieldNames();
|
||||
for (String field : fields) {
|
||||
items.add(entity.get(field).toString());
|
||||
}
|
||||
items.add(entity.getStr("name"));
|
||||
}
|
||||
for (String item : items) {
|
||||
String dateText = RandomUtil.randomDate(DateUtil.parseDateTime("2024-12-31 00:00:00"), DateField.DAY_OF_YEAR, -200, -1).toString("yyyy-MM-dd");
|
||||
String sql = StrUtil.format("update host_assets set start_date = '{}' where {} = '{}'", dateText, fieldName, item);
|
||||
log.info("{}", sql);
|
||||
try (Statement statement = session.getConnection().createStatement()) {
|
||||
statement.execute(sql);
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user