【架构优化】从 validateInsightExecution 中拆出单条用量 Token/成本校验 validateInsightUsageAmounts
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 74/100
Rechercherichtung
Die Arbeit ist in internal/httpapi/insights.go, innerhalb von validateInsightExecution, wo die Schleife pro Usage Provider-/Modell-Prüfungen, Deduplizierung und Token-/Kostenprüfungen vermischt. Beginne mit dem Lesen dieser Schleife und verschiebe dann die Token- und Kostenprüfungen in eine paketweite Funktion validateInsightUsageAmounts(u domain.InsightUsage) string, wobei Meldungen und Prüfreihenfolge unverändert bleiben. Fertig, wenn TestInsightsValidationAndHTTP weiterhin besteht, ein neuer tabellengetriebener Test gültige Grenzwerte und jeden Fehlerzweig abdeckt und gofmt, go vet ./internal/httpapi/ und go test ./internal/httpapi/ sauber sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
现状问题
internal/httpapi/insights.go 的 validateInsightExecution(圈复杂度 43)同时承担两层校验:执行汇总本身(类型、ID、状态、时间、时长、URL)和 usage 数组里每一项模型用量。单项用量的 Token 范围、缓存/推理包含关系、成本状态与金额校验约 20 行嵌在 for 循环里,和 provider/model 必填、去重混在一起,阅读和单独测试都不方便。
重构方案
- 把循环体中 Token 与成本的校验抽成包级函数
validateInsightUsageAmounts(u domain.InsightUsage) string,错误文案与判断顺序保持原样。 validateInsightExecution的循环只保留:provider/model 必填 → 同一 provider/model 去重 → 调用validateInsightUsageAmounts,三者顺序与原实现完全一致,因此同时命中多条规则时返回的错误也不变。
影响范围
仅 internal/httpapi/insights.go 一个函数内部拆分 + 新增测试文件;/api/insights/v1/ingest 接口行为、错误文案、返回码均不变,无对外接口变化。
验证方式
- 原有
TestInsightsValidationAndHTTP全部通过; - 新增
validateInsightUsageAmounts表驱动测试,覆盖合法输入(含边界值)与每一条错误分支; gofmt、go vet ./internal/httpapi/、go test ./internal/httpapi/。
- Vorherrschende Sprache
- Go
- Sterne
- 141
- Forks
- 28
- Ø Merge
- 1 T. 15 Std.
- Gemergte PRs (30 T.)
- 113
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Tencent/LoopForge
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: 官方镜像未安装 wecom-cli,企业微信通知报「通知服务未安装 wecom-cli」Evtl. vergeben @newexploreor hat das vor 1 Tag übernommen. Offenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Tencent/LoopForge#156 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
【架构优化】合并 gitwork/workbranch.go 中 push/pull 重复的默认提交身份注入为 withFallbackIdentityEvtl. vergeben @fx-kurumi hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 40/100
Maintainer antworten meist innerhalb von 1 Tag
-
【架构优化】从 runtime.installNPMCLI 中拆出 npm 参数拼装 npmCLIInstallArgs 与安装结果启用 activateNPMStageEvtl. vergeben @fx-kurumi hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 30/100
Maintainer antworten meist innerhalb von 1 Tag
-
【架构优化】从 githubCombinedChecks 中拆出 commit status/check runs 读取与整体状态汇总 githubChecksOverallEvtl. vergeben @fx-kurumi hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 18/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Tencent/LoopForge
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
bazel-contrib/rules_go#4784 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Уязвимые компоненты в GoOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
POSIdev-community/aictl#40 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
nebari-dev/nebari-infrastructure-core#774 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
oracle/terraform-provider-oci#2662 ·
-
[BUG]: A pre-hashed ACL password in uppercase hex fails ACL LOAD and crash-loops restarted podsOffenbug needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
valkey-io/valkey-operator#644 ·
Maintainer antworten meist innerhalb von 3 Tagen