Files
scriptorium/internal/adapter/http/dto.go
2026-05-04 21:19:29 -05:00

67 lines
2.0 KiB
Go

package httpadapter
import (
"time"
"gitea.maximumdirect.net/eric/scriptorium/internal/domain"
)
type runRequestDTO struct {
ProfileID string `json:"profile_id"`
ProfileVersion string `json:"profile_version,omitempty"`
Inputs map[string]inputRefDTO `json:"inputs"`
Vars map[string]string `json:"vars,omitempty"`
Model *modelOverrideRequestDTO `json:"model,omitempty"`
}
type inputRefDTO struct {
Type string `json:"type"`
URI string `json:"uri,omitempty"`
Body string `json:"body,omitempty"`
}
type modelOverrideRequestDTO struct {
Endpoint string `json:"endpoint,omitempty"`
Model string `json:"model,omitempty"`
Temperature float64 `json:"temperature,omitempty"`
MaxTokens int `json:"max_tokens,omitempty"`
TopP float64 `json:"top_p,omitempty"`
}
type runResponseDTO struct {
Artifact artifactDTO `json:"artifact"`
Validation domain.ValidationResult `json:"validation"`
Metadata metadataDTO `json:"metadata"`
RawModelOutput string `json:"raw_model_output"`
}
type artifactDTO struct {
Name string `json:"name"`
ContentType string `json:"content_type"`
Body string `json:"body"`
URI string `json:"uri,omitempty"`
Size int64 `json:"size"`
Hash string `json:"hash"`
}
type metadataDTO struct {
ProfileID string `json:"profile_id"`
ProfileVersion string `json:"profile_version"`
ModelName string `json:"model_name"`
Endpoint string `json:"endpoint"`
InputHashes map[string]string `json:"input_hashes"`
PromptHash string `json:"prompt_hash"`
Usage domain.TokenUsage `json:"usage"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time"`
}
type errorResponse struct {
Error errorBody `json:"error"`
}
type errorBody struct {
Code string `json:"code"`
Message string `json:"message"`
}