# SoftwareProcedureTest **Repository Path**: Virtual-Memes/software-procedure-test ## Basic Information - **Project Name**: SoftwareProcedureTest - **Description**: 赵英剑的软件过程管理之OpenCode接入DeepSeek编写项目的作业 - **Primary Language**: Shell - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-17 - **Last Updated**: 2026-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 全自动配置 OpenCode 环境记录 + 生成脚本使用的大语言模型:DeepSeek网页版-专家模式 + 安装OpenCode的系统环境:OpenEular 24.03 LTS SP3 x86_64 + 使用的虚拟机软件:Vmware Station Pro 26H1(已免费),virtualbox 安装不上,使用Vmware代替了 ## Node.js以及OpenCode环境安装 使用DeepSeek网页版输入,输入以下prompt生成了脚本: ```text 我使用的是OpenEular24.03操作系统,根据这个操作系统编写一个shell脚本,实现自动安装nodejs ``` + 我将DeekSeek生成的Node.js安装脚本拷贝到系统 /home/codex_ds 目录下,创建了 install_node_js.sh 脚本 然后向DeepSeek输入了以下prompt: ```text 我所使用的系统是 openeular 24.03,已经安装上node.js环境,现在编写一个脚本安装opencode,安装前先验证node是否安装了,安装opencode的时候也验证系统是否安装了的opencode,如果没有安装opencode的时候则进行opencode安装 ``` 然后deepseek为我生成了带有Node.js是否安装的检测以及opencode安装的脚本。我将脚本拷贝到 /home/codex_ds 目录下面,创建了 install_opencode.sh脚本 ## OpenCode下DeepSeek V4 pro API-key配置 为了使用脚本自动配置deepseek v4到opencode,我向大模型输入了以下提示词: ```text 根据deepseek的官网信息,编写shell脚本配置opencode的配置文件,接入deepseek v4 pro,这个过程我只要输入API-key,不做任何其他操作 ``` 这时大模型为我生成了一个只需要输入API-Key即可完成opencode上deepseek v4 pro配置的shell脚本 ## one_key.sh 自动执行以上流程 为了能够一个命令完成node.js环境的安装到opencode的安装再到opencode配置,这里我再编写了一个one_key.sh脚本,一次执行了以上三个shell脚本文件(这里保留了deepseek生成的日志色彩配置) ```bash #!/bin/bash # 严格模式:任何命令执行失败 (非零返回值) 或管道命令出错都立即退出脚本 # set -e 确保脚本不会在错误状态下继续运行 # set -o pipefail 确保管道中任何一个命令失败都能被捕获 set -e set -o pipefail # ---------------------------- 预定义颜色输出 ---------------------------- # 统一脚本输出风格,使用不同颜色标识不同级别的日志信息 RED='\033[0;31m' # 错误信息 GREEN='\033[0;32m' # 成功信息 YELLOW='\033[1;33m' # 警告信息 BLUE='\033[0;34m' # 步骤信息 CYAN='\033[0;36m' # 菜单选项 NC='\033[0m' # 重置颜色 echo "1. 正在安装Node.js..." bash ./install_node_js.sh echo "2. 正在安装OpenCode..." bash ./install_opencode.sh echo "3. 正在配置 DeepSeek V4 pro 到 opencode..." bash ./config_opencode_ds.sh ``` # 使用 OpenCode Agent 自动编码项目记录 ## OpenCode 常用流程 + 在终端输入:```opencode``` 命令进入TUI页面 + 在 OpenCode 的 TUI 页面,首先使用 ```/plan``` 命令进行项目的规划,此时不会进行编码 + 完成规划以后,使用 ```/build``` 命令执行编码 ## 简单的商店Demo演示自动编码 ### 首先进入 OpenCode Plan 模式规划 以下是我在 Plan 模式下与 Agent 对话的 prompt + ```text 现在我要写一个简单的前后端演示的商店Demo,让我们开始规划 ``` 输入以上提示词之后,OpenCode让我手动选择技术栈: ![Step1](./res_img/现在我要写一个简单的前后端演示的商店Demo,让我们开始规划.png) + ```text 让我们再完善细节 ``` 输入以上提示词以后,OpenCode向我展示了设计的细节,因为只是简单的demo便没做完善 ![Step2](./res_img/让我们再完善细节.png) + ```text 可以,在完成以后还要进行自动测试并给我测试报告 ``` 输入以上的提示词以后,OpenCode给我补充了测试计划的步骤 ![Step3](./res_img/可以,在完成以后还要进行自动测试并给我测试报告.png) + ```text 好,最后还要实现自动部署,前端使用nginx部署 ``` 输入以上提示词之后,大模型让我选择了自动部署的方式 ![Step4](./res_img/好,最后还要实现自动部署,前端使用nginx部署.png) + ```text 再看看完整的计划 ``` 输入以上的提示词之后,OpenCode再给我展示了完整的流程 ![Step5](./res_img/再看看完整的计划.png) ![Step5-2](./res_img/再看看完整的计划2.png) ### 将OpenCode切到build模式,开始编写项目代码 输入提示词,提示OpenCode开始编程时,OpenCode随即开始了项目的编写。OpenCode依次完成了以下任务: + 项目的初始化 + 数据库的初始化构建 + 编写项目的后端 + 编写项目的前端 + 对项目进行自动化测试 + 自动部署项目(deploy.sh + 修改Nginx配置 + 部署验证) 有以下值得注意的点: + OpenCode在编写完项目的代码之后,首次进行自动化测试时,是测到有9个用例不通过,然后OpenCode对项目的代码进行了修改,再次进行了测试,直到所有的测试用例都测试通过了。 + OpenCode在编写完部署的脚本时,开启自动部署后,对于部署时遇到的问题也自行进行了尝试与修复。 在OpenCode部署时遇到了以下问题: + OpenCode在部署前安装nginx一直安装不上,后续我手动在终端安装了nginx,然后让OpenCode继续后面的流程,这里OpenCode对碰到的问题都自行进行了尝试修复直至项目正常完成了部署,并通过了测试。 + OpenCode部署完项目后没有修改系统的防火墙设置,所以没法在外部访问,这里我首先让OpenCode告诉我访问网页的IP与端口,然后让OpenCode修改防火墙开放以上端口,OpenCode自动完成了对防火墙的修改,然后可以通过IP与端口去访问项目部署后的网页了 + OpenCode 接入deepseek v4时,总是会报以下错误,然后OpenCode流程就断开了: ```bash Bad Request: {'error': {'message': "The content[].thinking in the thinking mode must be passed back to the API.",'type': "invalid_request_error",'param': None,'code': "invalid_request_error"}} ``` 然后,只能手动输入提示词:```继续完成余下所有步骤``` 让大模型继续完成剩余步骤 ## 结果截图展示 ### OpenCode生成的测试用例与结果 + 测试用例展示列表 ![test_list](./res_img/测试1.png) + 测试用例实现代码 ![test_case_code](./res_img/测试2.png) ### OpenCode生成的项目展示 + 商品列表页面 ![shop_list](./res_img/item_list.png) + 商品添加页面 ![product_info](./res_img/item_page.png) + 购物车列表 ![shopping_cart](./res_img/shopping_cart.png) + 订单列表 ![orders](./res_img/orders.png) + 管理员面板 ![manager_dashboard](./res_img/manager.png) + 商品管理页面 ![manage_product](./res_img/Manage_Product.png) + 订单管理面板 ![manager_order](./res_img/manage_order.png)