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

Method resolveDirectModelRouteForConfig

coderd/x/chatd/model_routing_direct.go:41–66  ·  view source on GitHub ↗
(
	ctx context.Context,
	ownerID uuid.UUID,
	modelConfig database.ChatModelConfig,
	fallbackKeys chatprovider.ProviderAPIKeys,
)

Source from the content-addressed store, hash-verified

39}
40
41func (p *Server) resolveDirectModelRouteForConfig(
42 ctx context.Context,
43 ownerID uuid.UUID,
44 modelConfig database.ChatModelConfig,
45 fallbackKeys chatprovider.ProviderAPIKeys,
46) (resolvedModelRoute, error) {
47 providerHint, provider, err := p.directProviderHintAndProviderForConfig(ctx, modelConfig)
48 if err != nil {
49 return resolvedModelRoute{}, err
50 }
51 if provider == nil {
52 if !fallbackKeys.Empty() && userCanUseProviderKeys(fallbackKeys, providerHint) {
53 return newDirectModelRoute(providerHint, fallbackKeys), nil
54 }
55 keys, err := p.resolveUserProviderAPIKeys(ctx, ownerID, uuid.Nil)
56 if err != nil {
57 return resolvedModelRoute{}, xerrors.Errorf("resolve provider API keys: %w", err)
58 }
59 return newDirectModelRoute(providerHint, keys), nil
60 }
61 providerKeys, err := p.resolveUserProviderAPIKeysForProvider(ctx, ownerID, *provider)
62 if err != nil {
63 return resolvedModelRoute{}, xerrors.Errorf("resolve provider API keys: %w", err)
64 }
65 return newDirectModelRoute(providerHint, providerKeys), nil
66}
67
68func (p *Server) resolveDirectModelRouteForProviderType(
69 ctx context.Context,

Callers 1

Calls 7

userCanUseProviderKeysFunction · 0.85
newDirectModelRouteFunction · 0.85
EmptyMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected