Skip to content

Commit 4aeacad

Browse files
Copilotxuzeyu91
andcommitted
Increase weight of SQL examples in prompts
Co-authored-by: xuzeyu91 <26290929+xuzeyu91@users.noreply.github.com>
1 parent c626e02 commit 4aeacad

File tree

2 files changed

+43
-20
lines changed

2 files changed

+43
-20
lines changed

src/Text2Sql.Net/Domain/Service/AdvancedPromptService.cs

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -316,31 +316,44 @@ private static string BuildProgressivePromptWithExamples(
316316
prompt.AppendLine($"当前时间:{DateTime.Now}");
317317
prompt.AppendLine();
318318

319-
// 2. 数据库信息
320-
prompt.AppendLine("## 数据库环境");
321-
prompt.AppendLine($"- **数据库类型**: {dbType}");
322-
prompt.AppendLine("- **表结构信息**:");
323-
prompt.AppendLine("```json");
324-
prompt.AppendLine(schemaInfo);
325-
prompt.AppendLine("```");
326-
prompt.AppendLine();
327-
328-
// 3. 用户提供的问答示例(优先级更高)
319+
// 2. 用户提供的问答示例(最高优先级 - 移到最前面)
329320
if (!string.IsNullOrEmpty(examplesPrompt))
330321
{
331-
prompt.AppendLine("## 相关问答示例");
322+
prompt.AppendLine("## 【重要】参考示例 - 务必遵循");
323+
prompt.AppendLine();
324+
prompt.AppendLine("**以下是与当前查询高度相关的实际问答示例,这些示例来自相同的数据库环境,具有极高的参考价值。**");
332325
prompt.AppendLine();
333-
prompt.AppendLine("以下是与您的查询相关的高质量示例,请重点参考这些示例的模式和风格:");
326+
prompt.AppendLine("**请特别注意:**");
327+
prompt.AppendLine("1. 这些示例展示了在当前数据库中解决类似问题的正确方法");
328+
prompt.AppendLine("2. 必须严格参考示例中的SQL编写风格、表关联方式和查询模式");
329+
prompt.AppendLine("3. 示例中使用的表名、字段名、JOIN方式都是针对当前数据库优化过的");
330+
prompt.AppendLine("4. 优先采用示例中展示的查询结构和技巧");
331+
prompt.AppendLine();
332+
prompt.AppendLine("---");
334333
prompt.AppendLine();
335334
prompt.AppendLine(examplesPrompt);
335+
prompt.AppendLine("---");
336+
prompt.AppendLine();
337+
prompt.AppendLine("**请基于以上示例的模式和风格来生成当前查询的SQL语句。**");
336338
prompt.AppendLine();
337339
}
338340

341+
// 3. 数据库信息
342+
prompt.AppendLine("## 数据库环境");
343+
prompt.AppendLine($"- **数据库类型**: {dbType}");
344+
prompt.AppendLine("- **表结构信息**:");
345+
prompt.AppendLine("```json");
346+
prompt.AppendLine(schemaInfo);
347+
prompt.AppendLine("```");
348+
prompt.AppendLine();
349+
339350
// 4. 内置渐进式示例(从简单到复杂)
340351
if (examples.Count > 0)
341352
{
342353
prompt.AppendLine("## 通用查询示例(按复杂度递增)");
343354
prompt.AppendLine();
355+
prompt.AppendLine("以下示例展示了不同复杂度的SQL查询模式:");
356+
prompt.AppendLine();
344357

345358
for (int i = 0; i < examples.Count; i++)
346359
{
@@ -418,6 +431,14 @@ private static string BuildProgressivePromptWithExamples(
418431
// 8. 输出要求
419432
prompt.AppendLine("## 输出要求");
420433
prompt.AppendLine();
434+
if (!string.IsNullOrEmpty(examplesPrompt))
435+
{
436+
prompt.AppendLine("**特别提醒:上面提供的参考示例非常重要,请务必:**");
437+
prompt.AppendLine("- 参考示例中的SQL结构和编写风格");
438+
prompt.AppendLine("- 使用示例中展示的表关联方式");
439+
prompt.AppendLine("- 借鉴示例中的查询技巧和模式");
440+
prompt.AppendLine();
441+
}
421442
prompt.AppendLine("请按照以下格式输出:");
422443
prompt.AppendLine();
423444
prompt.AppendLine("1. **分析过程** (可选,根据用户偏好):");

src/Text2Sql.Net/Domain/Service/QAExampleService.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -283,25 +283,27 @@ public string FormatExamplesForPrompt(List<QAExample> examples)
283283
}
284284

285285
var promptBuilder = new StringBuilder();
286-
promptBuilder.AppendLine("以下是一些相关的问答示例,请参考这些示例的模式和风格来生成SQL查询:");
287-
promptBuilder.AppendLine();
288286

289287
for (int i = 0; i < examples.Count; i++)
290288
{
291289
var example = examples[i];
292-
promptBuilder.AppendLine($"示例 {i + 1}:");
293-
promptBuilder.AppendLine($"问题: {example.Question}");
294-
promptBuilder.AppendLine($"SQL: {example.SqlQuery}");
290+
promptBuilder.AppendLine($"**示例 {i + 1}**:");
291+
promptBuilder.AppendLine();
292+
promptBuilder.AppendLine($"**用户问题**: {example.Question}");
293+
promptBuilder.AppendLine();
294+
promptBuilder.AppendLine($"**标准SQL查询**:");
295+
promptBuilder.AppendLine("```sql");
296+
promptBuilder.AppendLine(example.SqlQuery);
297+
promptBuilder.AppendLine("```");
295298

296299
if (!string.IsNullOrEmpty(example.Description))
297300
{
298-
promptBuilder.AppendLine($"说明: {example.Description}");
301+
promptBuilder.AppendLine();
302+
promptBuilder.AppendLine($"**说明**: {example.Description}");
299303
}
300304

301305
promptBuilder.AppendLine();
302306
}
303-
304-
promptBuilder.AppendLine("请根据上述示例的风格和模式,为当前用户问题生成准确的SQL查询:");
305307

306308
return promptBuilder.ToString();
307309
}

0 commit comments

Comments
 (0)