@@ -3,8 +3,10 @@ package backend
33import (
44 "context"
55 "fmt"
6+ "time"
67
78 "github.com/mudler/LocalAI/core/config"
9+ "github.com/mudler/LocalAI/core/trace"
810 "github.com/mudler/LocalAI/pkg/grpc/proto"
911 "github.com/mudler/LocalAI/pkg/model"
1012)
@@ -18,16 +20,43 @@ func Detection(
1820 opts := ModelOptions (modelConfig , appConfig )
1921 detectionModel , err := loader .Load (opts ... )
2022 if err != nil {
23+ recordModelLoadFailure (appConfig , modelConfig .Name , modelConfig .Backend , err , nil )
2124 return nil , err
2225 }
2326
2427 if detectionModel == nil {
2528 return nil , fmt .Errorf ("could not load detection model" )
2629 }
2730
31+ var startTime time.Time
32+ if appConfig .EnableTracing {
33+ trace .InitBackendTracingIfEnabled (appConfig .TracingMaxItems )
34+ startTime = time .Now ()
35+ }
36+
2837 res , err := detectionModel .Detect (context .Background (), & proto.DetectOptions {
2938 Src : sourceFile ,
3039 })
3140
41+ if appConfig .EnableTracing {
42+ errStr := ""
43+ if err != nil {
44+ errStr = err .Error ()
45+ }
46+
47+ trace .RecordBackendTrace (trace.BackendTrace {
48+ Timestamp : startTime ,
49+ Duration : time .Since (startTime ),
50+ Type : trace .BackendTraceDetection ,
51+ ModelName : modelConfig .Name ,
52+ Backend : modelConfig .Backend ,
53+ Summary : trace .TruncateString (sourceFile , 200 ),
54+ Error : errStr ,
55+ Data : map [string ]any {
56+ "source_file" : sourceFile ,
57+ },
58+ })
59+ }
60+
3261 return res , err
3362}
0 commit comments