返回首页

24小时热榜

17作者: rheamalhotra1大约 3 小时前原帖
大家好!我们是Kita的创始人Carmel和Rhea(<a href="https://www.usekita.com/">https://www.usekita.com/</a>)。我们利用VLMs(变换语言模型)为新兴市场的贷款机构自动化信用审核。 在许多新兴市场,如菲律宾和墨西哥,信用基础设施相对薄弱。开放金融仍处于起步阶段,信用局的可靠性也不高。因此,贷款机构在申请贷款时依赖借款人提交的文件来了解其还款能力。借款人可以以任何格式提交财务文件,例如银行对账单和工资单,包括PDF、实体文件的图片和截图。此外,这些市场的财务文件高度不标准化,贷款机构无法依赖一致的模板。 现有的OCR(光学字符识别)和文档人工智能工具在处理这些高度变异、杂乱的真实世界文件时常常失效。通用工具并未针对贷款工作流程(如验证、欺诈检测和风险提取)进行设计。因此,信用团队不得不依赖人工审核,导致承保过程变得更慢、更昂贵且更容易出错。 我们在大学之前就认识,并一直是最好的朋友。毕业后,Rhea访问了在菲律宾的Carmel,我们从金融科技运营者那里了解到,基于文件的承保是他们最大的痛点。我们开始一起构建,并测试了所有能找到的OCR和文档AI工具。它们在贷款机构实际收到的杂乱真实文件上都失败了,即使提取成功,它们也无法生成贷款机构所需的结构化财务数据或欺诈检查。 这个问题比我们想象的还要严重。在印度尼西亚、墨西哥、菲律宾、南非,甚至在美国,大多数贷款工作都可以归结为信用分析师查看文件。2025年,全球贷款总额达到13.3万亿美元,其中90%的交易涉及文件审核。这在发达市场中同样适用。 Kita利用基于VLM的代理解析文件、检测欺诈并从杂乱的财务文件中提取承保信号。如今,我们支持50多种文件类型,包括PDF、扫描件、照片和截图。我们的处理流程增强了低质量输入,提取结构化财务数据,并通过跨文档检查、与我们的历史数据库验证以及市场特定的欺诈检测来进行验证。 我们的架构基础VLM是模型无关的,同时,我们训练了针对每个市场的超本地化信用信号的语言模型,使用本地贷款机构的数据——每个新模型都提升了我们的基础层,每个新市场都增强了我们的整体技术栈。我们将文档级信号与还款结果关联,使我们的模型能够随着时间的推移不断改善欺诈检测和风险评估。 Kita Capture是我们为贷款机构推出的首款文档智能产品。我们还将推出Kita Credit Agent,它通过WhatsApp和电子邮件自动化借款人在贷款发放过程中的跟进,以收集缺失文件并完成贷款申请。 Kita Capture可以免费试用(需注册邮箱):<a href="https://portal.usekita.com/">https://portal.usekita.com/</a>。这里有一个快速演示:<a href="https://www.youtube.com/watch?v=4-t_UhPNAvQ" rel="nofollow">https://www.youtube.com/watch?v=4-t_UhPNAvQ</a>。 我们非常希望能收到社区的反馈,特别是如果您曾在文档AI、欺诈检测或金融科技基础设施方面工作过。感谢您的阅读!
17作者: jellyotsiro大约 18 小时前原帖
我们正在构建 Crust(<a href="https://crustjs.com" rel="nofollow">https://crustjs.com</a>),这是一个以 TypeScript 为首的、原生于 Bun 的命令行界面(CLI)框架,具有零依赖性。它已经在我们的核心产品中内部使用了一段时间,现在我们决定开源它。 我们遇到的问题是:现有的 JavaScript 生态系统中的 CLI 框架要么是最小的参数解析器,需要你自己连接所有内容,要么是重量级框架,具有庞大的依赖树和 Node 时代的假设。我们希望能有一个介于两者之间的解决方案。 Crust 的不同之处在于: - 完整的类型推断 — 参数和标志会自动推断,无需手动类型注释,也不需要处理泛型。你只需将标志定义为类型:“string”,它就会传递到你的处理程序中。 - 编译时验证 — 在代码运行之前捕获标志别名冲突和可变参数错误,而不是在运行时。 - 零运行时依赖 — @crustjs/core 的 gzipped 大小约为 3.6kB(安装时为 21kB)。作为对比:yargs 为 509kB,oclif 为 411kB。 - 可组合模块 — 核心、插件、提示、样式、验证和构建工具都是独立的包。只安装你需要的部分。 - 插件系统 — 基于中间件的生命周期钩子(preRun/postRun)。官方插件提供帮助、版本和命令行自动补全功能。 - 为 Bun 而构建 — 没有 Node 兼容层,没有遗留负担。 快速示例: ```javascript import { Crust } from "@crustjs/core"; import { helpPlugin, versionPlugin } from "@crustjs/plugins"; const main = new Crust("greet") .args([{ name: "name", type: "string", default: "world" }]) .flags({ shout: { type: "boolean", short: "s" } }) .use(helpPlugin()) .use(versionPlugin("1.0.0")) .run(({ args, flags }) => { const msg = `Hello, ${args.name}!`; console.log(flags.shout ? msg.toUpperCase() : msg); }); await main.execute(); ``` 搭建一个新项目: ```bash bun create crust my-cli ``` 网站: <a href="https://crustjs.com" rel="nofollow">https://crustjs.com</a> GitHub: <a href="https://github.com/chenxin-yan/crustjs" rel="nofollow">https://github.com/chenxin-yan/crustjs</a> 欢迎随时询问有关设计决策或内部实现的问题。