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, }) }