shelfwood / project-prompt-generator
为你在CLI中查看的给定Laravel项目生成提示
Requires
- php: ^8.0.2
- illuminate/collections: ^10.0
- illuminate/database: ^10.0
- laravel-zero/phar-updater: ^1.3
- nunomaduro/laravel-console-menu: ^3.4
- nunomaduro/termwind: ^1.15
- nyholm/psr7: ^1.5
- openai-php/client: ^0.4.1
- symfony/http-client: ^6.2
Requires (Dev)
- fakerphp/faker: ^1.9.1
- laravel-zero/framework: ^10.0
- laravel/pint: ^1.5
- mockery/mockery: ^1.5.1
- pestphp/pest: ^1.22.3
README
这是一个使用GPT和OpenAI API生成提示并分析项目文件的Laravel Zero CLI工具。您需要OpenAI API密钥才能使用此工具。
安装
要全局通过composer安装CLI工具,请运行以下命令
composer global require shelfwood/project-prompt-generator
安装后,创建一个新的项目目录,并在您的终端中导航到该目录。然后,运行以下命令
prompt install
这将安装必要的依赖项,创建数据库,并提示您选择默认项目,以便您可以从默认目录中选择项目。当您想要单独分析单个目录中的多个项目时,这个功能很方便。
用法
.env文件包含以下变量,必要的变量在运行prompt install
命令时设置
OPENAI_API_KEY=
PROJECT_DIRECTORY=
REMOTE=
IGNORE_PATHS=/app/Helpers/characters.json
REMOTE
变量用于指定要使用而不是当前工作目录的远程目录。IGNORE_PATHS
变量用于指定在分析文件时要忽略的路径。这主要用于开发过程中,以便轻松在其它项目文件夹上运行此工具。
IGNORE_PATHS
变量可以设置为要忽略的文件路径的逗号分隔列表。database/database.sqlite
默认被忽略。
分析项目
要分析当前工作目录的文件并显示标记和描述的计数,请使用以下命令
prompt analyze [--remote]
可以使用--remote
选项指定远程目录而不是使用当前工作目录。
清除命令
要清除数据库中的所有文件描述,请使用以下命令
project-cli clear
复制代码命令
要将当前项目中所有文件的代码连接起来(不带换行符)并计算标记数,请使用以下命令
project-cli copy:files [--remote]
可以使用--remote
选项指定远程目录而不是使用当前工作目录。
复制压缩命令
要将当前项目的所有压缩文件描述连接起来并计算标记数,请使用以下命令
project-cli copy:compressed [--remote]
可以使用--remote
选项指定远程目录而不是使用当前工作目录。
可以使用--remote
选项指定远程目录而不是使用当前工作目录。
生成提案命令
要基于当前目录中的文件生成提案,请使用以下命令
project-cli generate:proposal [--remote]
该命令从数据库中检索项目目录和项目ID,并创建FileAnalyzer
、Describer
和DescriptionStorage
的实例来处理目录中的文件并存储生成的提案。最后,该命令提示用户提供关于功能或请求的描述。
README命令
要为当前项目生成README.md文件,请使用以下命令
project-cli readme [--remote]
可以使用--remote
选项指定远程目录而不是使用当前工作目录。该命令使用Laravel的FileAnalyzer
类来确定要扫描哪些文件以获取上下文信息。它还使用一个ChatGPT
实例从每个文件中收集关键信息,用作编写README.md文件时的上下文。最后,该命令提示用户提供任何特殊说明,然后以markdown格式写出完整的README.md。
贡献
如果您想为此项目做出贡献,请在GitHub上提交pull request,或直接联系项目所有者。
许可
此项目受MIT许可协议的许可。
致谢
该项目由Joris Schelfhout创建。特别感谢Bit Academy为此项目提供资源。