Add module correction repair prompts
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
||||
"gitea.maximumdirect.net/eric/audita/v3/internal/core/config"
|
||||
"gitea.maximumdirect.net/eric/audita/v3/internal/prompts"
|
||||
ck "go.maximumdirect.net/configkit"
|
||||
pk "go.maximumdirect.net/promptkit"
|
||||
)
|
||||
|
||||
func TestEngineCapturesAutomaticPromptSources(t *testing.T) {
|
||||
@@ -198,3 +199,31 @@ func TestEngineResolvesLinkedPromptMessageBesideDefinition(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRepairPromptReplacementUsesMessageFile(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
for name, content := range map[string]string{
|
||||
"config.yml": "version: 3\n",
|
||||
"prompts.yml": "collections:\n audita:\n prompts:\n - id: modules.grammar.repair\n messages:\n - role: user\n content_file: repair.txt\n output:\n format: json\n validation_mode: json_schema\n schema_path: correction_repair.v1.json\nprofiles:\n - id: fixture\n endpoint: https://example.invalid/v1\n model: fixture\n",
|
||||
"repair.txt": "Replacement {{.RepairRequestJSON}}",
|
||||
} {
|
||||
if err := os.WriteFile(filepath.Join(dir, name), []byte(content), 0644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
loaded, err := config.Load(ck.Input{Source: ck.File(filepath.Join(dir, "config.yml"))}, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
runtime, err := NewRuntime(context.Background(), loaded, nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
prepared, err := runtime.Engine.Prepare(context.Background(), pk.RunRequest{PromptID: prompts.PromptIDModuleGrammarRepair, ProfileID: "fixture", Vars: map[string]string{"RepairRequestJSON": "fixture request"}})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(prepared.Messages) != 1 || prepared.Messages[0].Content != "Replacement fixture request" || prepared.OutputContract.SchemaPath != "correction_repair.v1.json" {
|
||||
t.Fatalf("prepared replacement: %+v", prepared)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user