我的第一个独立开发出海产品上线了(美股 AI 财报应用) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tahitimoon

我的第一个独立开发出海产品上线了(美股 AI 财报应用)

  •  
  •   tahitimoon 2025 年 6 月 22 日 2926 次点击
    这是一个创建于 306 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天,我的第一个独立开发出海产品 Chat2Report 上线了。这是一款基于 RAG 的美股财报聊天应用。

    chat2report-image

    为什么要开发独立产品

    去年初通过几位大佬(越南的 Tony Dinh ,国内的 Hawstein 和 vikingz )的博客了解到,作为程序员还有开发独立产品出海这一条路,其中有些收入还不错,甚至有开发者辞掉了工作,全职做独立开发。

    chat2report-image

    看完他们的文章,心里很激动,想着自己是不是也可以试一试。于是使用 OpenAI 的 gpt-4o-mini 模型微调了一个专门的模型,做了一个变量命名工具,叫 VarNamer ,支持多国语言,用户输入任意语言,即可输出精简的英文变量。当时 AI 编程工具还刚刚兴起,变量命名又是件头痛的事,所以想着这个工具应该能为自己节省不少时间。

    其实当时开发这个产品,也是为了学习新技术,为自己后面开发出海产品做准备,由于看到不少独立产品都是桌面端的,所以基于 Electron + Vue3 做了 VarNamer ,为什么选择 Electron ?因为它构建跨平台程序非常方便,为了上 Mac ,还购买了苹果开发者证书。

    chat2report-image

    开发 VarNamer 并不顺利,期间踩了不少坑,也坚定了后面的出海产品不会再做桌面端了。因为一般的 Web 开发不需要考虑版本更新、证书、跨平台兼容等问题,但是开发桌面应用需要将这些因素都考虑进去。除去后端服务器的成本、安装包托管、更新逻辑,还需要考虑程序的签名证书。不然用户安装应用会报警告,甚至安装不了。其中,苹果开发者证书一年就 99 刀,Windows 就更贵了。

    VarNamer 上线后,在几个论坛发了贴宣传,也发给了同事使用,反响还不错。但是没想到后面 AI 编程工具发展这么快,特别是出了 Cursor 这样的王炸产品,变量命名完全不是难事,几乎改变了以往的编程习惯,一直 Tab 的感觉,简直不要太爽。

    99 刀的苹果开发者证书就开发了一个应用,着实太浪费了。至于 VarNamer ,后面再也没管过它,好像域名最近快到期了,也不打算续费了。

    独立出海产品契机

    自 VarNamer 之后,接下来的几个月时间并没有开发新的产品,为什么?因为我不知道开发什么,好像也找不到什么痛点需要解决。后来想到自己在购买一家上市公司的股票之前,会分析公司的财务报告,毕竟我是一位追随彼得林奇和巴菲特的价值投资者,哈哈!

    但是分析财报是件麻烦且费脑的事。一份财报少则几十页,多则几百页,除了重点关注三张报表,即资产负债表、利润表、现金流量表(俗称“三大表”),还需要关注管理策略、管理层的措施、战略,以及财报中是否存在欺诈风险等。

    既然这么麻烦,那 AI 是否能帮我们分析呢?后来经过调研发现市面上确实有这样的产品,比如 beebee 、reportify ,它们都是基于 RAG 实现的。但是我想基于它们开发一款新的产品,为什么?因为它们的功能实在太多了,涵盖新闻、电话会议、上传文件、公司评价等。而且 RAG 的精准度也不高。我需要一款操作简单、体验更好、简洁美观、精准,专门用于分析财报的工具。

    chat2report-image

    去年 9 月下旬开始了技术调研。之前对 RAG 技术稍微有点了解,但不够深入,只是基于 Dify 做了一些应用。同时发现 Dify 不够自由,文档解析分块不能自定义元数据,后端又是基于 Flask 的。对于 to C 的应用,担心性能不足,生产环境还需要一台服务器额外部署 Dify 。

    调研后最终确定业务层使用 Go + Gin ,大模型层使用 Python + FastAPI + LlamaIndex ,前端使用 Vue3 。LlamaIndex 实现 RAG 应用非常方便,兼容各种第三方文档解析器、向量模型( Embedding models )、重排序模型( Rerank models )、向量数据库以及大语言模型( LLMs )。

    chat2report-image

    之后利用下班时间和假期实现了个 demo ,感觉还不错,是自己想要的效果,美股财报批量转 PDF ,文档批量解析、分块,提取布局信息,前端布局重构回溯,AI 回答带引用来源,高亮定位到原文段落,一个 ChatPDF + AI 财报助理的构想应该很快就可以实现。

    10 月份利用业余时间开始了马不停蹄的开发,这期间公司一些事件却让自己很不舒服,作为一个技术人,希望能全身心地投入到技术中,利用技术解决问题,但是各种 PPT 汇报、职场 PUA ,让自己疲于奔命。

    我想离职了,全职投入到项目开发中,11 月初的一个晚上把这个想法告诉了老婆,非常正式地讲了自己的规划,产品怎么落地,产品受众人群,怎么盈利,以及一个粗略的计划,希望得到她的支持。因为我觉得,组建家庭后,另一半相当于就是你的人生合伙人。在很多重要决策上,得到合伙人的支持,才能走得更好走得更远。如果成功了,兴许以后就不用上班了,就算失败了大不了重新找个班去上。老婆没说什么,表示了支持,在这里要特别感谢一下老婆。

    全力加速开发

    12 月 09 号是我最后一个工作日,也是我作为全职独立开发的第一天。当天下班后,呼吸着新鲜的空气,我感受到了前所未有的自由。

    成为全职独立开发者之后,最大的感受就是开发效率提高了几倍。不用再参加枯燥无聊的会议,也不用应付各种办公室政治斗争或输出无意义的 PPT 。直到今天项目上线,整个开发时间大约是 3 个月。

    这期间踩了无数坑。以前工作时的一些优点,现在反而成了缺点。比如之前专注于写好代码,追求架构的完美和扩展性,甚至有代码洁癖,但这严重推迟了产品的上线时间。在产品还未经过市场验证之前,应该快速推出产品,验证市场需求,这比追求完美更重要。

    接下来的计划

    接下来的主要任务就是宣传了,去海外各大社区宣传并寻找目标用户,比如 Facebook 、Twitter 、Reddit 。

    两个月之后我会再写一篇帖子,分享我的成果、盈利情况等。

    接下来也会分享一些出海产品在技术选型和海外支付方面的经验。

    26 条回复    2025-06-23 12:00:02 +08:00
    1up
        1
    1up  
       2025 年 6 月 22 日 via iPhone
    和我和 gpt 聊有什么区别
    tahitimoon
        2
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @1up 试一试就知道了
    jacketma
        3
    jacketma  
       2025 年 6 月 22 日
    @1up 一句话就把天聊死了
    tahitimoon
        4
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @jacketma 哈哈 欢迎讨论
    8820670
        5
    8820670  
       2025 年 6 月 22 日
    好奇 OP 在未形成产品盈利的情况下怎么考虑的离职呢
    supermanzhouhan2
        6
    supermanzhouhan2  
       2025 年 6 月 22 日
    看到独立开发的帖子我都点进来看看,我做了一年多了,上线了两个项目都是亏钱,第二个项目是做 AI 面试,底层也是 electron 。技术出身往往太低估营销获客的难度,我们尝试了很多都没有增长,https://www.gankinterview.cn
    jacketma
        7
    jacketma  
       2025 年 6 月 22 日
    金融分析这个领域钱是多,对数据的质量要求也很高。作为免费服务还行,要是收费的话,还得加点高质量信源、或者买点数据报表加进来,参考雪球,信息服务的收入不高,主要还是靠金融业务赚钱。先有流量,后期帮券商代理点业务就有的赚了
    1up
        8
    1up  
       2025 年 6 月 22 日 via iPhone
    @jacketma 我最近在密集使用,所以好奇问问
    Sawyerhou
        9
    Sawyerhou  
       2025 年 6 月 22 日
    有发到雪球吗?可以听听那边的需求和反馈。

    主要面向大陆市场吗?支持一下中文?搜阿里巴巴没反应。
    tahitimoon
        10
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @8820670 搏一搏,摩托变单车
    tahitimoon
        11
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @supermanzhouhan2 是的,做技术的大部分不重营销。共勉
    tahitimoon
        12
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @Sawyerhou 主要面向海外市场,回头试一试,感谢建议。
    tahitimoon
        13
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @jacketma 感谢建议,很受用。
    shawndeng1109
        14
    shawndeng1109  
       2025 年 6 月 22 日
    openbb 似乎和你的这个是重叠产品?
    感觉很像
    supermanzhouhan2
        15
    supermanzhouhan2  
       2025 年 6 月 22 日
    你 landing page 的 gif 是怎么制作的?还挺好看的
    RealVic
        16
    RealVic  
       2025 年 6 月 22 日
    看了之后感想是,找个好老婆真重要
    hefish
        17
    hefish  
       2025 年 6 月 22 日
    太好了,我也学 op 去开发一个,也许明年就能被资本看上。。。
    这就动手。。。。 明天先去买台电脑。
    ChristopherWu
        18
    ChristopherWu  
       2025 年 6 月 22 日
    @hefish 先打消一下你的念头,看看这帖子: t/1139572?p=1#;
    tahitimoon
        19
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @supermanzhouhan2 那个是播放的小视频
    tahitimoon
        20
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @ChristopherWu 不容易,方向不行就赶紧换了
    tahitimoon
        21
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @shawndeng1109 好像不一样
    tahitimoon
        22
    tahitimoon  
    OP
       2025 年 6 月 22 日
    @RealVic 赶紧找个老婆
    jellyX
        23
    jellyX  
       2025 年 6 月 23 日
    晚上试用一下,最近看好的几只美股也要出财报
    hefish
        24
    hefish  
       2025 年 6 月 23 日
    @ChristopherWu 哈哈哈哈。。。。
    tahitimoon
        25
    tahitimoon  
    OP
       2025 年 6 月 23 日
    @jellyX 随意使用,网站底部可以返回建议、欢迎反馈。
    solomaster
        26
    solomaster  
       2025 年 6 月 23 日
    这种和直接用 ChatGPT 、Gemini 、Claude 去分析,区别是不是就是:你针对优化了 prompt 、外挂了 RAG 提供更新更全的信息?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1055 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 98ms UTC 18:31 PVG 02:31 LAX 11:31 JFK 14:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86