summaryrefslogtreecommitdiff
path: root/convertToGenai.go
diff options
context:
space:
mode:
Diffstat (limited to 'convertToGenai.go')
-rw-r--r--convertToGenai.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/convertToGenai.go b/convertToGenai.go
new file mode 100644
index 0000000..a9dd1b4
--- /dev/null
+++ b/convertToGenai.go
@@ -0,0 +1,28 @@
+package main
+
+import (
+ "go.wit.com/lib/protobuf/chatpb"
+ "google.golang.org/genai"
+)
+
+// 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)
+ }
+ }
+ contents = append(contents, &genai.Content{
+ Role: c.Role,
+ Parts: genaiParts,
+ })
+ }
+ return contents, nil
+}