想必大家都是用过deepwiki:https://deepwiki.com/来分析、阅读开源代码,也对其功能印象深刻。但是当我们需要阅读分析公司自有代码的时候怎么办呢?公司肯定不允许将代码传出公司的范围,好在还有deepwiki-open,我们可以进行私有化部署。下面的内容参考了deepwiki-open对自己的总结分析。项目简介
DeepWiki-Open 是一个基于人工智能的自动化工具,旨在帮助开发者快速创建和管理多语言、多平台的项目文档(Wiki)。该项目的核心目标是通过智能分析代码结构、功能模块以及用户需求,自动生成结构清晰、内容详实的文档,从而提高开发效率和团队协作能力。
项目背景与目标
DeepWiki-Open 的设计灵感来源于现代软件开发中对文档的高需求。在传统的开发流程中,文档的编写往往滞后于代码的更新,导致文档与实际代码脱节。为了解决这一问题,DeepWiki-Open 通过集成自然语言处理(NLP)和机器学习技术,实现了对代码库的智能分析和文档生成。
该项目的主要目标包括:
核心功能与架构
DeepWiki-Open 的核心功能是自动化文档生成。该功能基于对代码库的深度分析,包括:
系统架构
1. 前端架构
DeepWiki-Open 的前端架构基于 Web 技术,包括 HTML、CSS 和 JavaScript。前端主要负责用户交互和界面展示,包括:
2. 后端架构
DeepWiki-Open 的后端架构基于 Python 和 Flask 框架,负责处理业务逻辑和数据处理。后端主要负责:
3. 数据库架构
DeepWiki-Open 使用 SQLite 作为数据库,存储用户配置、文档数据和日志信息。数据库架构包括:
安装与环境配置
既然deepwiki-open还不错,那该怎么在本地部署呢?其实deepwiki-open的部署已经很工程化,由于本人设备没有docker环境,所以就采用了直接部署的方式。
1)先决条件
2)获取代码
git clone https://github.com/AsyncFuncAI/deepwiki-open.gitcd deepwiki-open
3)创建python的虚拟环境
4)创建.env
在项目根目录创建.env文件,配置调用LLM API的key及base url.
# 仅用 Ollama 时,可不填云 APIPORT=8001# 如果 Ollama 不在本机,改成你的地址(默认 http://localhost:11434)OLLAMA_HOST=http://localhost:11434
由于是办公设备安装,所以没有使用docker。先安装后端fastapipython -m pip install poetry==2.0.1 && poetry install -C apipython -m api.main # 默认 http://localhost:8001
npm install # 或 yarn / pnpmnpm run dev # http://localhost:3000
cp api/config/embedder.ollama.json.bak api/config/embedder.json
embedder.json的内容,我的机器内容紧张,我是将chunk_size修改为350才能够跑起来。{ "embedder": { "client_class": "OpenAIClient", "initialize_kwargs": { "api_key": "${OPENAI_API_KEY}", "base_url": "${OPENAI_BASE_URL}" }, "batch_size": 10, "model_kwargs": { "model": "bge-m3", "encoding_format": "float" } }, "embedder_ollama": { "client_class": "OllamaClient", "model_kwargs": { "model": "nomic-embed-text" } }, "retriever": { "top_k": 20 }, "text_splitter": { "split_by": "word", "chunk_size": 350, "chunk_overlap": 100 }}
{ "default_provider": "ollama", "providers": { "ollama": { "default_model": "qwen3:8b", "supportsCustomModel": true, "models": { "qwen3:1.7b": { "options": { "temperature": 0.7, "top_p": 0.8, "num_ctx": 7500 } }, "llama3:8b": { "options": { "temperature": 0.7, "top_p": 0.8, "num_ctx": 7500 } } } } }}
大功告成,可以使用deepwiki-open分析代码、编写文档了。我使用它生成了我正在做的RUST项目的结构文档,同事居然说比我写的清楚、明白、丰富多了,汗颜啊。当然,最爱还是C++,我也是使用deepwiki-open写了booost的Fiber的总结介绍,截图如下,效果也是非常棒的。 AI不应该代替程序员,而应该助力程序员做出更有创意、更优秀的产品。