代替 E: Qwen クエリプロファイル作成
フロー
raw chunkText
-> Qwenに検索用JSON生成をリクエスト
-> 生成されたJSONでBM25/vector検索
-> JSONL候補を返す例示出力
Qwenがうまく選択されれば、次のように検索プロファイルを作成できます。
{
"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 がない手がかりを作り出すことがある。
- 誤った migration intent を作成し、api_mapping を誤って引き込む可能性がある。
失敗例
基準チャンクには AnimatedSprite2D があるが、Qwen が次のように誤って要約すると危険である。
{
"migration_intent": "Godot 3 to Godot 4 migration",
"important_terms": ["AnimatedSprite", "AnimatedSprite2D"]
}この場合は正常な Godot 4 のコードですが、migration mapping を誤って持ち込む可能性があります。
PoC シミュレーション
基準チャンクをまず 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:
ほとんどなしまたは低い失敗プロファイル:
{
"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 query profile方式は検索の前にLLMが介入するため、次のログが必ず必要です。
1. raw chunkText
2. Qwenが作成した query profile JSON
3. profile 内の important_literals が SOURCE_CODE に実際に存在するか
4. profile 内の migration_signals が SOURCE_CODE に実際に存在するか
5. profile で検索した候補
6. raw chunkText で検索した候補との違い目に見える結論:
Qwen プロファイルがうまく出ると、検索語が見やすくなる。
しかし、存在しない手がかりを作り出すと、検索前の段階で結果が汚染される。
だから Qwen は検索前よりも検索後にバリデータとして使う方が安全だ。判定
検索品質の実験用としては良い
本番第一検索エンジンとしては慎重元のメモの判断は、Qwenを検索前のクエリ生成器よりも検索後の直接証拠バリデータとして使用する方が安全だという側です。