MCPcopy Index your code
hub / github.com/coder/coder / newDebugAwareModel

Method newDebugAwareModel

coderd/x/chatd/chatd_debug.go:109–144  ·  view source on GitHub ↗
(
	ctx context.Context,
	req modelClientRequest,
	route resolvedModelRoute,
	opts modelBuildOptions,
)

Source from the content-addressed store, hash-verified

107}
108
109func (p *Server) newDebugAwareModel(
110 ctx context.Context,
111 req modelClientRequest,
112 route resolvedModelRoute,
113 opts modelBuildOptions,
114) (fantasy.LanguageModel, bool, error) {
115 providerHint, err := route.providerHint()
116 if err != nil {
117 return nil, false, err
118 }
119 provider, resolvedModel, err := chatprovider.ResolveModelWithProviderHint(req.ModelName, providerHint)
120 if err != nil {
121 return nil, false, err
122 }
123 route = route.withProviderHint(provider)
124 req.ModelName = resolvedModel
125
126 debugSvc := p.debugService()
127 debugEnabled := debugSvc != nil && debugSvc.IsEnabled(ctx, req.Chat.ID, req.Chat.OwnerID)
128 opts.RecordHTTP = debugEnabled
129
130 model, err := p.newModel(ctx, req, route, opts)
131 if err != nil {
132 return nil, debugEnabled, err
133 }
134 if !debugEnabled {
135 return model, false, nil
136 }
137
138 return chatdebug.WrapModel(model, debugSvc, chatdebug.RecorderOptions{
139 ChatID: req.Chat.ID,
140 OwnerID: req.Chat.OwnerID,
141 Provider: provider,
142 Model: resolvedModel,
143 }), true, nil
144}

Callers 2

resolveChatModelMethod · 0.95

Calls 7

debugServiceMethod · 0.95
newModelMethod · 0.95
WrapModelFunction · 0.92
providerHintMethod · 0.80
withProviderHintMethod · 0.80
IsEnabledMethod · 0.80

Tested by

no test coverage detected