兰 亭 墨 苑
期货 · 量化 · AI · 终身学习
首页
归档
编辑文章
标题 *
URL 别名 *
内容 *
(支持 Markdown 格式)
vibe coding现阶段给我带来的乐趣类似开放世界建造类游戏,有种玩《塞尔达传说:旷野之息》不做主线成天瞎造还乐在其中的感觉……比方说上个月看到Lenny's Podcast大概300期左右的播客字幕文本。<img src="https://pica.zhimg.com/50/v2-4c0378b6ebacfac17cf8be4692794d28_720w.jpg?source=2c26e567" data-size="normal" data-rawwidth="680" data-rawheight="520" data-original-token="v2-4c0378b6ebacfac17cf8be4692794d28" class="origin_image zh-lightbox-thumb" width="680" data-original="https://pic1.zhimg.com/v2-4c0378b6ebacfac17cf8be4692794d28_r.jpg?source=2c26e567"/>原推:https://x.com/lennysan/status/2011243567340298651我之前习惯把这种文档类的资料做成知识库,但是那天突发奇想觉得这个东西可以用来构建知识图谱(当然更主要的原因是我没有正儿八经做过知识图谱)。然而GraphRAG出来那会儿我也知道做知识图谱很费token,并不想在这个side project上花太多成本,所以尝试低成本vibe一个,核心诉求就是:要便宜……好在现阶段LLM推广的红利期还在,我又瞄上了去年做批量古籍OCR的智谱Batch API,一看果然还有免费的模型(GLM-4-Flash)用量可以薅,于是乎大致想了一下思路,粗略分了这么几步:文本切分(本地完成)实体抽取(智谱Batch API)结果处理(本地完成)可视化(Neo4j桌面版)## 📁 Project Structure ├── archive/ # 298 podcast transcript files ├── scripts/ │ ├── config.py # Configuration settings │ ├── prepare_batch.py # Step 1: Chunk transcripts & generate batch file │ ├── submit_batch.py # Step 2: Submit to ZhipuAI & download results │ ├── parse_results.py # Step 3: Parse & deduplicate entities │ └── import_neo4j.py # Step 4: Import to Neo4j ├── batch_files/ # Generated batch request/result files ├── graph_data/ # Output: nodes.json, edges.json, import.cypher ├── .env # Your API keys (create from .env.example) ├── requirements.txt # Python dependencies └── run_local.bat # One-click execution script然后这整套流程搭建起来可以作为一种可复用的Pipeline用在其他的播客上,除了Vibe Coding阶段存在经济成本,其他的运行部分成本可以忽略不计。当然也是第一次遇到一个批量任务跑了两天都没跑完的,我都差点以为它失败了,但两天半(52小时34分钟40秒)之后这个任务居然跑完了……<img src="https://picx.zhimg.com/50/v2-95919502f4d6c2e14a4da164cb039ef5_720w.jpg?source=2c26e567" data-caption="" data-size="normal" data-rawwidth="3085" data-rawheight="1022" data-original-token="v2-95919502f4d6c2e14a4da164cb039ef5" class="origin_image zh-lightbox-thumb" width="3085" data-original="https://pic1.zhimg.com/v2-95919502f4d6c2e14a4da164cb039ef5_r.jpg?source=2c26e567"/>这个最耗时的工作完成之后,实体合并和去重完成之后就可以加载到Neo4j图数据库里:<img src="https://pic1.zhimg.com/50/v2-cbd69d22c6c1add6ba77224be693f118_720w.jpg?source=2c26e567" data-caption="" data-size="normal" data-rawwidth="1379" data-rawheight="711" data-original-token="v2-cbd69d22c6c1add6ba77224be693f118" class="origin_image zh-lightbox-thumb" width="1379" data-original="https://pic1.zhimg.com/v2-cbd69d22c6c1add6ba77224be693f118_r.jpg?source=2c26e567"/><img src="https://picx.zhimg.com/50/v2-7c8dba80b18310b4603bfed0406c801a_720w.jpg?source=2c26e567" data-caption="" data-size="normal" data-rawwidth="1453" data-rawheight="850" data-original-token="v2-7c8dba80b18310b4603bfed0406c801a" class="origin_image zh-lightbox-thumb" width="1453" data-original="https://picx.zhimg.com/v2-7c8dba80b18310b4603bfed0406c801a_r.jpg?source=2c26e567"/><img src="https://picx.zhimg.com/50/v2-f1c725753f2bf3f44d512d6dc1d8f2b8_720w.jpg?source=2c26e567" data-caption="" data-size="normal" data-rawwidth="1410" data-rawheight="1124" data-original-token="v2-f1c725753f2bf3f44d512d6dc1d8f2b8" class="origin_image zh-lightbox-thumb" width="1410" data-original="https://pica.zhimg.com/v2-f1c725753f2bf3f44d512d6dc1d8f2b8_r.jpg?source=2c26e567"/>大致是这样的一坨:<img src="https://picx.zhimg.com/50/v2-944ab120f4395402cdd62e9e096f6d32_720w.jpg?source=2c26e567" data-caption="" data-size="normal" data-rawwidth="2198" data-rawheight="1209" data-original-token="v2-944ab120f4395402cdd62e9e096f6d32" class="origin_image zh-lightbox-thumb" width="2198" data-original="https://picx.zhimg.com/v2-944ab120f4395402cdd62e9e096f6d32_r.jpg?source=2c26e567"/>实现效果比预期的要差一些,可能是播客的原始文本并不适合做知识图谱的原始输入,也有可能是实体和关系抽取的过程中信息损失太严重。但这个流程过一遍基本上知道知识图谱是怎么回事,局限性在哪里。就当是闲暇时的脑力乐高玩一玩也挺好。
配图 (可多选)
选择新图片文件或拖拽到此处
标签
更新文章
删除文章