MCPcopy Create free account
hub / github.com/InferCore/InferCore / NewWithDependencies

Function NewWithDependencies

internal/server/server.go:105–140  ·  view source on GitHub ↗
(cfg *config.Config, sloEngine interfaces.SLOEngine, telemetryExporter interfaces.TelemetryExporter)

Source from the content-addressed store, hash-verified

103}
104
105func NewWithDependencies(cfg *config.Config, sloEngine interfaces.SLOEngine, telemetryExporter interfaces.TelemetryExporter) *Server {
106 adapters := make(map[string]interfaces.BackendAdapter, len(cfg.Backends))
107 for _, backend := range cfg.Backends {
108 adapter, ok := adaptersreg.NewBackend(backend)
109 if !ok {
110 log.Printf("event=adapter_init_skipped backend=%s type=%s reason=%q", backend.Name, backend.Type, "unsupported backend type")
111 continue
112 }
113 adapters[backend.Name] = adapter
114 }
115
116 costEngine := cost.NewSimpleEngine()
117
118 ledger, err := requests.NewFromConfig(cfg)
119 if err != nil {
120 log.Printf("event=ledger_init_failed err=%v", err)
121 ledger = nil
122 }
123
124 warnPerReplicaRateLimit(cfg)
125
126 srv := &Server{
127 cfg: cfg,
128 policy: policy.NewBasicEngine(cfg),
129 router: router.NewRuleRouter(cfg, costEngine),
130 reliability: reliability.NewManager(cfg, adapters),
131 sloEngine: sloEngine,
132 telemetry: telemetryExporter,
133 adapters: adapters,
134 ledger: ledger,
135 retrieval: retrieval.FromConfig(cfg),
136 rerank: retrieval.NewRerankFromConfig(cfg),
137 }
138 srv.initPrometheusMetrics()
139 return srv
140}
141
142func (s *Server) Routes() http.Handler {
143 mux := http.NewServeMux()

Callers 3

NewFunction · 0.85

Calls 9

initPrometheusMetricsMethod · 0.95
NewSimpleEngineFunction · 0.92
NewFromConfigFunction · 0.92
NewBasicEngineFunction · 0.92
NewRuleRouterFunction · 0.92
NewManagerFunction · 0.92
FromConfigFunction · 0.92
NewRerankFromConfigFunction · 0.92
warnPerReplicaRateLimitFunction · 0.85