复现室

把值得动手的开源项目,从「收藏」推进到「在我机器上跑通」。清单里每一个项目,都该在你的机器上留下一次部署记录,而不只是一条书签。

把开源 AI 资讯框架,改成自己的商业航天热点站

从源码改到上线

本站作者从 AIHOT 的源码起步,一路改到能对外提供服务:拆信源、重排栏目、换掉前端版式、接上部署。整个过程连同中间踩过的坑,都写在同一篇文章里。

想先看看「复现」这件事到底长什么样,从这一篇开始最省时间。

值得复现的清单

共 12 个 · 按「跑通能学到什么」挑,不按热度

Ollama

ollama/ollama ↗

在本机跑开源大模型:下载、启动、对话,一共三条命令。

最省事的一次本地推理体验。跑通之后,8B 和 70B 之间的真实差距就不用再听别人描述。

初级 Go

Open WebUI

open-webui/open-webui ↗

给本地模型套一个像样的网页界面,带多用户、历史记录和知识库。

Docker 一条命令起来,是「自建 AI 入口」最省力的样板;想加自己的东西,从它的对话层改起就行。

初级 Svelte

MarkItDown

microsoft/markitdown ↗

把 PDF、Word、PPT、Excel 转成结构化的 markdown。

RAG 效果差,多半先烂在文档解析这一步。这个工具能把这第一步压缩成一行 Python。

初级 Python

NewsNow

newsnext/newsnow ↗

把几十个平台的热榜抓下来,聚合成一个干净页面。

抓取、缓存、边缘部署的最小完整案例。本站的实时热点解决的是同一类问题,对照着读很有用。

初级 TypeScript

n8n

n8n-io/n8n ↗

节点式工作流自动化,把模型接进爬虫、表格、通知和数据库。

自托管版没有执行次数焦虑。跑通一条「抓取 → 摘要 → 推送」,手上就少一件重复劳动。

中级 TypeScript

Dify

langgenius/dify ↗

可视化搭 LLM 应用:对话流、工作流、RAG、Agent 都在同一个后台里。

想看一个接近生产级的 LLM 平台骨架长什么样,读它的工程结构比读框架文档快。

中级 Python

ComfyUI

Comfy-Org/ComfyUI ↗

节点式图像生成工作流,每一步工序都可以拆开、替换、串联。

图像生成里最值得亲手跑一遍的工程化方案。工作流存成 JSON 就能复用和分享,这是它和网页版生图的分水岭。

中级 Python

LobeChat

lobehub/lobehub ↗

多模型聊天客户端,插件、知识库、MCP 都有现成实现。

想给模型做自己的前端,可以直接从它的会话结构和插件机制学起,不用从零设计交互。

中级 TypeScript

Immich

immich-app/immich ↗

自托管照片库,带人脸识别和语义搜索。

离开 LLM 也能学到东西的标杆项目:Docker Compose 起步,跑完就有一台自己的相册服务器。

中级 TypeScript

llama.cpp

ggml-org/llama.cpp ↗

用 C/C++ 在 CPU、GPU 和 Mac 上跑量化模型,不依赖任何框架。

想弄明白量化等级、上下文长度、显存到底怎么互相换算,这里没有抽象层可以躲。

进阶 C++

RAGFlow

infiniflow/ragflow ↗

面向复杂文档的 RAG 引擎,切片、表格、版面识别一条龙。

想把「能检索」做到「能回答」,它给的是一整套工程实现,而不是一个能演示的 demo。

进阶 Go

vLLM

vllm-project/vllm ↗

高吞吐推理服务,PagedAttention 和连续批处理都在里面。

「本机跑得动」和「能对外提供服务」是两件事。这一项练的是后者:并发、显存、吞吐。

进阶 Python

复现的做法

按顺序做,前三条能省掉大部分时间

  1. 01 先读 README 的 Quick Start,只读这一节 项目文档动辄几十页,跑通只需要最前面那十几行。剩下的配置项留到跑通之后再回头看,那时候你才知道它们各自管什么。
  2. 02 能 Docker Compose 就别手动装依赖 手动装出来的环境问题会吃掉一半时间。Compose 起不来的时候,报错通常也更具体、更容易搜到同名 issue。
  3. 03 先跑通最小样例,再改配置 第一个目标只是「看到输出」。这时候换端口、换模型、加插件,等于同时动两个变量,出了问题不知道该怪谁。
  4. 04 配置写进 .env,不要改代码 改代码的复现别人重现不了,自己也没法回滚。上游下次更新时,你会庆幸自己没动过那几行。
  5. 05 每一步命令都记下来 用一份 markdown 按顺序记命令、报错和解法。第二次在同一台机器上重来时,这份记录比任何教程都准。
  6. 06 给复现设一个时间盒 卡住超过两小时就先放下,去 issues 里搜同名报错。多数「跑不通」是硬件、驱动或网络的问题,不是代码的问题。