idea_world_labDEV JOURNAL
2026年6月28日星期日

备选方案 E:创建 Qwen 查询配置文件

流程

raw chunkText
  -> 请求 Qwen 生成用于搜索的 JSON
  -> 使用生成的 JSON 进行 BM25/vector 搜索
  -> 返回 JSONL 候选项

示例输出

如果 Qwen 表现良好,可以像下面这样创建搜索 profile。

{
  "search_intent": "Godot 4 2D player movement tutorial",
  "important_literals": [
    "Input.is_action_pressed",
    "Vector2.ZERO",
    "AnimatedSprite2D",
    "position.clamp",
    "screen_size"
  ],
  "likely_doc_topics": [
    "first 2D game",
    "coding the player",
    "player movement",
    "clamp position to screen",
    "play and stop AnimatedSprite2D"
  ],
  "migration_signals": []
}

优点

  • 可以减少硬编码。
  • 可以在复杂的块中概括意图。
  • 可以让搜索词更易于人阅读。
  • 可以将 Godot 上下文推理交给 Qwen。

缺点

  • 速度慢。
  • 成本高。
  • 从搜索前阶段起就可能出现幻觉。
  • 可能会产生没有 Qwen 的线索。
  • 可能会生成错误的迁移意图,从而错误地拉取 api_mapping。

失败示例

基准块中有 AnimatedSprite2D,但如果 Qwen 像下面这样错误地概括,就会很危险。

{
  "migration_intent": "Godot 3 to Godot 4 migration",
  "important_terms": ["AnimatedSprite", "AnimatedSprite2D"]
}

在这种情况下,这是正常的 Godot 4 代码,但可能会错误地拉取迁移映射。

PoC 模拟

先将基准 chunk 交给 Qwen,让它创建搜索配置文件。

输入:

SOURCE_CODE:
func _process(delta):
  ...
  $AnimatedSprite2D.play()
  position = position.clamp(Vector2.ZERO, screen_size)

成功简介:

{
  "search_intent": "Godot 4 2D player movement tutorial",
  "important_literals": [
    "Input.is_action_pressed",
    "Vector2.ZERO",
    "AnimatedSprite2D",
    "position.clamp",
    "screen_size"
  ],
  "migration_signals": []
}

如果使用此个人资料进行搜索,预期的候选人如下。

docs_chunks:
  first_2d_game / coding_the_player
  first_2d_game / clamp and screen bounds section

api_mapping:
  几乎没有或低

label_prototypes:
  几乎没有或低

失败 profile:

{
  "search_intent": "Godot 3 to Godot 4 migration",
  "important_literals": [
    "AnimatedSprite",
    "AnimatedSprite2D",
    "KinematicBody2D"
  ],
  "migration_signals": ["AnimatedSprite to AnimatedSprite2D"]
}

失败的配置文件为何危险:

SOURCE_CODE没有 AnimatedSprite。  
SOURCE_CODE没有 KinematicBody2D。  
SOURCE_CODE可能是符合 Godot 4 的正常代码。  
但是如果 Qwen 创建 migration intent,可能会错误地搜索 api_mapping/label_prototypes。

在 PoC 中确认的日志

Qwen 查询配置方式在搜索之前会介入 LLM,因此必须包含以下日志。

1. 原始 chunkText  
2. Qwen 创建的 query profile JSON  
3. 检查 profile 中的 important_literals 是否实际存在于 SOURCE_CODE 中  
4. 检查 profile 中的 migration_signals 是否实际存在于 SOURCE_CODE 中  
5. 使用 profile 搜索的候选项  
6. 与使用原始 chunkText 搜索的候选项的差异

眼前的结论:

如果 Qwen profile 显示良好,搜索词会更好看。  
但是如果制造不存在的线索,搜索前阶段的结果会被污染。  
因此,Qwen 在搜索后作为 validator 使用比搜索前更安全。

判定

适用于搜索质量实验  
作为生产第一搜索引擎需谨慎

原始笔记的判断倾向于将 Qwen 用作搜索后直接证据验证器,而不是搜索前的查询生成器,这样更安全。