自定义你的 AI 项目文档系统——基于开源 LLM + LangChain + VSCode 插件构建

下面是一份关于如何自定义你的 AI 项目文档系统的完整实战指南,结合开源大语言模型、LangChain 框架与 VSCode 插件技术,打造一个类 DeepWiki 的“智能项目文档专家”。


项目目标

构建一个本地化的 AI 文档助手,具备以下能力:

  • 自动解析项目代码结构

  • 使用开源大模型自动生成函数/类/模块级文档

  • 结合 LangChain 构建文档生成链

  • 集成 VSCode 插件,实现在编辑器中“选中代码 ➝ 自动生成注释或文档”

  • 支持私有部署,无需联网依赖 OpenAI


技术栈选型

模块工具/框架
大模型DeepSeek-Coder / Qwen / Mistral
模型运行Ollama / FastChat / LMDeploy
代码解析Python AST / tree-sitter
文档生成链LangChain + 自定义 PromptTemplate
向量检索(可选)FAISS / Chroma / Milvus
前端VSCode 插件 (Webview API)

系统模块设计图

             ┌────────────────────────────┐
             │         VSCode 插件         │
             │ (选中代码 → 生成注释/文档)   │
             └────────────┬───────────────┘
                          │
                   (HTTP/IPC调用)
                          │
               ┌──────────▼──────────────────┐
               │     本地服务 (Flask/FastAPI) │
               │ - 接收请求                   │
               │ - 调用 LangChain链           │
               └──────────┬──────────────────┘
                          │
               ┌──────────▼──────────────────┐
               │   LangChain + 本地大模型     │
               │ - 加载模型                   │
               │ - 构造 PromptTemplate       │
               │ - 执行文档生成链             │
               └──────────┬──────────────────┘
                          │
               ┌──────────▼──────────────┐
               │    代码解析模块          │
               │ - 抽取函数/类/注释等信息  │
               └─────────────────────────┘

搭建步骤

第一步:启动开源大模型(以 DeepSeek-Coder 为例)

ollama run deepseek-coder:instruct

你也可以使用 FastChat + Qwen 等部署方式,只需保证能通过 localhost:port 发起模型调用即可。


第二步:LangChain 构建文档生成链

# doc_chain.py
from langchain.prompts import PromptTemplate
from langchain.llms import Ollama
from langchain.chains import LLMChain

llm = Ollama(model="deepseek-coder")

prompt_template = PromptTemplate.from_template("""
你是一位资深开发专家,请阅读以下代码片段,并使用中文写出简洁明了的函数说明文档:

代码如下:
```python
{code}

说明文档(包括功能、参数含义、返回值):
""")

doc_chain = LLMChain(llm=llm, prompt=prompt_template)

def generate_doc(code_snippet: str) -> str:
return doc_chain.run({"code": code_snippet})

第三步:VSCode 插件开发(简化版本)

使用 VSCode Webview API 编写插件,核心逻辑如下:

// extension.ts (主入口)
vscode.commands.registerCommand('docgen.generateDoc', async () => {
    const editor = vscode.window.activeTextEditor;
    if (!editor) return;
    const code = editor.document.getText(editor.selection);

    const response = await fetch('http://localhost:5000/gen', {
        method: 'POST',
        body: JSON.stringify({ code }),
        headers: { 'Content-Type': 'application/json' }
    });

    const result = await response.text();
    vscode.window.showInformationMessage('生成的文档:' + result);
});

第四步:本地服务 Flask/FastAPI

# api.py
from flask import Flask, request
from doc_chain import generate_doc

app = Flask(__name__)

@app.route("/gen", methods=["POST"])
def gen():
    code = request.json["code"]
    return generate_doc(code)

if __name__ == "__main__":
    app.run(port=5000)

示例效果演示

假设你选中如下代码:

def calculate_discount(price, rate):
    return price * (1 - rate)

AI 输出:

### calculate_discount(price, rate)

计算折扣后的价格。

- 参数:
  - `price`: 原价
  - `rate`: 折扣率,范围 0~1

- 返回值:
  - 应支付的折扣后价格

可扩展功能建议

  • 支持自动解析整个项目,批量生成模块文档

  • 支持版本差异比较,自动更新变化部分文档

  • 与 MkDocs/VuePress 集成,构建在线文档站点

  • 接入向量数据库 + RAG,打造智能问答文档助手


总结

这个系统架构灵活、私有、安全,具备以下优势:

特性描述
本地运行数据不出本机,适合企业/私有项目
支持多模型可替换 DeepSeek/Qwen 等模型
开发门槛低基于 LangChain 和标准 API
易于扩展插件、文档、搜索、RAG 等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值