• blahblahblah

    首先感谢 New API 项目及其开源社区,为我提供了非常重要的基础和启发。

    之前在这个帖子里提到过开源计划:

    各位佬友好,CodeGo 正式来 L 站和大家见面了。
    经过一段时间的测试和优化,我们决定正式入驻 L 站。新站肯定还有不足,希望大家体验后多提意见,一起交流。
    这次准备了两项开站福利:

    套餐首次购买 8 折,符合条件时结算页面自动显示折后价。
    评论留下用户名或ID,免费送 1 个盲盒。

    站点地址:https://shu26.cfd

    已接入 LinuxDo 授权登录。

    有问题…

    现在 codego-api 已完成架构重构和公开版本整理,正式开源:

    - GitHub:GitHub - sh2001sh/CodeGo-Api · GitHub

    - 官网:https://shu26.cfd/

    - Docker Hub:s2644752646/codego-api - Docker Image

    codego-api 在new-api的基础上对整体运行架构和代码边界进行了一轮重新整理。

    整体架构```

    +----------------------+

    | control-api |

    | 控制面:用户、认证、配置、审计 |

    +-----------+----------+

    |

    +----------------v----------------+

    | Shared Infrastructure |

    | PostgreSQL / Redis / Temporal |

    +------+------+-------------+-----+

    | | |

    | | |

    +---------v--+ | +--------v---------+

    | gateway-api| | | workflow-worker |

    | 数据面 | | | Temporal 异步任务 |

    +------+-----+ | +------------------+

    | |

    +-------v-------+ |

    | Router / | |

    | Provider | |

    | Adapter | |

    +-------+-------+ |

    | |

    +-------v-------+ |

    | Provider APIs | |

    | OpenAI... | |

    +-------+-------+ |

    | |

    usage / settlement

    |

    +--------v---------+

    | ledger-worker |

    | 额度账本与结算一致性 |

    +-------------------+

    
    1. 控制面与数据面分离
    
    - `control-api`:用户、认证、渠道、模型、权限、配置和审计
    
    - `gateway-api`:API 接入、鉴权、路由、Provider 适配和流式响应
    
    管理请求和实际 API 请求不再完全耦合,控制台与 Gateway 可以独立扩展和部署。
    
    2. Provider 适配与路由策略分离
    
    Gateway 内部将以下职责拆开:```
    
    请求接入
    
       ↓
    
    路由选择 / 渠道选择
    
       ↓
    
    Provider Adapter
    
       ↓
    
    协议转换 / 流式响应
    
       ↓
    
    Provider API
    ```新增 Provider 时主要扩展对应的 Adapter,不需要修改整个请求链路;路由池、Fallback、限流和渠道健康状态也可以独立演进。
    
    3. 额度处理改为 Ledger + Worker
    
    额度处理不再简单地在请求结束时直接修改余额,而是采用:```
    
    请求预扣
    
       ↓
    
    Provider 执行
    
       ↓
    
    记录用量证据
    
       ↓
    
    生成结算事件
    
       ↓
    
    ledger-worker 处理账本
    ```通过账本、幂等结算和用量证据,降低并发请求下重复扣费、漏扣和状态不一致的风险。
    
    4. 长任务独立到 Workflow Worker
    
    长耗时任务、轮询任务和后台流程由 Temporal 管理,并交给独立的 `workflow-worker` 执行。
    
    这样 API 进程不需要长时间等待后台任务,任务重试、超时、恢复和状态收敛更加清晰。
    
    5. 审计和使用日志独立化
    
    使用日志、用量统计、性能指标和审计读模型由独立的 `audit` 模块负责。
    
    请求执行、账务结算和日志查询之间降低耦合,后续可以分别优化写入、投影和查询性能。
    
    6. 后端按领域重新拆分```
    
    identity    用户、Token、认证和会话
    
    adminops    控制面管理操作
    
    gateway     API 接入、路由和 Provider 执行
    
    audit       使用日志、统计和审计
    
    billing     额度账本和结算
    
    commerce    订阅、充值和兑换码
    
    workflow    Temporal 工作流和任务
    
    platform    数据库、缓存、安全和基础设施

    - 控制台和 API 请求可以独立扩展

    - Provider 扩展成本更低

    - 路由策略和协议适配互不干扰

    - API 请求、账务和异步任务之间故障隔离更清晰

    - 长任务不会阻塞 API 请求进程

    - 额度结算更容易保证一致性

    - 日志和审计查询可以独立优化

    - 更适合 Docker 和多 Worker 部署

    - 代码边界更清晰,后续维护和测试更方便

    我们这次重构肯定离不开new-api这些前辈大佬的基础,项目目前还在持续更新中,如果有什么需要和问题也欢迎大家的反馈。

    主楼
  • ufhy

    原来不是opencode go啊

    #1
  • chancat

    注册了到 后台看起来不错,

    社区,悬赏 这些功能感觉得是用户量大的可能能用得到? 是否有开关可以开启/关闭 这些功能呢?

    #2
  • exboy

    这个界面感觉做得很不错, 比我们公司的美工设计出的界面漂亮多了

    #3
  • blahblahblah

    这些在我们网站由于还没人使用,不知道有没有什么bug,属于beta内容,还没加入到开源仓库里面

    #4
  • 💪_🎯_🚀_☁️

    UI挺好看的,还有还有盲盒玩法和悬赏区,真不错

    #5
  • Chad_Cerulli

    先马后赞再用,希望越来越好用。感谢

    #6
  • 风不明

    I’d Q49MVY 来试试

    #7
  • 野菜团
    请求接入
    ↓
    路由选择 / 渠道选择
    ↓
    Provider Adapter
    ↓
    协议转换 / 流式响应
    ↓
    Provider API
    ```原来不是这样的架构吗?我咋记得是?
    #8
  • blahblahblah

    有些我是单独拆出来了作为一个服务的

    #9
  • fox_skio

    这就是佬友的实力吗 已经严肃star ^-^

    #10
  • misha

    (帖子已被作者删除)

    #11
  • 52067x

    **佬昨天蹬了 今天打算支持一下,顺便参加一下活动

    ID P5UW2E**•default

    #12

发表回复

登录后回复