MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / UpdateAccountModel

Method UpdateAccountModel

agent/app/service/agents.go:1168–1217  ·  view source on GitHub ↗
(req dto.AgentAccountModelUpdateReq)

Source from the content-addressed store, hash-verified

1166}
1167
1168func (a AgentService) UpdateAccountModel(req dto.AgentAccountModelUpdateReq) error {
1169 account, err := agentAccountRepo.GetFirst(repo.WithByID(req.AccountID))
1170 if err != nil {
1171 return err
1172 }
1173 record, err := agentAccountModelRepo.GetFirst(repo.WithByID(req.Model.RecordID), repo.WithByAccountID(req.AccountID))
1174 if err != nil {
1175 return err
1176 }
1177 models, err := loadAgentAccountModels(account)
1178 if err != nil {
1179 return err
1180 }
1181 nextModel := cloneAgentAccountModel(req.Model)
1182 for _, item := range models {
1183 if item.RecordID == req.Model.RecordID {
1184 continue
1185 }
1186 if sameProviderModelID(account.Provider, item.ID, nextModel.ID) {
1187 return buserr.New("ErrRecordExist")
1188 }
1189 }
1190 nextModels := make([]dto.AgentAccountModel, 0, len(models))
1191 for _, item := range models {
1192 if item.RecordID == req.Model.RecordID {
1193 nextModels = append(nextModels, nextModel)
1194 continue
1195 }
1196 nextModels = append(nextModels, item)
1197 }
1198 if err := ensureAccountModelsNotBound(account, nextModels); err != nil {
1199 return err
1200 }
1201 inputPayload, err := json.Marshal(nextModel.Input)
1202 if err != nil {
1203 return err
1204 }
1205 record.Model = nextModel.ID
1206 record.Name = nextModel.Name
1207 record.ContextWindow = nextModel.ContextWindow
1208 record.MaxTokens = nextModel.MaxTokens
1209 record.Reasoning = nextModel.Reasoning
1210 record.Input = string(inputPayload)
1211 if err := agentAccountModelRepo.Save(record); err != nil {
1212 return err
1213 }
1214 terminalai.InvalidateTerminalRuntimeCache()
1215 terminalai.InvalidateFileAIRuntimeCache()
1216 return a.syncAgentsByAccount(account)
1217}
1218
1219func (a AgentService) DeleteAccountModel(req dto.AgentAccountModelDeleteReq) error {
1220 account, err := agentAccountRepo.GetFirst(repo.WithByID(req.AccountID))

Callers

nothing calls this directly

Calls 8

syncAgentsByAccountMethod · 0.95
loadAgentAccountModelsFunction · 0.85
cloneAgentAccountModelFunction · 0.85
sameProviderModelIDFunction · 0.85
GetFirstMethod · 0.65
WithByIDMethod · 0.65
SaveMethod · 0.65

Tested by

no test coverage detected