mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement)(headless)Introduce side_information to the prompt and exemplar.
This commit is contained in:
@@ -6,7 +6,9 @@ import com.tencent.supersonic.chat.server.pojo.ExecuteContext;
|
||||
import com.tencent.supersonic.chat.server.service.MemoryService;
|
||||
import com.tencent.supersonic.chat.server.util.ResultFormatter;
|
||||
import com.tencent.supersonic.common.pojo.QueryColumn;
|
||||
import com.tencent.supersonic.common.pojo.SqlExemplar;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.QueryResult;
|
||||
@@ -39,13 +41,18 @@ public class SqlExecutor implements ChatQueryExecutor {
|
||||
|
||||
if (queryResult.getQueryState().equals(QueryState.SUCCESS)
|
||||
&& queryResult.getQueryMode().equals(LLMSqlQuery.QUERY_MODE)) {
|
||||
SqlExemplar exemplar = JsonUtil.toObject(JsonUtil.toString(
|
||||
executeContext.getParseInfo().getProperties()
|
||||
.get(SqlExemplar.PROPERTY_KEY)), SqlExemplar.class);
|
||||
|
||||
MemoryService memoryService = ContextUtils.getBean(MemoryService.class);
|
||||
memoryService.createMemory(ChatMemoryDO.builder()
|
||||
.agentId(executeContext.getAgent().getId())
|
||||
.status(MemoryStatus.PENDING)
|
||||
.question(executeContext.getQueryText())
|
||||
.s2sql(executeContext.getParseInfo().getSqlInfo().getParsedS2SQL())
|
||||
.dbSchema(buildSchemaStr(executeContext.getParseInfo()))
|
||||
.question(exemplar.getQuestion())
|
||||
.sideInfo(exemplar.getSideInfo())
|
||||
.dbSchema(exemplar.getDbSchema())
|
||||
.s2sql(exemplar.getSql())
|
||||
.createdBy(executeContext.getUser().getName())
|
||||
.updatedBy(executeContext.getUser().getName())
|
||||
.createdAt(new Date())
|
||||
@@ -98,36 +105,4 @@ public class SqlExecutor implements ChatQueryExecutor {
|
||||
return queryResult;
|
||||
}
|
||||
|
||||
public String buildSchemaStr(SemanticParseInfo parseInfo) {
|
||||
String tableStr = parseInfo.getDataSet().getName();
|
||||
StringBuilder metricStr = new StringBuilder();
|
||||
StringBuilder dimensionStr = new StringBuilder();
|
||||
|
||||
parseInfo.getMetrics().stream().forEach(
|
||||
metric -> {
|
||||
metricStr.append(metric.getName());
|
||||
if (StringUtils.isNotEmpty(metric.getDescription())) {
|
||||
metricStr.append(" COMMENT '" + metric.getDescription() + "'");
|
||||
}
|
||||
if (StringUtils.isNotEmpty(metric.getDefaultAgg())) {
|
||||
metricStr.append(" AGGREGATE '" + metric.getDefaultAgg().toUpperCase() + "'");
|
||||
}
|
||||
metricStr.append(",");
|
||||
}
|
||||
);
|
||||
|
||||
parseInfo.getDimensions().stream().forEach(
|
||||
dimension -> {
|
||||
dimensionStr.append(dimension.getName());
|
||||
if (StringUtils.isNotEmpty(dimension.getDescription())) {
|
||||
dimensionStr.append(" COMMENT '" + dimension.getDescription() + "'");
|
||||
}
|
||||
dimensionStr.append(",");
|
||||
}
|
||||
);
|
||||
|
||||
String template = "Table: %s, Metrics: [%s], Dimensions: [%s]";
|
||||
return String.format(template, tableStr, metricStr, dimensionStr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ public class MemoryReviewTask {
|
||||
+ "2.ALWAYS recognize `数据日期` as the date field.\n"
|
||||
+ "#Question: %s\n"
|
||||
+ "#Schema: %s\n"
|
||||
+ "#SideInfo: %s\n"
|
||||
+ "#SQL: %s\n"
|
||||
+ "#Response: ";
|
||||
|
||||
@@ -52,7 +53,8 @@ public class MemoryReviewTask {
|
||||
.forEach(m -> {
|
||||
Agent chatAgent = agentService.getAgent(m.getAgentId());
|
||||
if (Objects.nonNull(chatAgent) && chatAgent.enableMemoryReview()) {
|
||||
String promptStr = String.format(INSTRUCTION, m.getQuestion(), m.getDbSchema(), m.getS2sql());
|
||||
String promptStr = String.format(INSTRUCTION, m.getQuestion(), m.getDbSchema(),
|
||||
m.getSideInfo(), m.getS2sql());
|
||||
Prompt prompt = PromptTemplate.from(promptStr).apply(Collections.EMPTY_MAP);
|
||||
|
||||
keyPipelineLog.info("MemoryReviewTask reqPrompt:{}", promptStr);
|
||||
|
||||
@@ -20,11 +20,14 @@ public class ChatMemoryDO {
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@TableField("agent_id")
|
||||
private Integer agentId;
|
||||
|
||||
@TableField("question")
|
||||
private String question;
|
||||
|
||||
@TableField("agent_id")
|
||||
private Integer agentId;
|
||||
@TableField("side_info")
|
||||
private String sideInfo;
|
||||
|
||||
@TableField("db_schema")
|
||||
private String dbSchema;
|
||||
|
||||
@@ -102,6 +102,7 @@ public class MemoryServiceImpl implements MemoryService {
|
||||
exemplarService.storeExemplar(embeddingConfig.getMemoryCollectionName(memory.getAgentId()),
|
||||
SqlExemplar.builder()
|
||||
.question(memory.getQuestion())
|
||||
.sideInfo(memory.getSideInfo())
|
||||
.dbSchema(memory.getDbSchema())
|
||||
.sql(memory.getS2sql())
|
||||
.build());
|
||||
@@ -113,6 +114,7 @@ public class MemoryServiceImpl implements MemoryService {
|
||||
exemplarService.removeExemplar(embeddingConfig.getMemoryCollectionName(memory.getAgentId()),
|
||||
SqlExemplar.builder()
|
||||
.question(memory.getQuestion())
|
||||
.sideInfo(memory.getSideInfo())
|
||||
.dbSchema(memory.getDbSchema())
|
||||
.sql(memory.getS2sql())
|
||||
.build());
|
||||
|
||||
@@ -11,8 +11,12 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
public class SqlExemplar {
|
||||
|
||||
public static final String PROPERTY_KEY = "sql_exemplar";
|
||||
|
||||
private String question;
|
||||
|
||||
private String sideInfo;
|
||||
|
||||
private String dbSchema;
|
||||
|
||||
private String sql;
|
||||
|
||||
@@ -120,10 +120,10 @@ public class LLMRequestService {
|
||||
|
||||
public LLMResp runText2SQL(LLMReq llmReq) {
|
||||
SqlGenStrategy sqlGenStrategy = SqlGenStrategyFactory.get(llmReq.getSqlGenType());
|
||||
String modelName = llmReq.getSchema().getDataSetName();
|
||||
String dataSet = llmReq.getSchema().getDataSetName();
|
||||
LLMResp result = sqlGenStrategy.generate(llmReq);
|
||||
result.setQuery(llmReq.getQueryText());
|
||||
result.setModelName(modelName);
|
||||
result.setDataSet(dataSet);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.tencent.supersonic.headless.chat.parser.llm;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.jsqlparser.SqlValidHelper;
|
||||
import com.tencent.supersonic.common.pojo.SqlExemplar;
|
||||
import com.tencent.supersonic.headless.api.pojo.SemanticParseInfo;
|
||||
import com.tencent.supersonic.headless.chat.query.QueryManager;
|
||||
import com.tencent.supersonic.headless.chat.query.llm.LLMSemanticQuery;
|
||||
@@ -35,6 +36,13 @@ public class LLMResponseService {
|
||||
Map<String, Object> properties = new HashMap<>();
|
||||
properties.put(Constants.CONTEXT, parseResult);
|
||||
properties.put("type", "internal");
|
||||
SqlExemplar exemplar = SqlExemplar.builder()
|
||||
.question(queryCtx.getQueryText())
|
||||
.sideInfo(parseResult.getLlmResp().getSideInfo())
|
||||
.dbSchema(parseResult.getLlmResp().getSchema())
|
||||
.sql(parseResult.getLlmResp().getSqlOutput())
|
||||
.build();
|
||||
properties.put(SqlExemplar.PROPERTY_KEY, exemplar);
|
||||
parseInfo.setProperties(properties);
|
||||
parseInfo.setScore(queryCtx.getQueryText().length() * (1 + weight));
|
||||
parseInfo.setQueryMode(semanticQuery.getQueryMode());
|
||||
|
||||
@@ -34,13 +34,15 @@ public class OnePassSCSqlGenStrategy extends SqlGenStrategy {
|
||||
+ "1.ALWAYS use `数据日期` as the date field."
|
||||
+ "2.ALWAYS specify date filter using `>`,`<`,`>=`,`<=` operator."
|
||||
+ "3.ALWAYS calculate the absolute date range by yourself."
|
||||
+ "4.DO NOT include date filter in the where clause if not explicitly expressed in the question."
|
||||
+ "4.DO NOT include date filter in the where clause if not explicitly expressed in the `Question`."
|
||||
+ "5.ONLY respond with the converted SQL statement.\n"
|
||||
+ "#Exemplars:\n{{exemplar}}"
|
||||
+ "#Question:{{question}} #Schema:{{schema}} #SQL:";
|
||||
+ "#Question:{{question}} #Schema:{{schema}} #SideInfo:{{information}} #SQL:";
|
||||
|
||||
@Override
|
||||
public LLMResp generate(LLMReq llmReq) {
|
||||
LLMResp llmResp = new LLMResp();
|
||||
llmResp.setQuery(llmReq.getQueryText());
|
||||
//1.recall exemplars
|
||||
keyPipelineLog.info("OnePassSCSqlGenStrategy llmReq:\n{}", llmReq);
|
||||
List<List<SqlExemplar>> exemplarsList = promptHelper.getFewShotExemplars(llmReq);
|
||||
@@ -48,49 +50,51 @@ public class OnePassSCSqlGenStrategy extends SqlGenStrategy {
|
||||
//2.generate sql generation prompt for each self-consistency inference
|
||||
Map<Prompt, List<SqlExemplar>> prompt2Exemplar = new HashMap<>();
|
||||
for (List<SqlExemplar> exemplars : exemplarsList) {
|
||||
Prompt prompt = generatePrompt(llmReq, exemplars);
|
||||
llmReq.setDynamicExemplars(exemplars);
|
||||
Prompt prompt = generatePrompt(llmReq, llmResp);
|
||||
prompt2Exemplar.put(prompt, exemplars);
|
||||
}
|
||||
|
||||
//3.perform multiple self-consistency inferences parallelly
|
||||
Map<Prompt, String> prompt2Output = new ConcurrentHashMap<>();
|
||||
Map<String, Prompt> output2Prompt = new ConcurrentHashMap<>();
|
||||
prompt2Exemplar.keySet().parallelStream().forEach(prompt -> {
|
||||
keyPipelineLog.info("OnePassSCSqlGenStrategy reqPrompt:\n{}", prompt.toUserMessage());
|
||||
ChatLanguageModel chatLanguageModel = getChatLanguageModel(llmReq.getModelConfig());
|
||||
Response<AiMessage> response = chatLanguageModel.generate(prompt.toUserMessage());
|
||||
String result = response.content().text();
|
||||
prompt2Output.put(prompt, result);
|
||||
output2Prompt.put(result, prompt);
|
||||
keyPipelineLog.info("OnePassSCSqlGenStrategy modelResp:\n{}", result);
|
||||
}
|
||||
);
|
||||
|
||||
//4.format response.
|
||||
Pair<String, Map<String, Double>> sqlMapPair = ResponseHelper.selfConsistencyVote(
|
||||
Lists.newArrayList(prompt2Output.values()));
|
||||
LLMResp llmResp = new LLMResp();
|
||||
llmResp.setQuery(promptHelper.buildAugmentedQuestion(llmReq));
|
||||
llmResp.setDbSchema(promptHelper.buildSchemaStr(llmReq));
|
||||
Lists.newArrayList(output2Prompt.keySet()));
|
||||
llmResp.setSqlOutput(sqlMapPair.getLeft());
|
||||
//TODO: should use the same few-shot exemplars as the one chose by self-consistency vote
|
||||
llmResp.setSqlRespMap(ResponseHelper.buildSqlRespMap(exemplarsList.get(0), sqlMapPair.getRight()));
|
||||
List<SqlExemplar> usedExemplars = prompt2Exemplar.get(output2Prompt.get(sqlMapPair.getLeft()));
|
||||
llmResp.setSqlRespMap(ResponseHelper.buildSqlRespMap(usedExemplars, sqlMapPair.getRight()));
|
||||
|
||||
return llmResp;
|
||||
}
|
||||
|
||||
private Prompt generatePrompt(LLMReq llmReq, List<SqlExemplar> fewshotExampleList) {
|
||||
StringBuilder exemplarsStr = new StringBuilder();
|
||||
for (SqlExemplar exemplar : fewshotExampleList) {
|
||||
String exemplarStr = String.format("#Question:%s #Schema:%s #SQL:%s\n",
|
||||
exemplar.getQuestion(), exemplar.getDbSchema(), exemplar.getSql());
|
||||
exemplarsStr.append(exemplarStr);
|
||||
private Prompt generatePrompt(LLMReq llmReq, LLMResp llmResp) {
|
||||
StringBuilder exemplars = new StringBuilder();
|
||||
for (SqlExemplar exemplar : llmReq.getDynamicExemplars()) {
|
||||
String exemplarStr = String.format("#Question:%s #Schema:%s #SideInfo:%s #SQL:%s\n",
|
||||
exemplar.getQuestion(), exemplar.getDbSchema(),
|
||||
exemplar.getSideInfo(), exemplar.getSql());
|
||||
exemplars.append(exemplarStr);
|
||||
}
|
||||
String dataSemanticsStr = promptHelper.buildSchemaStr(llmReq);
|
||||
String questionAugmented = promptHelper.buildAugmentedQuestion(llmReq);
|
||||
String dataSemantics = promptHelper.buildSchemaStr(llmReq);
|
||||
String sideInformation = promptHelper.buildSideInformation(llmReq);
|
||||
llmResp.setSchema(dataSemantics);
|
||||
llmResp.setSideInfo(sideInformation);
|
||||
|
||||
Map<String, Object> variable = new HashMap<>();
|
||||
variable.put("exemplar", exemplarsStr);
|
||||
variable.put("question", questionAugmented);
|
||||
variable.put("schema", dataSemanticsStr);
|
||||
variable.put("exemplar", exemplars);
|
||||
variable.put("question", llmReq.getQueryText());
|
||||
variable.put("schema", dataSemantics);
|
||||
variable.put("information", sideInformation);
|
||||
|
||||
// use custom prompt template if provided.
|
||||
PromptConfig promptConfig = llmReq.getPromptConfig();
|
||||
|
||||
@@ -73,6 +73,23 @@ public class PromptHelper {
|
||||
linkingListStr, currentDataStr, termStr, priorExts);
|
||||
}
|
||||
|
||||
public String buildSideInformation(LLMReq llmReq) {
|
||||
List<LLMReq.ElementValue> linkedValues = llmReq.getLinking();
|
||||
String currentDate = llmReq.getCurrentDate();
|
||||
String priorExts = llmReq.getPriorExts();
|
||||
|
||||
List<String> priorLinkingList = new ArrayList<>();
|
||||
for (LLMReq.ElementValue value : linkedValues) {
|
||||
String fieldName = value.getFieldName();
|
||||
String fieldValue = value.getFieldValue();
|
||||
priorLinkingList.add("‘" + fieldValue + "‘是一个‘" + fieldName + "‘");
|
||||
}
|
||||
String currentDataStr = "当前的日期是" + currentDate;
|
||||
String linkingListStr = String.join(",", priorLinkingList);
|
||||
String termStr = buildTermStr(llmReq);
|
||||
return String.format("%s;%s;%s;%s", linkingListStr, currentDataStr, termStr, priorExts);
|
||||
}
|
||||
|
||||
public String buildSchemaStr(LLMReq llmReq) {
|
||||
String tableStr = llmReq.getSchema().getDataSetName();
|
||||
StringBuilder metricStr = new StringBuilder();
|
||||
|
||||
@@ -10,9 +10,11 @@ public class LLMResp {
|
||||
|
||||
private String query;
|
||||
|
||||
private String modelName;
|
||||
private String sideInfo;
|
||||
|
||||
private String dbSchema;
|
||||
private String dataSet;
|
||||
|
||||
private String schema;
|
||||
|
||||
private String sqlOutput;
|
||||
|
||||
|
||||
@@ -356,4 +356,7 @@ alter table s2_agent add column `prompt_config` text COLLATE utf8_unicode_ci DEF
|
||||
alter table s2_agent add `model_config` text null;
|
||||
|
||||
--20240710
|
||||
alter table s2_agent add `enable_memory_review` tinyint DEFAULT 0;
|
||||
alter table s2_agent add `enable_memory_review` tinyint DEFAULT 0;
|
||||
|
||||
--20240718
|
||||
alter table s2_chat_memory add `side_info` TEXT DEFAULT NULL COMMENT '辅助信息';
|
||||
@@ -89,6 +89,7 @@ CREATE TABLE IF NOT EXISTS `s2_chat_memory` (
|
||||
`agent_id` INT ,
|
||||
`db_schema` TEXT ,
|
||||
`s2_sql` TEXT ,
|
||||
`side_info` TEXT ,
|
||||
`status` char(10) ,
|
||||
`llm_review` char(10) ,
|
||||
`llm_comment` TEXT,
|
||||
|
||||
@@ -142,6 +142,7 @@ CREATE TABLE IF NOT EXISTS `s2_chat_config` (
|
||||
CREATE TABLE IF NOT EXISTS `s2_chat_memory` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`question` varchar(655) COMMENT '用户问题' ,
|
||||
`side_info` TEXT COMMENT '辅助信息' ,
|
||||
`agent_id` INT COMMENT '助理ID' ,
|
||||
`db_schema` TEXT COMMENT 'Schema映射' ,
|
||||
`s2_sql` TEXT COMMENT '大模型解析SQL' ,
|
||||
|
||||
@@ -1,92 +1,62 @@
|
||||
[
|
||||
{
|
||||
"question": "比较jackjchen和robinlee在超音数的访问次数 (补充信息:’'jackjchen'‘是一个’用户名‘,’ 'robinlee'‘是一个’用户名‘。当前的日期是2020-12-01) ",
|
||||
"question": "比较jackjchen和robinlee在超音数的访问次数",
|
||||
"sideInfo": "'jackjchen'是一个'用户名','robinlee'是一个'用户名'。当前的日期是2020-12-01",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名, 访问次数 FROM 超音数产品 WHERE 用户名 IN ('jackjchen', 'robinlee')"
|
||||
},
|
||||
{
|
||||
"question": "超音数近12个月访问人数 按部门 (补充信息:。当前的日期是2022-11-06) ",
|
||||
"question": "超音数近12个月访问人数 按部门",
|
||||
"sideInfo": "当前的日期是2022-11-06",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门, 数据日期, 访问人数 FROM 超音数产品 WHERE 数据日期 >= '2021-11-06' AND 数据日期 <= '2022-11-06'"
|
||||
},
|
||||
{
|
||||
"question": "超音数美术部、技术研发部的访问时长 (补充信息:’'美术部'‘是一个’部门‘,’ '技术研发部'‘是一个’部门‘。当前的日期是2023-04-21) ",
|
||||
"question": "超音数美术部、技术研发部的访问时长",
|
||||
"sideInfo": "’'美术部'‘是一个’部门‘,’ '技术研发部'‘是一个’部门‘。当前的日期是2023-04-21",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门, 访问时长 FROM 超音数产品 WHERE 部门 IN ('美术部', '技术研发部')"
|
||||
},
|
||||
{
|
||||
"question": "近3天海田飞系MPPM结算播放份额 (补充信息:’'海田飞系'‘是一个’严选版权归属系‘。当前的日期是2023-08-21) ",
|
||||
"question": "近3天海田飞系MPPM结算播放份额",
|
||||
"sideInfo": "'海田飞系'是一个'严选版权归属系'。当前的日期是2023-08-21",
|
||||
"dbSchema": "Table: 严选, Columns = [\"严选版权归属系\", \"付费模式\", \"结算播放份额\", \"付费用户结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 严选版权归属系, 结算播放份额 FROM 严选 WHERE 严选版权归属系 = '海田飞系' AND 数据日期 >= '2023-08-19' AND 数据日期 <= '2023-08-21' "
|
||||
},
|
||||
{
|
||||
"question": "对比近7天翻唱版和纯音乐的歌曲播放量 (补充信息:’'纯音乐'‘是一个’语种‘,’ '翻唱版'‘是一个’歌曲版本‘。当前的日期是2023-05-22) ",
|
||||
"question": "对比近7天翻唱版和纯音乐的歌曲播放量",
|
||||
"sideInfo": "'纯音乐'是一个'语种','翻唱版'是一个'歌曲版本'。当前的日期是2023-05-22",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"是否潮流人歌曲\", \"C音歌曲ID\", \"C音歌曲MID\", \"歌曲名\", \"歌曲版本\", \"语种\", \"歌曲类型\", \"翻唱类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"结算播放量\", \"运营播放量\", \"付费用户结算播放量\", \"历史累计结算播放量\", \"运营搜播量\", \"结算搜播量\", \"运营完播量\", \"运营推播量\", \"近7日复播率\", \"日均搜播量\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲版本, 语种, 结算播放量 FROM 歌曲库 WHERE 歌曲版本 = '翻唱版' AND 语种 = '纯音乐' AND 数据日期 >= '2023-05-16' AND 数据日期 <= '2023-05-22' "
|
||||
},
|
||||
{
|
||||
"question": "对比一下陈拙悬、孟梅琦、赖媚韵的粉丝数 (补充信息:’'1527896'‘是一个’MPPM歌手ID‘,’ '1565463'‘是一个’MPPM歌手ID‘,’ '2141459'‘是一个’MPPM歌手ID‘。当前的日期是2023-05-31) ",
|
||||
"question": "对比一下陈拙悬、孟梅琦、赖媚韵的粉丝数",
|
||||
"sideInfo": "'1527896'是一个'MPPM歌手ID','1565463'是一个'MPPM歌手ID','2141459'是一个'MPPM歌手ID'。当前的日期是2023-05-31",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"上下架状态\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"活跃区域\", \"年龄\", \"歌手才能\", \"歌手风格\", \"粉丝数\", \"潮音粉丝数\", \"超声波粉丝数\", \"推博粉丝数\", \"超声波歌曲数\", \"在架歌曲数\", \"超声波分享数\", \"独占歌曲数\", \"超声波在架歌曲评论数\", \"有播放量歌曲数\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌手名, 粉丝数 FROM 艺人库 WHERE 歌手名 IN ('陈拙悬', '孟梅琦', '赖媚韵')"
|
||||
},
|
||||
{
|
||||
"question": "播放量大于1万的歌曲有多少 (补充信息:。当前的日期是2023-07-31) ",
|
||||
"question": "播放量大于1万的歌曲有多少",
|
||||
"sideInfo": "当前的日期是2023-07-31",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 结算播放量 > 10000"
|
||||
},
|
||||
{
|
||||
"question": "超音数访问时长小于1小时,且来自美术部的用户是哪些 (补充信息:’'美术部'‘是一个’部门‘。当前的日期是2023-07-31) ",
|
||||
"question": "超音数访问时长小于1小时,且来自美术部的用户是哪些",
|
||||
"sideInfo": "'美术部'‘是一个’部门‘。当前的日期是2023-07-31",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"用户名\", \"部门\", \"模块\", \"访问时长\", \"访问次数\", \"访问人数\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名 FROM 超音数产品 WHERE 部门 = '美术部' AND 访问时长 < 1"
|
||||
},
|
||||
{
|
||||
"question": "超音数pv最高的用户有哪些 (补充信息:。当前的日期是2023-08-31) ",
|
||||
"question": "超音数pv最高的用户有哪些",
|
||||
"sideInfo": "当前的日期是2023-08-31",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"用户名\", \"部门\", \"模块\", \"访问时长\", \"访问次数\", \"访问人数\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名 FROM 超音数产品 ORDER BY 访问次数 DESC LIMIT 1"
|
||||
},
|
||||
{
|
||||
"question": "近90天袁亚伟播放量平均值是多少 (补充信息:’'152789226'‘是一个’MPPM歌手ID‘。当前的日期是2023-08-31) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT AVG(结算播放量) FROM 艺人库 WHERE 歌手名 = '袁亚伟' AND 数据日期 >= '2023-06-02' AND 数据日期 <= '2023-08-31' "
|
||||
},
|
||||
{
|
||||
"question": "周倩倩近7天结算播放量总和是多少 (补充信息:’'199509'‘是一个’MPPM歌手ID‘。当前的日期是2023-08-31) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT SUM(结算播放量) FROM 艺人库 WHERE 歌手名 = '周倩倩' AND 数据日期 >= '2023-08-15' AND 数据日期 <= '2023-08-31' "
|
||||
},
|
||||
{
|
||||
"question": "超音数访问次数大于1k的部门是哪些 (补充信息:。当前的日期是2023-09-14) ",
|
||||
"question": "超音数访问次数大于1k的部门是哪些",
|
||||
"sideInfo": "当前的日期是2023-09-14",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门 FROM 超音数产品 WHERE 访问次数 > 1000"
|
||||
},
|
||||
{
|
||||
"question": "陈亿训唱的所有的播放量大于20k的孤勇者有哪些 (补充信息:’'199509'‘是一个’MPPM歌手ID‘,’ '1527123'‘是一个’MPPM歌曲ID‘。当前的日期是2023-09-18) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"MPPM歌手ID\", \"歌曲版本\", \"歌曲类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 结算播放量 > 20000 AND 歌手名 = '陈亿训' AND 歌曲名 = '孤勇者'"
|
||||
},
|
||||
{
|
||||
"question": "周洁轮去年发布的歌曲有哪些 (补充信息:’'23109'‘是一个’MPPM歌手ID‘。当前的日期是2023-09-18) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"歌曲版本\", \"歌手名\", \"歌曲类型\", \"发布时间\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发布时间 >= '2023-01-01' AND 发布时间 <= '2023-12-31' AND 歌手名 = '周洁轮'"
|
||||
},
|
||||
{
|
||||
"question": "我想要近半年签约的播放量前十的歌手有哪些 (补充信息:。当前的日期是2023-09-11) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"签约日期\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌手名 FROM 艺人库 WHERE 数据日期 >= '2023-03-15' AND 数据日期 <= '2023-09-11' ORDER BY 结算播放量 DESC LIMIT 10"
|
||||
},
|
||||
{
|
||||
"question": "最近一年发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2022-08-13' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
},
|
||||
{
|
||||
"question": "今年以来发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2023-01-01' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
},
|
||||
{
|
||||
"question": "2023年以来发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:’'514129144'‘是一个’MPPM歌曲ID‘。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2023-01-01' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
}
|
||||
]
|
||||
@@ -88,6 +88,7 @@ CREATE TABLE IF NOT EXISTS `s2_chat_memory` (
|
||||
`question` varchar(655) ,
|
||||
`agent_id` INT ,
|
||||
`db_schema` TEXT ,
|
||||
`side_info` TEXT ,
|
||||
`s2_sql` TEXT ,
|
||||
`status` char(10) ,
|
||||
`llm_review` char(10) ,
|
||||
|
||||
@@ -1,92 +1,62 @@
|
||||
[
|
||||
{
|
||||
"question": "比较jackjchen和robinlee在超音数的访问次数 (补充信息:’'jackjchen'‘是一个’用户名‘,’ 'robinlee'‘是一个’用户名‘。当前的日期是2020-12-01) ",
|
||||
"question": "比较jackjchen和robinlee在超音数的访问次数",
|
||||
"sideInfo": "'jackjchen'是一个'用户名','robinlee'是一个'用户名'。当前的日期是2020-12-01",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名, 访问次数 FROM 超音数产品 WHERE 用户名 IN ('jackjchen', 'robinlee')"
|
||||
},
|
||||
{
|
||||
"question": "超音数近12个月访问人数 按部门 (补充信息:。当前的日期是2022-11-06) ",
|
||||
"question": "超音数近12个月访问人数 按部门",
|
||||
"sideInfo": "当前的日期是2022-11-06",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门, 数据日期, 访问人数 FROM 超音数产品 WHERE 数据日期 >= '2021-11-06' AND 数据日期 <= '2022-11-06'"
|
||||
},
|
||||
{
|
||||
"question": "超音数美术部、技术研发部的访问时长 (补充信息:’'美术部'‘是一个’部门‘,’ '技术研发部'‘是一个’部门‘。当前的日期是2023-04-21) ",
|
||||
"question": "超音数美术部、技术研发部的访问时长",
|
||||
"sideInfo": "’'美术部'‘是一个’部门‘,’ '技术研发部'‘是一个’部门‘。当前的日期是2023-04-21",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门, 访问时长 FROM 超音数产品 WHERE 部门 IN ('美术部', '技术研发部')"
|
||||
},
|
||||
{
|
||||
"question": "近3天海田飞系MPPM结算播放份额 (补充信息:’'海田飞系'‘是一个’严选版权归属系‘。当前的日期是2023-08-21) ",
|
||||
"question": "近3天海田飞系MPPM结算播放份额",
|
||||
"sideInfo": "'海田飞系'是一个'严选版权归属系'。当前的日期是2023-08-21",
|
||||
"dbSchema": "Table: 严选, Columns = [\"严选版权归属系\", \"付费模式\", \"结算播放份额\", \"付费用户结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 严选版权归属系, 结算播放份额 FROM 严选 WHERE 严选版权归属系 = '海田飞系' AND 数据日期 >= '2023-08-19' AND 数据日期 <= '2023-08-21' "
|
||||
},
|
||||
{
|
||||
"question": "对比近7天翻唱版和纯音乐的歌曲播放量 (补充信息:’'纯音乐'‘是一个’语种‘,’ '翻唱版'‘是一个’歌曲版本‘。当前的日期是2023-05-22) ",
|
||||
"question": "对比近7天翻唱版和纯音乐的歌曲播放量",
|
||||
"sideInfo": "'纯音乐'是一个'语种','翻唱版'是一个'歌曲版本'。当前的日期是2023-05-22",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"是否潮流人歌曲\", \"C音歌曲ID\", \"C音歌曲MID\", \"歌曲名\", \"歌曲版本\", \"语种\", \"歌曲类型\", \"翻唱类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"结算播放量\", \"运营播放量\", \"付费用户结算播放量\", \"历史累计结算播放量\", \"运营搜播量\", \"结算搜播量\", \"运营完播量\", \"运营推播量\", \"近7日复播率\", \"日均搜播量\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲版本, 语种, 结算播放量 FROM 歌曲库 WHERE 歌曲版本 = '翻唱版' AND 语种 = '纯音乐' AND 数据日期 >= '2023-05-16' AND 数据日期 <= '2023-05-22' "
|
||||
},
|
||||
{
|
||||
"question": "对比一下陈拙悬、孟梅琦、赖媚韵的粉丝数 (补充信息:’'1527896'‘是一个’MPPM歌手ID‘,’ '1565463'‘是一个’MPPM歌手ID‘,’ '2141459'‘是一个’MPPM歌手ID‘。当前的日期是2023-05-31) ",
|
||||
"question": "对比一下陈拙悬、孟梅琦、赖媚韵的粉丝数",
|
||||
"sideInfo": "'1527896'是一个'MPPM歌手ID','1565463'是一个'MPPM歌手ID','2141459'是一个'MPPM歌手ID'。当前的日期是2023-05-31",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"上下架状态\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"活跃区域\", \"年龄\", \"歌手才能\", \"歌手风格\", \"粉丝数\", \"潮音粉丝数\", \"超声波粉丝数\", \"推博粉丝数\", \"超声波歌曲数\", \"在架歌曲数\", \"超声波分享数\", \"独占歌曲数\", \"超声波在架歌曲评论数\", \"有播放量歌曲数\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌手名, 粉丝数 FROM 艺人库 WHERE 歌手名 IN ('陈拙悬', '孟梅琦', '赖媚韵')"
|
||||
},
|
||||
{
|
||||
"question": "播放量大于1万的歌曲有多少 (补充信息:。当前的日期是2023-07-31) ",
|
||||
"question": "播放量大于1万的歌曲有多少",
|
||||
"sideInfo": "当前的日期是2023-07-31",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 结算播放量 > 10000"
|
||||
},
|
||||
{
|
||||
"question": "超音数访问时长小于1小时,且来自美术部的用户是哪些 (补充信息:’'美术部'‘是一个’部门‘。当前的日期是2023-07-31) ",
|
||||
"question": "超音数访问时长小于1小时,且来自美术部的用户是哪些",
|
||||
"sideInfo": "'美术部'‘是一个’部门‘。当前的日期是2023-07-31",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"用户名\", \"部门\", \"模块\", \"访问时长\", \"访问次数\", \"访问人数\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名 FROM 超音数产品 WHERE 部门 = '美术部' AND 访问时长 < 1"
|
||||
},
|
||||
{
|
||||
"question": "超音数pv最高的用户有哪些 (补充信息:。当前的日期是2023-08-31) ",
|
||||
"question": "超音数pv最高的用户有哪些",
|
||||
"sideInfo": "当前的日期是2023-08-31",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"用户名\", \"部门\", \"模块\", \"访问时长\", \"访问次数\", \"访问人数\", \"数据日期\"]",
|
||||
"sql": "SELECT 用户名 FROM 超音数产品 ORDER BY 访问次数 DESC LIMIT 1"
|
||||
},
|
||||
{
|
||||
"question": "近90天袁亚伟播放量平均值是多少 (补充信息:’'152789226'‘是一个’MPPM歌手ID‘。当前的日期是2023-08-31) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT AVG(结算播放量) FROM 艺人库 WHERE 歌手名 = '袁亚伟' AND 数据日期 >= '2023-06-02' AND 数据日期 <= '2023-08-31' "
|
||||
},
|
||||
{
|
||||
"question": "周倩倩近7天结算播放量总和是多少 (补充信息:’'199509'‘是一个’MPPM歌手ID‘。当前的日期是2023-08-31) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT SUM(结算播放量) FROM 艺人库 WHERE 歌手名 = '周倩倩' AND 数据日期 >= '2023-08-15' AND 数据日期 <= '2023-08-31' "
|
||||
},
|
||||
{
|
||||
"question": "超音数访问次数大于1k的部门是哪些 (补充信息:。当前的日期是2023-09-14) ",
|
||||
"question": "超音数访问次数大于1k的部门是哪些",
|
||||
"sideInfo": "当前的日期是2023-09-14",
|
||||
"dbSchema": "Table: 超音数产品, Columns = [\"部门\", \"模块\", \"用户名\", \"访问次数\", \"访问人数\", \"访问时长\", \"数据日期\"]",
|
||||
"sql": "SELECT 部门 FROM 超音数产品 WHERE 访问次数 > 1000"
|
||||
},
|
||||
{
|
||||
"question": "陈亿训唱的所有的播放量大于20k的孤勇者有哪些 (补充信息:’'199509'‘是一个’MPPM歌手ID‘,’ '1527123'‘是一个’MPPM歌曲ID‘。当前的日期是2023-09-18) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"MPPM歌手ID\", \"歌曲版本\", \"歌曲类型\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 结算播放量 > 20000 AND 歌手名 = '陈亿训' AND 歌曲名 = '孤勇者'"
|
||||
},
|
||||
{
|
||||
"question": "周洁轮去年发布的歌曲有哪些 (补充信息:’'23109'‘是一个’MPPM歌手ID‘。当前的日期是2023-09-18) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"歌曲名\", \"歌曲版本\", \"歌手名\", \"歌曲类型\", \"发布时间\", \"MPPM歌曲ID\", \"是否严选窄口径歌曲\", \"是否严选宽口径歌曲\", \"是否潮流人歌曲\", \"超声波歌曲ID\", \"C音歌曲ID\", \"C音歌曲MID\", \"结算播放量\", \"运营播放量\", \"分享量\", \"收藏量\", \"运营搜播量\", \"结算搜播量\", \"拉新用户数\", \"拉活用户数\", \"分享率\", \"结算播放份额\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发布时间 >= '2023-01-01' AND 发布时间 <= '2023-12-31' AND 歌手名 = '周洁轮'"
|
||||
},
|
||||
{
|
||||
"question": "我想要近半年签约的播放量前十的歌手有哪些 (补充信息:。当前的日期是2023-09-11) ",
|
||||
"dbSchema": "Table: 艺人库, Columns = [\"播放量层级\", \"播放量单调性\", \"播放量方差\", \"播放量突增类型\", \"播放量集中度\", \"歌手名\", \"歌手等级\", \"歌手类型\", \"歌手来源\", \"签约日期\", \"MPPM潮流人等级\", \"结算播放量\", \"运营播放量\", \"历史累计结算播放量\", \"有播放量歌曲数\", \"历史累计运营播放量\", \"付费用户结算播放量\", \"结算播放量占比\", \"运营播放份额\", \"免费用户结算播放占比\", \"完播量\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌手名 FROM 艺人库 WHERE 数据日期 >= '2023-03-15' AND 数据日期 <= '2023-09-11' ORDER BY 结算播放量 DESC LIMIT 10"
|
||||
},
|
||||
{
|
||||
"question": "最近一年发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2022-08-13' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
},
|
||||
{
|
||||
"question": "今年以来发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2023-01-01' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
},
|
||||
{
|
||||
"question": "2023年以来发行的歌曲中,有哪些在近7天播放超过一千万的 (补充信息:’'514129144'‘是一个’MPPM歌曲ID‘。当前的日期是2023-08-12) ",
|
||||
"dbSchema": "Table: 歌曲库, Columns = [\"发行日期\", \"歌曲语言\", \"歌曲来源\", \"歌曲流派\", \"歌曲名\", \"歌曲版本\", \"歌曲类型\", \"发行时间\", \"数据日期\"]",
|
||||
"sql": "SELECT 歌曲名 FROM 歌曲库 WHERE 发行日期 >= '2023-01-01' AND 发行日期 <= '2023-08-12' AND 数据日期 >= '2023-08-06' AND 数据日期 <= '2023-08-12' AND 结算播放量 > 10000000"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user