summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--convertToGenai.go18
1 files changed, 8 insertions, 10 deletions
diff --git a/convertToGenai.go b/convertToGenai.go
index a9dd1b4..c65d29b 100644
--- a/convertToGenai.go
+++ b/convertToGenai.go
@@ -8,19 +8,17 @@ import (
// convertToGenai transforms the parsed JSON request into the genai.Content format.
func convertToGenai(req *chatpb.GeminiRequest) ([]*genai.Content, error) {
var contents []*genai.Content
- for _, c := range req.Contents {
- genaiParts := []*genai.Part{} // Create a slice of the interface type
- for _, p := range c.Parts {
- if p.Text != "" {
- // genai.Text returns a Part interface, which is what we need
- var tmp *genai.Part
- tmp = new(genai.Part)
- tmp.Text = p.Text
- genaiParts = append(genaiParts, tmp)
+ for _, c := range req.GetContents() {
+ var genaiParts []*genai.Part
+ for _, p := range c.GetParts() {
+ switch v := p.GetPartType().(type) {
+ case *chatpb.Part_Text:
+ part := &genai.Part{Text: v.Text}
+ genaiParts = append(genaiParts, part)
}
}
contents = append(contents, &genai.Content{
- Role: c.Role,
+ Role: c.GetRole(),
Parts: genaiParts,
})
}