47 lines
1.9 KiB
Go
47 lines
1.9 KiB
Go
package locations
|
|
|
|
import (
|
|
"context"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/llm"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/modules/dnd/shared/entityreconcile"
|
|
"gitea.maximumdirect.net/eric/promptkit"
|
|
)
|
|
|
|
func TestRegisterPromptAssetsPreparesLocationNormalizationPrompt(t *testing.T) {
|
|
registry := llm.NewAssetRegistry()
|
|
if err := entityreconcile.RegisterSchemaAssets(registry); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := RegisterPromptAssets(registry); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
options, err := registry.PromptKitOptions()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
options = append(options, promptkit.WithProfiles(promptkit.OpenAICompatibleProfile(promptkit.OpenAICompatibleProfileConfig{ID: "location-normalize-test", Endpoint: "http://127.0.0.1:1/v1", Model: "test"})))
|
|
engine, err := promptkit.NewEngine(promptkit.Config{Timeout: time.Second}, options...)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
prepared, err := engine.Prepare(context.Background(), promptkit.RunRequest{PromptID: PromptID, PromptVersion: entityreconcile.SchemaVersion, ProfileID: "location-normalize-test", Inputs: map[string]promptkit.ArtifactRef{"candidates": promptkit.Inline(`{"candidates":[{"key":"candidate-000001","name":"The Tavern","source_refs":[]}]}`), "transcript": promptkit.Inline(`{"windows":[{"units":[]}]}`)}})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if prepared.OutputContract.SchemaPath != "dnd_entity_reconcile_llm.v1.json" || len(prepared.Messages) != 5 {
|
|
t.Fatalf("prepared prompt = %#v", prepared)
|
|
}
|
|
for _, index := range []int{2, 4} {
|
|
if prepared.Messages[index].CacheControl == nil {
|
|
t.Fatalf("message %d cache = %#v", index, prepared.Messages[index].CacheControl)
|
|
}
|
|
}
|
|
if !strings.Contains(prepared.Messages[3].Content, "candidate-000001") || strings.Contains(prepared.Messages[3].Content, `"windows"`) {
|
|
t.Fatalf("candidate message = %q", prepared.Messages[3].Content)
|
|
}
|
|
}
|