MCPcopy Create free account
hub / github.com/bricks-cloud/BricksLLM / RunStepsV2

Method RunStepsV2

internal/route/route.go:246–390  ·  view source on GitHub ↗
(req *Request, rec recorder, log *zap.Logger, kc *key.ResponseKey)

Source from the content-addressed store, hash-verified

244}
245
246func (r *Route) RunStepsV2(req *Request, rec recorder, log *zap.Logger, kc *key.ResponseKey) (*Response, error) {
247 if len(r.Steps) == 0 {
248 return nil, errors.New("steps are empty")
249 }
250
251 body, err := io.ReadAll(req.Forwarded.Body)
252 if err != nil {
253 return nil, err
254 }
255
256 events := []*event.Event{}
257 response := &Response{}
258
259 for _, step := range r.Steps {
260 dur := time.Second
261 if len(step.RetryInterval) != 0 {
262 parsed, err := time.ParseDuration(step.RetryInterval)
263 if err != nil {
264 return nil, err
265 }
266
267 dur = parsed
268 }
269
270 b := InitializeBackoff(r.RetryStrategy, dur)
271 withRetries := backoff.WithMaxRetries(b, uint64(step.Retries))
272
273 do := func() error {
274 start := time.Now()
275
276 evt := &event.Event{
277 Id: util.NewUuid(),
278 CreatedAt: time.Now().Unix(),
279 Tags: kc.Tags,
280 KeyId: kc.KeyId,
281 Provider: step.Provider,
282 Method: req.Forwarded.Method,
283 Path: req.Forwarded.URL.Path,
284 Model: step.Model,
285 Action: req.Action,
286 Request: []byte(`{}`),
287 Response: []byte(`{}`),
288 CustomId: req.Forwarded.Header.Get("X-CUSTOM-EVENT-ID"),
289 UserId: req.UserId,
290 PolicyId: req.PolicyId,
291 RouteId: r.Id,
292 CorrelationId: req.CorrelationId,
293 }
294
295 defer func() {
296 evt.LatencyInMs = int(time.Since(start).Milliseconds())
297 }()
298
299 events = append(events, evt)
300
301 if kc.ShouldLogRequest {
302 evt.Request = body
303 }

Callers 1

getRouteHandlerFunction · 0.80

Calls 9

ShouldRunEmbeddingsMethod · 0.95
NewUuidFunction · 0.92
InitializeBackoffFunction · 0.85
DecorateRequestMethod · 0.80
createHttpRequestMethod · 0.80
DebugMethod · 0.80
GetMethod · 0.65
ErrorMethod · 0.65
RecordEventMethod · 0.65

Tested by

no test coverage detected