@@ -103,15 +103,15 @@ type Plugin struct {
103
103
// Returns:
104
104
// - *schemas.BifrostRequest: The original request, unmodified
105
105
// - error: Any error that occurred during trace/generation creation
106
- func (plugin * Plugin ) PreHook (ctx * context.Context , req * schemas.BifrostRequest ) (* schemas.BifrostRequest , error ) {
106
+ func (plugin * Plugin ) PreHook (ctx * context.Context , req * schemas.BifrostRequest ) (* schemas.BifrostRequest , * schemas. BifrostResponse , error ) {
107
107
var traceID string
108
108
var sessionID string
109
109
110
110
// Check if context already has traceID and generationID
111
111
if ctx != nil {
112
112
if existingGenerationID , ok := (* ctx ).Value (GenerationIDKey ).(string ); ok && existingGenerationID != "" {
113
113
// If generationID exists, return early
114
- return req , nil
114
+ return req , nil , nil
115
115
}
116
116
117
117
if existingTraceID , ok := (* ctx ).Value (TraceIDKey ).(string ); ok && existingTraceID != "" {
@@ -137,32 +137,28 @@ func (plugin *Plugin) PreHook(ctx *context.Context, req *schemas.BifrostRequest)
137
137
"model" : req .Model ,
138
138
}
139
139
for _ , message := range * req .Input .ChatCompletionInput {
140
- if message .Content != nil {
141
- messages = append (messages , logging.CompletionRequest {
142
- Role : string (message .Role ),
143
- Content : message .Content ,
144
- })
145
- } else if message .UserMessage != nil && message .UserMessage .ImageContent != nil {
146
- messages = append (messages , logging.CompletionRequest {
147
- Role : string (message .Role ),
148
- Content : message .UserMessage .ImageContent ,
149
- })
150
- } else if message .ToolCalls != nil {
151
- messages = append (messages , logging.CompletionRequest {
152
- Role : string (message .Role ),
153
- Content : message .ToolCalls ,
154
- })
155
- } else if message .ToolMessage != nil && message .ToolMessage .ToolCallID != nil {
156
- messages = append (messages , logging.CompletionRequest {
157
- Role : string (message .Role ),
158
- Content : message .ToolMessage ,
159
- })
160
- }
140
+ messages = append (messages , logging.CompletionRequest {
141
+ Role : string (message .Role ),
142
+ Content : message .Content ,
143
+ })
161
144
}
162
145
if len (* req .Input .ChatCompletionInput ) > 0 {
163
146
lastMsg := (* req .Input .ChatCompletionInput )[len (* req .Input .ChatCompletionInput )- 1 ]
164
- if lastMsg .Content != nil {
165
- latestMessage = * lastMsg .Content
147
+ if lastMsg .Content .ContentStr != nil {
148
+ latestMessage = * lastMsg .Content .ContentStr
149
+ } else if lastMsg .Content .ContentBlocks != nil {
150
+ // Find the last text content block
151
+ for i := len (* lastMsg .Content .ContentBlocks ) - 1 ; i >= 0 ; i -- {
152
+ block := (* lastMsg .Content .ContentBlocks )[i ]
153
+ if block .Type == "text" && block .Text != nil {
154
+ latestMessage = * block .Text
155
+ break
156
+ }
157
+ }
158
+ // If no text block found, use placeholder
159
+ if latestMessage == "" {
160
+ latestMessage = "-"
161
+ }
166
162
}
167
163
}
168
164
} else if req .Input .TextCompletionInput != nil {
@@ -172,7 +168,7 @@ func (plugin *Plugin) PreHook(ctx *context.Context, req *schemas.BifrostRequest)
172
168
"model" : req .Model ,
173
169
}
174
170
messages = append (messages , logging.CompletionRequest {
175
- Role : "user" ,
171
+ Role : string ( schemas . ModelChatMessageRoleUser ) ,
176
172
Content : req .Input .TextCompletionInput ,
177
173
})
178
174
latestMessage = * req .Input .TextCompletionInput
@@ -225,7 +221,7 @@ func (plugin *Plugin) PreHook(ctx *context.Context, req *schemas.BifrostRequest)
225
221
* ctx = context .WithValue (* ctx , GenerationIDKey , generationID )
226
222
}
227
223
228
- return req , nil
224
+ return req , nil , nil
229
225
}
230
226
231
227
// PostHook is called after a request has been processed by Bifrost.
@@ -265,3 +261,9 @@ func (plugin *Plugin) PostHook(ctxRef *context.Context, res *schemas.BifrostResp
265
261
266
262
return res , nil
267
263
}
264
+
265
+ func (plugin * Plugin ) Cleanup () error {
266
+ plugin .logger .Flush ()
267
+
268
+ return nil
269
+ }
0 commit comments