当前位置: 首页 > news >正文

code2prompt 快速生成项目 Markdown 文档(结合大模型进行问答)

在做整个项目时,常常需要对项目代码进行整体梳理,方便记录、复盘和向大模型描述。手工去复制粘贴既低效又容易遗漏。这里介绍一个非常实用的小工具:code2prompt

什么是 code2prompt?

code2prompt 是一个用于将代码项目转换为适合大语言模型(LLM)阅读的提示文本(Prompt)的工具
它能自动扫描代码文件、保留结构(目录 + 文件内容)、添加语法高亮标记,并生成一个结构化的 .txt .md 文件,并可选择性地加入行号。方便复制粘贴到 ChatGPT、Claude、通义千问等模型中使用。


基本用法

使用前提: code2prompt 要求 Python 3.9 或更高版本

这是因为它使用了 Python 3.9 引入的类型标注新语法(如 list[str]),在 Python 3.8 及以下版本中会报错:

TypeError: 'type' object is not subscriptable

推荐使用 Python 3.10 或 3.11,以获得最佳兼容性和性能支持。

使用 pip 安装:

pip install code2prompt

安装完成后,即可在命令行中直接使用 code2prompt 命令。你应该能看到帮助信息输出,表示安装成功。

code2prompt --help

最常见的命令格式是:

code2prompt -p <项目路径> -o <输出文件路径> [参数]

示例:

code2prompt -p D:\Project\SR\SR_2x -o D:\Project\SR\SR.md --line-number

这条命令表示:

  • -p :输入路径,指定要解析的项目目录;

  • -o :输出路径,指定生成的 Markdown 文件位置;

  • --line-number :启用代码行号功能。该参数会在打包代码时自动添加行号标记,使AI在解析代码或回答问题时能准确定位到具体行数,有助于提升沟通效率!

执行后,会出现下面的成功提示。

在输出目录中会得到一个完整的md文件,里面包含项目代码和行号,直接可以交给大模型进行问答。
举例:项目结构如下图:

输出文件内容如下图:


常用参数说明

以下是一些常见参数及作用:

参数说明示例
-p--path指定要扫描的项目根目录路径--path ./src
-o--output指定输出文件路径(默认打印到终端)--output prompt.txt
--copy-c将生成的 prompt 直接复制到剪贴板(不写文件)--copy
--extensions-e指定要包含的文件扩展名(多个用逗号分隔)--extensions .py,.js,.ts
--exclude-x指定要排除的目录或文件模式(支持通配符)--exclude node_modules,__pycache__,*.log
--ignore-git-g忽略 .gitignore 中定义的规则(默认自动读取)--ignore-git
--line-number-l在代码块中添加行号(便于讨论具体行)--line-number
--language强制指定所有文件的语言类型(用于语法高亮)--language python
--max-size设置单个文件最大大小(KB),超过则跳过--max-size 500(默认 500KB)
--template使用自定义模板文件(Jinja2 格式)--template my_template.md
--token-count显示生成内容的预估 token 数(适配 GPT、Claude 等)--token-count
--model指定目标 LLM 模型以计算 token(如 gpt-4claude-3--model claude-3-opus
--include-hidden包含隐藏文件(以 . 开头的文件)--include-hidden
--verbose-v显示详细处理过程(调试用)-v

使用场景

  1. 大模型协作
    把项目转成 Markdown,交给 ChatGPT 或 Claude,快速提问“帮我解释某个模块的逻辑”。

  2. 项目归档
    把代码结构和实现保留下来,生成可读文档,方便团队成员理解。

  3. 调试/复盘
    配合行号定位,可以快速跳转到具体代码片段,提升调试效率。


将 Markdown 输入 ChatGPT

  1. 在对话中设置上下文,比如:

    这是我的xxx项目完整代码,请作为上下文,回答我后续的问题。

这样 ChatGPT 或者其他大模型就能记住整个项目结构。
有了上下文之后,可以更方便的进行提问,不用频繁复制代码或上传文件进行交互。

http://www.dtcms.com/a/390588.html

相关文章:

  • UIKit-CAGradientLayer
  • K8s LoadBalancer服务深度解析
  • Windows 系统开发 iOS 与安卓应用全流程指南,附 PC 前端工具链
  • CentOS 7 系统 “cannot find a valid baseurl for repo base7x86_64” 报错完整解决方案
  • centos7通过kubeadm安装k8s1.27.1版本
  • kubesphere(k8s)如何设置存储类的默认路径
  • 在 k8s 上部署 Kafka 4.0 3节点集群
  • k8s 部署 EMQX 5.8.6 静态三节点集群
  • UVa1374/LA3621 Power Calculus
  • 以 NoETL 重塑 AI-Ready 的数据底座,Aloudata 获评 IDC 面向生成式 AI 的数据基础设施核心厂商
  • 声音转文字API平台推荐
  • Vue3: watch watchEffect
  • 梯度提升算法及其在回归与分类中的应用实战
  • 【自然语言处理与大模型】大模型应用开发四个场景
  • 深度神经网络-传播原理
  • 交通仿真术语
  • 关于Oracle主外键约束的几个SQL语句
  • Python 操作 SQLite:Peewee ORM 与传统 sqlite3.connect 的全方位对比
  • go资深之路笔记(四)中间件(Middleware)设计模式
  • MySQL分库分表迁移:ETL平台如何实现数据合并与聚合
  • [极客大挑战 2019]BabySQL
  • SQL-索引使用
  • 数据库和数据仓库有什么区别
  • SpringBoot2.7X整合Swagger、Redission3.X的bug
  • uniapp安卓原生插件实现开启ble Server[外围模式]
  • React 18.2中使用React Router 6.4
  • 人员在岗监测技术研究:基于计算机视觉的智能监管方案
  • 实测AI Ping,一个大模型服务选型的实用工具——行业实践与深度优化策略
  • 通过QuickAPI优化金融系统API:安全快捷的数据共享最佳实践
  • 第4节 添加视频字幕到剪映(Coze扣子空间剪映小助手零基础教程)