Add support for integers and tool configuration in schema handling
This update introduces support for `jsonschema.Integer` types and updates the logic to handle nested items in schemas. Added a new default error log for unknown types using `slog.Error`. Also, integrated tool configuration with a `FunctionCallingConfig` when `dontRequireTool` is false.
This commit is contained in:
parent
82feb7d8b4
commit
ff5e4ca7b0
18
google.go
18
google.go
@ -4,10 +4,10 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
"github.com/sashabaranov/go-openai/jsonschema"
|
|
||||||
|
|
||||||
"github.com/google/generative-ai-go/genai"
|
"github.com/google/generative-ai-go/genai"
|
||||||
|
"github.com/sashabaranov/go-openai/jsonschema"
|
||||||
"google.golang.org/api/option"
|
"google.golang.org/api/option"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,6 +39,9 @@ func (g google) requestToChatHistory(in Request, model *genai.GenerativeModel) (
|
|||||||
case jsonschema.String:
|
case jsonschema.String:
|
||||||
res.Type = genai.TypeString
|
res.Type = genai.TypeString
|
||||||
|
|
||||||
|
case jsonschema.Integer:
|
||||||
|
res.Type = genai.TypeInteger
|
||||||
|
|
||||||
case jsonschema.Number:
|
case jsonschema.Number:
|
||||||
res.Type = genai.TypeNumber
|
res.Type = genai.TypeNumber
|
||||||
|
|
||||||
@ -47,6 +50,11 @@ func (g google) requestToChatHistory(in Request, model *genai.GenerativeModel) (
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
res.Type = genai.TypeUnspecified
|
res.Type = genai.TypeUnspecified
|
||||||
|
slog.Error("unknown type in go_llm/google.go!requestToChatHistory", "type", in.Type)
|
||||||
|
}
|
||||||
|
|
||||||
|
if in.Items != nil {
|
||||||
|
res.Items = openAiSchemaToGenAISchema(*in.Items)
|
||||||
}
|
}
|
||||||
|
|
||||||
res.Description = in.Description
|
res.Description = in.Description
|
||||||
@ -77,6 +85,12 @@ func (g google) requestToChatHistory(in Request, model *genai.GenerativeModel) (
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !in.Toolbox.dontRequireTool {
|
||||||
|
res.ToolConfig = &genai.ToolConfig{FunctionCallingConfig: &genai.FunctionCallingConfig{
|
||||||
|
Mode: genai.FunctionCallingAny,
|
||||||
|
}}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cs := res.StartChat()
|
cs := res.StartChat()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user