Changeset 0.22.1 (#95)

This commit is contained in:
2026-03-02 09:58:38 +00:00
parent 06c4e2a5a1
commit cae6fd9f93
16 changed files with 1030 additions and 40 deletions

View File

@@ -110,13 +110,14 @@ type FunctionDef struct {
// CompletionRequest is the normalized request sent to any provider.
type CompletionRequest struct {
Model string `json:"model"`
Messages []Message `json:"messages"`
MaxTokens int `json:"max_tokens,omitempty"`
Temperature *float64 `json:"temperature,omitempty"`
TopP *float64 `json:"top_p,omitempty"`
Stream bool `json:"stream,omitempty"`
Tools []ToolDef `json:"tools,omitempty"` // available tools for function calling
Model string `json:"model"`
Messages []Message `json:"messages"`
MaxTokens int `json:"max_tokens,omitempty"`
Temperature *float64 `json:"temperature,omitempty"`
TopP *float64 `json:"top_p,omitempty"`
Stream bool `json:"stream,omitempty"`
Tools []ToolDef `json:"tools,omitempty"` // available tools for function calling
ExtraBody map[string]interface{} `json:"-"` // provider-specific wire fields (v0.22.1)
}
// CompletionResponse is the normalized non-streaming response.
@@ -170,3 +171,17 @@ type Model struct {
Capabilities models.ModelCapabilities `json:"capabilities"`
Pricing *models.ModelPricing `json:"pricing,omitempty"`
}
// mergeExtraBody merges arbitrary key-value pairs into a marshalled JSON object.
// Used by provider doRequest methods to inject hook-supplied fields (e.g.
// venice_parameters, thinking config) into the wire-format request body.
func mergeExtraBody(body []byte, extra map[string]interface{}) ([]byte, error) {
var base map[string]interface{}
if err := json.Unmarshal(body, &base); err != nil {
return nil, err
}
for k, v := range extra {
base[k] = v
}
return json.Marshal(base)
}