combine_flows.mjs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. import { HumanMessage, SystemMessage } from "langchain/schema"
  2. import { llm, conversation } from "./llm.mjs"
  3. import fs from "fs"
  4. import dedent from "dedent"
  5. const flows = JSON.parse(fs.readFileSync("./flows.json").toString())
  6. const title = "《thinkphp5鲜花销售管理系统》"
  7. const desc = dedent`- 管理员:登录、个人中心、用户管理、鲜花分类管理、鲜花信息管理、鲜花信息、用户留言管理、特殊服务管理、系统管理、订单管理。
  8. - 用户:注册、登录、个人中心、鲜花信息、花语公告、后台管理、购物车、联系客服、我的订单、我的地址、我的收藏。`
  9. const chapters = [
  10. {
  11. title: "第一章概述",
  12. content: dedent`# 第一章 概述
  13. ## 1.1 研究背景
  14. 随着互联网的快速发展,电子商务已经成为了现代生活中不可或缺的一部分。鲜花销售作为传统的商业领域之一,也逐渐适应了电子商务的趋势,鲜花销售网站应运而生。然而,现有的鲜花销售网站存在一些问题,例如用户体验差、功能不完善、管理不便等,导致用户体验不佳与业务管理效率低下。
  15. 为了解决这些问题,本毕业设计提出了一个基于thinkphp5框架的鲜花销售管理系统,旨在提供一个功能齐全、用户友好且管理便利的鲜花销售平台。
  16. ## 1.2 研究目标
  17. 本毕业设计的目标是设计和实现一个完整的鲜花销售管理系统,该系统能够提供以下功能:
  18. - 管理员登录、个人中心、用户管理、鲜花分类管理、鲜花信息管理、用户留言管理、特殊服务管理、系统管理、订单管理等管理功能。
  19. - 用户注册、登录、个人中心、鲜花信息浏览、花语公告查看、后台管理、购物车操作、联系客服、我的订单管理、地址管理、收藏管理等用户功能。
  20. 通过该系统,管理员可以方便地管理鲜花销售业务,用户可以享受到更好的购物体验。
  21. ## 1.3 研究方法
  22. 本毕业设计将采用以下方法来实现研究目标:
  23. 1. 调研和分析现有的鲜花销售网站,了解其功能和不足之处。
  24. 2. 使用thinkphp5框架进行系统开发,该框架具有良好的开发效率和可维护性。
  25. 3. 进行系统设计和数据库设计,确保系统的可扩展性和性能。
  26. 4. 实现系统功能,并进行系统测试和调优,确保系统的稳定性和性能。
  27. 5. 对系统进行实际应用测试和用户反馈收集,以评估系统的使用效果和满意度。
  28. ## 1.4 研究意义
  29. 本毕业设计的完成具有以下几个意义:
  30. 1. 提供了一个方便快捷的鲜花销售平台,方便用户进行鲜花订购和管理。
  31. 2. 提升了鲜花销售网站的用户体验,使用户可以更加方便地浏览和购买鲜花。
  32. 3. 提高了鲜花销售平台的管理效率,减少了人力成本和业务管理难度。
  33. 4. 推动了thinkphp5框架在电子商务领域的应用和推广。
  34. 通过本毕业设计的研究和实践,将进一步提升对鲜花销售管理系统的理解和应用能力,为相关学科的研究和发展做出贡献。
  35. ## 1.5 论文结构
  36. 本论文共分为以下几个章节:
  37. - 第一章 概述:介绍本毕业设计的研究背景、目标、方法、意义和论文结构。
  38. - 第二章 关键技术介绍:介绍论文中用到的关键技术,包括thinkphp5框架、数据库设计等。
  39. - 第三章 系统分析:对鲜花销售管理系统进行需求分析和功能设计。
  40. - 第四章 系统设计:详细讨论系统的架构设计和数据库设计。
  41. - 第五章 系统实现:具体介绍系统的实现过程和关键代码。
  42. - 第六章 系统测试:对系统进行功能测试和性能测试。
  43. - 结论:总结全文并提出后续工作的展望。
  44. - 参考文献:列出本论文中所引用的相关文献。
  45. - 致谢:对为论文完成提供帮助和支持的人表示感谢。
  46. 通过以上结构,全面而系统地介绍论文的研究内容,使读者能够全面了解和理解本毕业设计的研究成果。`
  47. },
  48. {
  49. title: "第二章关键技术介绍",
  50. content: dedent`# 第二章 关键技术介绍
  51. 在本毕业设计中,我们将使用一些关键技术来实现鲜花销售管理系统。本章将介绍这些关键技术,并说明它们在系统设计和开发中的作用。
  52. ## 2.1 ThinkPHP5框架
  53. ThinkPHP5是一款基于PHP的开源Web应用框架,由于其高效、简便、灵活的特性而被广泛应用于PHP应用程序的开发。本项目选择ThinkPHP5作为开发框架,主要原因有以下几点:
  54. 1. **高效性**:ThinkPHP5采用面向对象的开发方式,拥有一套强大且高效的MVC架构,能够快速进行开发。框架根据数据和控制器之间的映射关系,自动生成了一套高效且优雅的URL规则。
  55. 2. **灵活性**:ThinkPHP5提供了丰富的扩展机制和插件支持,可以方便地进行二次开发和功能扩展。同时,框架还支持多种视图引擎,如PHP原生模板引擎、Smarty模板引擎等,开发者可以根据需要选择最合适的视图引擎。
  56. 3. **安全性**:ThinkPHP5内置了一系列安全机制,如XSS过滤、CSRF防护、SQL注入防范等,能够有效保护网站的安全性。此外,框架还支持对用户输入进行验证和过滤,防止恶意用户的攻击。
  57. 4. **易学易用**:ThinkPHP5的代码结构清晰、规范明确,具有很好的可读性和可维护性。同时,框架还提供了丰富的文档和示例,方便开发者学习和使用。
  58. ## 2.2 数据库设计
  59. 在鲜花销售管理系统中,使用数据库存储和管理数据是必不可少的。在本项目中,我们将使用MySQL作为数据库管理系统,进行数据的存储和操作。
  60. 数据库的设计是系统中最为重要的一环,合理的数据库设计能够提高系统的性能和扩展性。我们将设计以下几个主要的数据库表:
  61. 1. **管理员表**(admin):存储系统管理员的相关信息,包括管理员ID、用户名、密码等。
  62. 2. **用户表**(user):存储用户的注册信息,包括用户ID、用户名、密码、手机号码等。
  63. 3. **鲜花分类表**(flower_category):存储鲜花的分类信息,包括分类ID、分类名称、分类描述等。
  64. 4. **鲜花信息表**(flower):存储鲜花的详细信息,包括鲜花ID、鲜花名称、鲜花价格、鲜花分类ID等。
  65. 5. **用户留言表**(message):存储用户留言信息,包括留言ID、用户ID、留言内容、留言时间等。
  66. 6. **特殊服务表**(special_service):存储特殊服务的信息,包括服务ID、服务名称、服务价格等。
  67. 7. **系统设置表**(system_config):存储系统的相关设置,包括系统ID、系统名称、系统参数等。
  68. 8. **订单表**(order):存储用户的订单信息,包括订单ID、用户ID、下单时间、订单状态等。
  69. 通过合理的数据库设计,能够提高系统数据的组织性和检索性能,便于数据的管理和操作。
  70. ## 2.3 其他技术
  71. 除了上述两个关键技术外,还会使用到一些其他技术来实现鲜花销售管理系统:
  72. 1. **HTML/CSS/JavaScript**:用于前端页面的布局和交互效果,提供用户友好的界面。
  73. 2. **jQuery**:一个轻量级的JavaScript库,简化了JavaScript的开发过程,提供了丰富的插件和UI组件。
  74. 3. **Bootstrap**:一个流行的前端开发框架,提供了响应式布局和丰富的页面组件,简化了前端开发的过程。
  75. 4. **AJAX**:用于实现异步加载数据,提高系统的响应速度和用户体验。
  76. 5. **Git**:用于版本控制和团队协作,方便多人开发时的代码管理和合并。
  77. 通过使用这些关键技术和工具,能够使鲜花销售管理系统在功能、性能和用户体验上达到更好的效果。
  78. 本章对本毕业设计中用到的关键技术进行了介绍,包括ThinkPHP5框架的特点和优势,数据库设计的重要性,以及其他技术的使用。这些技术将在后续章节中被具体应用于系统的设计和实现中。`
  79. },
  80. {
  81. title: "第三章系统分析",
  82. sections: [
  83. {
  84. title: "3.1 系统概述"
  85. },
  86. {
  87. title: "3.2 需求分析"
  88. },
  89. {
  90. title: "3.3 可行性分析"
  91. },
  92. {
  93. title: "3.4 系统修成分析"
  94. },
  95. {
  96. title: "3.5 本章小节"
  97. }
  98. ]
  99. },
  100. {
  101. title: "第四章系统设计"
  102. },
  103. {
  104. title: "第五章系统实现"
  105. },
  106. {
  107. title: "第六章系统测试"
  108. },
  109. {
  110. title: "结论"
  111. },
  112. {
  113. title: "参考文献"
  114. },
  115. {
  116. title: "致谢"
  117. }
  118. ]
  119. const { chain, memory } =
  120. conversation(dedent`你是一个计算机专业擅长写毕业论文的专家,你的任务是帮我的毕业设计撰写一篇论文
  121. 我的毕业设计项目是${title}
  122. 这个项目包含以下功能:${desc}
  123. 现在我们已经为论文拟好了一个大纲:
  124. ${chapters.map((i) => `- ${i.title}`).join("\n")}
  125. 现在我们来一步一步的编写这篇论文
  126. 请严格按照markdown格式返回内容`)
  127. memory.saveContext(
  128. { input: "现在我们来编写第二章关键技术介绍" },
  129. {
  130. response: dedent`# 第二章 关键技术介绍
  131. 在本毕业设计中,我们将使用一些关键技术来实现鲜花销售管理系统。本章将介绍这些关键技术,并说明它们在系统设计和开发中的作用。
  132. ## 2.1 ThinkPHP5框架
  133. ThinkPHP5是一款基于PHP的开源Web应用框架,由于其高效、简便、灵活的特性而被广泛应用于PHP应用程序的开发。本项目选择ThinkPHP5作为开发框架,主要原因有以下几点:
  134. 1. **高效性**:ThinkPHP5采用面向对象的开发方式,拥有一套强大且高效的MVC架构,能够快速进行开发。框架根据数据和控制器之间的映射关系,自动生成了一套高效且优雅的URL规则。
  135. 2. **灵活性**:ThinkPHP5提供了丰富的扩展机制和插件支持,可以方便地进行二次开发和功能扩展。同时,框架还支持多种视图引擎,如PHP原生模板引擎、Smarty模板引擎等,开发者可以根据需要选择最合适的视图引擎。
  136. 3. **安全性**:ThinkPHP5内置了一系列安全机制,如XSS过滤、CSRF防护、SQL注入防范等,能够有效保护网站的安全性。此外,框架还支持对用户输入进行验证和过滤,防止恶意用户的攻击。
  137. 4. **易学易用**:ThinkPHP5的代码结构清晰、规范明确,具有很好的可读性和可维护性。同时,框架还提供了丰富的文档和示例,方便开发者学习和使用。
  138. ## 2.2 数据库设计
  139. 在鲜花销售管理系统中,使用数据库存储和管理数据是必不可少的。在本项目中,我们将使用MySQL作为数据库管理系统,进行数据的存储和操作。
  140. 数据库的设计是系统中最为重要的一环,合理的数据库设计能够提高系统的性能和扩展性。我们将设计以下几个主要的数据库表:
  141. 1. **管理员表**(admin):存储系统管理员的相关信息,包括管理员ID、用户名、密码等。
  142. 2. **用户表**(user):存储用户的注册信息,包括用户ID、用户名、密码、手机号码等。
  143. 3. **鲜花分类表**(flower_category):存储鲜花的分类信息,包括分类ID、分类名称、分类描述等。
  144. 4. **鲜花信息表**(flower):存储鲜花的详细信息,包括鲜花ID、鲜花名称、鲜花价格、鲜花分类ID等。
  145. 5. **用户留言表**(message):存储用户留言信息,包括留言ID、用户ID、留言内容、留言时间等。
  146. 6. **特殊服务表**(special_service):存储特殊服务的信息,包括服务ID、服务名称、服务价格等。
  147. 7. **系统设置表**(system_config):存储系统的相关设置,包括系统ID、系统名称、系统参数等。
  148. 8. **订单表**(order):存储用户的订单信息,包括订单ID、用户ID、下单时间、订单状态等。
  149. 通过合理的数据库设计,能够提高系统数据的组织性和检索性能,便于数据的管理和操作。
  150. ## 2.3 其他技术
  151. 除了上述两个关键技术外,还会使用到一些其他技术来实现鲜花销售管理系统:
  152. 1. **HTML/CSS/JavaScript**:用于前端页面的布局和交互效果,提供用户友好的界面。
  153. 2. **jQuery**:一个轻量级的JavaScript库,简化了JavaScript的开发过程,提供了丰富的插件和UI组件。
  154. 3. **Bootstrap**:一个流行的前端开发框架,提供了响应式布局和丰富的页面组件,简化了前端开发的过程。
  155. 4. **AJAX**:用于实现异步加载数据,提高系统的响应速度和用户体验。
  156. 5. **Git**:用于版本控制和团队协作,方便多人开发时的代码管理和合并。
  157. 通过使用这些关键技术和工具,能够使鲜花销售管理系统在功能、性能和用户体验上达到更好的效果。
  158. 本章对本毕业设计中用到的关键技术进行了介绍,包括ThinkPHP5框架的特点和优势,数据库设计的重要性,以及其他技术的使用。这些技术将在后续章节中被具体应用于系统的设计和实现中。`
  159. }
  160. )
  161. console.log((await memory.chatHistory.getMessages())[0])
  162. process.exit()
  163. const { content } = await llm.call([
  164. new SystemMessage(dedent`你是一个计算机专业擅长写毕业论文的专家,你的任务是帮我的毕业设计撰写一篇论文
  165. 我的毕业设计项目是${title}
  166. 这个项目包含以下功能:${desc}
  167. 现在我们已经为论文拟好了一个大纲:
  168. ${chapters.map((i) => `- ${i.title}`).join("\n")}
  169. 现在我们来一步一步的编写这篇论文
  170. 请严格按照markdown格式返回内容`),
  171. new HumanMessage(dedent`现在我们来编写第三章系统分析,这一章节内容较多,我们可以分成几个小节来写
  172. 3.1 系统概述
  173. 3.2 需求分析
  174. 3.3 可行性分析
  175. 3.4 系统流程分析
  176. 3.5 本章小节
  177. 现在我们来编写第三章系统分析的第4小节: 3.4 系统流程分析
  178. 我已为你绘制好了以下几个流程图
  179. ${flows
  180. .map((i) => {
  181. return dedent`- ![${i.name}](${i.url})
  182. ${i.desc}`
  183. })
  184. .join("\n")}
  185. 请你帮我完成这个小节的内容, 请确保附上我提供的图片`)
  186. ])
  187. console.log(response)