-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcapability.go
More file actions
64 lines (53 loc) · 2.46 KB
/
capability.go
File metadata and controls
64 lines (53 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package spec
import "context"
type Modality string
const (
ModalityTextIn Modality = "textIn"
ModalityTextOut Modality = "textOut"
ModalityImageIn Modality = "imageIn"
ModalityImageOut Modality = "imageOut"
ModalityFileIn Modality = "fileIn"
ModalityFileOut Modality = "fileOut"
ModalityAudioIn Modality = "audioIn"
ModalityAudioOut Modality = "audioOut"
ModalityVideoIn Modality = "videoIn"
ModalityVideoOut Modality = "videoOut"
)
type ReasoningCapabilities struct {
SupportedReasoningTypes []ReasoningType `json:"supportedReasoningTypes"`
SupportedReasoningLevels []ReasoningLevel `json:"supportedReasoningLevels"`
SupportsSummaryStyle bool `json:"supportsSummaryStyle"`
SupportsEncryptedReasoningInput bool `json:"supportsEncryptedReasoningInput"`
TemperatureDisallowedWhenEnabled bool `json:"temperatureDisallowedWhenEnabled"`
}
type StopSequenceCapabilities struct {
IsSupported bool `json:"isSupported"`
DisallowedWithReasoning bool `json:"disallowedWithReasoning"`
MaxSequences int `json:"maxSequences"`
}
type OutputCapabilities struct {
SupportedOutputFormats []OutputFormatKind `json:"supportedOutputFormats"`
SupportsVerbosity bool `json:"supportsVerbosity"`
}
type ToolCapabilities struct {
SupportedToolTypes []ToolType `json:"supportedToolTypes"`
SupportedToolPolicyModes []ToolPolicyMode `json:"supportedToolPolicyModes"`
SupportsParallelToolCalls bool `json:"supportsParallelToolCalls"`
MaxForcedTools int `json:"maxForcedTools"`
}
type ModelCapabilities struct {
ModalitiesIn []Modality `json:"modalitiesIn"`
ModalitiesOut []Modality `json:"modalitiesOut"`
ReasoningCapabilities *ReasoningCapabilities `json:"reasoningCapabilities,omitempty"`
StopSequenceCapabilities *StopSequenceCapabilities `json:"stopSequenceCapabilities,omitempty"`
OutputCapabilities *OutputCapabilities `json:"outputCapabilities,omitempty"`
ToolCapabilities *ToolCapabilities `json:"toolCapabilities,omitempty"`
}
type ResolveModelCapabilitiesRequest struct {
ProviderSDKType ProviderSDKType `json:"providerSDKType"`
ModelName ModelName `json:"modelName"`
CompletionKey string `json:"completionKey"`
}
type ModelCapabilityResolver interface {
ResolveModelCapabilities(ctx context.Context, req ResolveModelCapabilitiesRequest) (*ModelCapabilities, error)
}