Update main.go
Browse files
main.go
CHANGED
|
@@ -95,24 +95,20 @@ func resolveModel(requested string) string {
|
|
| 95 |
}
|
| 96 |
|
| 97 |
func injectSystemPrompt(messages []Message, modelID string) []Message {
|
| 98 |
-
prompt
|
| 99 |
-
|
| 100 |
-
|
|
|
|
|
|
|
|
|
|
| 101 |
}
|
| 102 |
|
| 103 |
-
|
| 104 |
-
if
|
| 105 |
-
|
| 106 |
-
switch v := messages[0].Content.(type) {
|
| 107 |
-
case string:
|
| 108 |
-
existing = v
|
| 109 |
-
}
|
| 110 |
-
messages[0].Content = prompt + "\n\n" + existing
|
| 111 |
-
return messages
|
| 112 |
}
|
| 113 |
|
| 114 |
-
|
| 115 |
-
return append([]Message{systemMsg}, messages...)
|
| 116 |
}
|
| 117 |
|
| 118 |
func authenticate(r *http.Request) bool {
|
|
@@ -304,4 +300,4 @@ func main() {
|
|
| 304 |
if err := http.ListenAndServe(":"+port, mux); err != nil {
|
| 305 |
log.Fatal(err)
|
| 306 |
}
|
| 307 |
-
}
|
|
|
|
| 95 |
}
|
| 96 |
|
| 97 |
func injectSystemPrompt(messages []Message, modelID string) []Message {
|
| 98 |
+
// Strip any system messages from client - gateway prompt always wins
|
| 99 |
+
filtered := make([]Message, 0, len(messages))
|
| 100 |
+
for _, m := range messages {
|
| 101 |
+
if m.Role != "system" {
|
| 102 |
+
filtered = append(filtered, m)
|
| 103 |
+
}
|
| 104 |
}
|
| 105 |
|
| 106 |
+
prompt := loadSystemPrompt(modelID)
|
| 107 |
+
if prompt == "" {
|
| 108 |
+
return filtered
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
}
|
| 110 |
|
| 111 |
+
return append([]Message{{Role: "system", Content: prompt}}, filtered...)
|
|
|
|
| 112 |
}
|
| 113 |
|
| 114 |
func authenticate(r *http.Request) bool {
|
|
|
|
| 300 |
if err := http.ListenAndServe(":"+port, mux); err != nil {
|
| 301 |
log.Fatal(err)
|
| 302 |
}
|
| 303 |
+
}
|