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

Method getUserChatPersonalModelOverrides

coderd/exp_chats.go:4903–4964  ·  view source on GitHub ↗

EXPERIMENTAL: this endpoint is experimental and is subject to change. nolint:revive // get-return: revive assumes get* must be a getter, but this is an HTTP handler.

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

4901//
4902//nolint:revive // get-return: revive assumes get* must be a getter, but this is an HTTP handler.
4903func (api *API) getUserChatPersonalModelOverrides(rw http.ResponseWriter, r *http.Request) {
4904 ctx := r.Context()
4905 apiKey := httpmw.APIKey(r)
4906
4907 enabled, err := api.Database.GetChatPersonalModelOverridesEnabled(ctx)
4908 if err != nil {
4909 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
4910 Message: "Internal error fetching personal model override setting.",
4911 Detail: err.Error(),
4912 })
4913 return
4914 }
4915
4916 rows, err := api.Database.ListUserChatPersonalModelOverrides(ctx, apiKey.UserID)
4917 if err != nil {
4918 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
4919 Message: "Internal error fetching user personal model overrides.",
4920 Detail: err.Error(),
4921 })
4922 return
4923 }
4924
4925 values := make(map[codersdk.ChatPersonalModelOverrideContext]string, len(rows))
4926 for _, row := range rows {
4927 rawContext, ok := strings.CutPrefix(row.Key, chatd.ChatPersonalModelOverrideKeyPrefix)
4928 if !ok {
4929 continue
4930 }
4931 overrideContext, ok := parseChatPersonalModelOverrideContext(rawContext)
4932 if !ok {
4933 continue
4934 }
4935 values[overrideContext] = row.Value
4936 }
4937
4938 deploymentDefaults, err := api.chatPersonalModelOverrideDeploymentDefaults(ctx)
4939 if err != nil {
4940 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
4941 Message: "Internal error fetching deployment model defaults.",
4942 Detail: err.Error(),
4943 })
4944 return
4945 }
4946
4947 response := codersdk.UserChatPersonalModelOverridesResponse{
4948 Enabled: enabled,
4949 DeploymentDefaults: deploymentDefaults,
4950 }
4951 for _, overrideContext := range chatPersonalModelOverrideContexts {
4952 raw, isSet := values[overrideContext]
4953 override := chatPersonalModelOverrideResponse(overrideContext, raw, isSet)
4954 switch overrideContext {
4955 case codersdk.ChatPersonalModelOverrideContextRoot:
4956 response.Root = override
4957 case codersdk.ChatPersonalModelOverrideContextGeneral:
4958 response.General = override
4959 case codersdk.ChatPersonalModelOverrideContextExplore:
4960 response.Explore = override

Callers 1

Calls 9

APIKeyFunction · 0.92
WriteFunction · 0.92
ContextMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected