42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package semanticreconcile
|
|
|
|
import (
|
|
"fmt"
|
|
"io/fs"
|
|
|
|
rootassets "gitea.maximumdirect.net/eric/notarius/assets"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/llm"
|
|
)
|
|
|
|
const (
|
|
ResponseSchemaKey = llm.ResponseSchemaKey("semantic_reconciliation_llm")
|
|
ResponseSchemaID = "notarius.generic.semantic_reconciliation.llm"
|
|
ResponseSchemaName = "notarius_semantic_reconciliation_llm_v1"
|
|
SchemaVersion = "v1"
|
|
SchemaAssetPath = "schemas/semantic_reconciliation_llm.v1.json"
|
|
)
|
|
|
|
func assetFS() (fs.FS, error) {
|
|
assets, err := fs.Sub(rootassets.FS(), "generic/normalize/deduplication")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("scope semantic reconciliation assets: %w", err)
|
|
}
|
|
return assets, nil
|
|
}
|
|
|
|
// LoadResponseSchema returns the private request-local integer proposal
|
|
// contract. It is separate from every durable artifact schema.
|
|
func LoadResponseSchema() (llm.ResponseSchema, error) {
|
|
assets, err := assetFS()
|
|
if err != nil {
|
|
return llm.ResponseSchema{}, err
|
|
}
|
|
return llm.LoadResponseSchema(assets, llm.ResponseSchemaDefinition{
|
|
Key: ResponseSchemaKey,
|
|
ID: ResponseSchemaID,
|
|
Version: SchemaVersion,
|
|
Name: ResponseSchemaName,
|
|
AssetPath: SchemaAssetPath,
|
|
})
|
|
}
|