combine_table.mjs 15 KB

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