(req dto.AgentAccountModelUpdateReq)
| 1166 | } |
| 1167 | |
| 1168 | func (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 | |
| 1219 | func (a AgentService) DeleteAccountModel(req dto.AgentAccountModelDeleteReq) error { |
| 1220 | account, err := agentAccountRepo.GetFirst(repo.WithByID(req.AccountID)) |
nothing calls this directly
no test coverage detected