Skip to content

feat: FreeLLM 代理层 — compression + freellm 包 + README 诚实化#2

Open
anbeime wants to merge 1 commit into
mainfrom
trae/agent-DinWVO
Open

feat: FreeLLM 代理层 — compression + freellm 包 + README 诚实化#2
anbeime wants to merge 1 commit into
mainfrom
trae/agent-DinWVO

Conversation

@anbeime

@anbeime anbeime commented Jul 16, 2026

Copy link
Copy Markdown
Owner

交付内容

把 OmniRoute 的三个独有卖点(免费源池 / token 压缩 / 多级 failover)反哺进 TOPGO Gateway 的 FreeLLM 代理层。基于真实 backend/internal/ 代码落地,不是空气架构。

新增

  • backend/internal/service/compression/ — Token 压缩包
    • 可插拔 Engine 接口,调用点只传 body []byte 进出,零耦合 ent/wire
    • 格式感知:OpenAI Chat Completions / Responses / Anthropic Messages 三种形状
    • 代码块自动保护(``` 包裹段原样保留)
    • 两个引擎:LiteEngine(空白归一,CJK 安全)+ RuleEngine(~80 条 Caveman 类规则,standard/aggressive 两档)
    • 15 个单测全过
  • backend/internal/service/freellm/ — 免费源池 seed
    • 10 个真实免费/免费层 provider(Pollinations keyless 在首位,Groq/Gemini/Cerebras/SambaNova/DeepSeek/Mistral/Together/OpenRouter/Kiro)
    • 复用现有 channel_monitor 探活,不新建表
  • TOPGO_FREELLM_PROXY.md — 设计文档,三卖点逐条映射到真实代码 + 集成点 + 闭环(串四色卡片 MCP)

改动

  • README.md 诚实化:
    • 架构图改"数据/控制平面分离",Orchestrator 标 🚧 Roadmap(之前宣称已实现但无代码)
    • 删死链 orchestrator/docs/configuration.md
    • 新增"与 OmniRoute 的对位与借鉴"表 + FreeLLM 代理层功能段
    • 项目结构树更新(去掉不存在的 orchestrator/src/,加新包)

验证

  • go vet ./internal/service/compression/ ./internal/service/freellm/ 干净
  • go test ./internal/service/compression/ — 15 用例 PASS
  • go test ./internal/service/freellm/ — PASS
  • go build ./... — exit 0,全量编译无回归

未做(Roadmap)

  • Model 级 failover:scheduler 热路径手术风险高,需独立 PR + 完整 e2e 测试
  • LLMLingua-2 ONNX 引擎:Phase 2 插件位,规则引擎先保底
  • 压缩接通流量ForwardAsChatCompletions 入口加一行调用 + wire 注入 + usage_log 遥测,建议单独 PR

备注

OmniRoute 的"8ms Provider→Connection→Model"三层 failover 表述未能从原文核实(mp.weixin.qq.com 抓取受限),README 对位表按 OmniRoute 官方"4-tier auto-fallback"口径写。

Co-authored-by: traeagent <traeagent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant