Ledger定价:模型只给建议,算账靠代码
一个记账工具,模型不碰真正的算钱环节。Ledger 这个项目把边界划得很清楚:模型可以帮你把"昨天买了两箱纸花了三百"翻译成结构化草稿,但价格怎么算、数字对不对、要不要存,全交给普通应用代码和用户自己。
![]()
Ledger 面向的是个体经营者和小微企业主,功能不复杂:记录收入和支出、查看经营汇总、给产品或服务估价。作者说得很直白,它想解决的是"比整套会计软件更简单的工作流",而不是去替代会计系统。
价格计算器是它比较特别的一块。算出来的估价和真实财务流水分开存放,用户可以计算、复核,再存成一条定价记录。存下来的价格能搜索、筛选、查看、编辑、删除,也能重新拿来当计算器的输入。但复用有个细节:表单会被预填,旧结果不会跟着回来,必须重新算一遍才能保存新价格。
技术栈没什么花活
前端是 React、TypeScript、Vite 加 Tailwind CSS,后端是 Express 和 TypeScript 写的 API,通过 Mongoose 落到 MongoDB Atlas。两条 AI 流程共用同一个 Groq 客户端和同一个配置好的模型。
服务端用的是 OpenAI SDK 配 Groq 的 OpenAI 兼容端点,默认模型 ID 是 openai/gpt-oss-120b。这里有个容易误读的点:所谓"OpenAI 兼容"说的是 API 协议,推理请求实际发往 Groq。这是托管推理,不是本地推理,用户提交的文本会被发送到 Groq。
记账录入这条线上,Ledger 让模型输出 JSON 格式的草稿,然后在服务端校验响应,还要检查金额和日期在用户原始文本里有没有依据。草稿不会自动保存,得用户自己复核确认。定价这条线上,模型只给围绕确定性计算的定性建议,应用负责校验建议,财务算术仍然由普通应用代码完成。
标准售价公式是:(单位成本 + 每单位附加成本)×(1 + 加价百分比 / 100)。存下来的价格有独立的 Mongoose 模型和按业务划分的 API,不会被当成交易记录混进去。
一个必须先说清楚的限制
Ledger 目前还没有用户认证,也没有建立业务归属关系。业务 ID 只能限定一次请求的范围,证明不了调用者拥有这个业务。作者的原话是,在补上授权之前,这个原型不应该作为私有的多用户财务服务对外暴露。
关于为什么用开放权重模型,作者的解释是:这给了 Ledger 一个专有模型端点之外的选择,而 OpenAI 兼容 API 意味着服务端可以保持原有的客户端形态,同时切换推理提供方。但他也强调,这种灵活性和"本地跑模型""数据留在用户设备上"不是一回事。这一版会把文本发给 Groq,而且他没有测过推理成本、没测过和其他模型相比的抽取质量,也没测过客户的付费意愿。
模型解释和财务决策之间的边界,作者是刻意保留的:模型可以帮忙理解语言、给出定价背景建议,但价格由应用代码计算,模型输出由应用校验,有后果的保存动作留在用户手里。
项目还对应了三个合作方类别:Ledger 作为单个 Render Web 服务运行,同时提供 API 和构建好的 React 应用,并配置了健康检查;业务数据和定价记录通过 Mongoose 持久化,部署使用 Atlas 连接串,线上健康检查报告数据库已连接;GitHub Copilot 参与了实现、调试和测试,内嵌的 agent 会话记录了其中一部分工作。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.