36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package scenes
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/llm"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/modules/dnd/promptassets"
|
|
)
|
|
|
|
const scriptoriumPromptRoot = "assets/scriptorium/prompts"
|
|
|
|
func RegisterPromptAssets(registry *llm.AssetRegistry) error {
|
|
if err := registry.RegisterPromptFS(embeddedAssets, scriptoriumPromptRoot); err != nil {
|
|
return err
|
|
}
|
|
return registry.RegisterSchemaFS(embeddedAssets, "assets/schemas")
|
|
}
|
|
|
|
func scriptoriumPromptMetadata() (string, error) {
|
|
scriptoriumPromptHashOnce.Do(func() {
|
|
parts := append([]llm.AssetHashPart{
|
|
{FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd.scenes.yaml"},
|
|
{FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd/scenes/task.md"},
|
|
{FS: embeddedAssets, Path: "assets/scriptorium/prompts/dnd/scenes/instructions.md"},
|
|
}, promptassets.CommonHashParts()...)
|
|
scriptoriumPromptHash, scriptoriumPromptHashErr = llm.HashAssets(parts)
|
|
})
|
|
return scriptoriumPromptHash, scriptoriumPromptHashErr
|
|
}
|
|
|
|
var (
|
|
scriptoriumPromptHashOnce sync.Once
|
|
scriptoriumPromptHash string
|
|
scriptoriumPromptHashErr error
|
|
)
|