|
@@ -4,6 +4,8 @@ import { createFlow } from './flow'
|
|
|
import { createER } from './er'
|
|
import { createER } from './er'
|
|
|
import { createTable } from './table'
|
|
import { createTable } from './table'
|
|
|
import { uploadDoc } from './upload'
|
|
import { uploadDoc } from './upload'
|
|
|
|
|
+import { createArch } from './arch'
|
|
|
|
|
+import { createAbstract } from './abstract'
|
|
|
|
|
|
|
|
export async function genPaper(title: string, desc: string) {
|
|
export async function genPaper(title: string, desc: string) {
|
|
|
const tools = createLLM()
|
|
const tools = createLLM()
|
|
@@ -66,11 +68,15 @@ export async function genPaper(title: string, desc: string) {
|
|
|
]
|
|
]
|
|
|
let paper = new WritableStreamBuffer()
|
|
let paper = new WritableStreamBuffer()
|
|
|
const startTime = Date.now()
|
|
const startTime = Date.now()
|
|
|
|
|
+
|
|
|
|
|
+ paper.write(`${await createAbstract(tools, title, desc)}\n\n`)
|
|
|
|
|
+
|
|
|
const { chain, memory } = conversation(`你是一个计算机专业擅长写毕业论文的专家,你的任务是帮我的毕业设计撰写一篇论文
|
|
const { chain, memory } = conversation(`你是一个计算机专业擅长写毕业论文的专家,你的任务是帮我的毕业设计撰写一篇论文
|
|
|
我的毕业设计项目是${title}
|
|
我的毕业设计项目是${title}
|
|
|
这个项目包含以下功能:${desc}
|
|
这个项目包含以下功能:${desc}
|
|
|
现在我们已经为论文拟好了一个大纲:
|
|
现在我们已经为论文拟好了一个大纲:
|
|
|
${chapters.map((i) => `- ${i.title}`).join('\n')}
|
|
${chapters.map((i) => `- ${i.title}`).join('\n')}
|
|
|
|
|
+
|
|
|
现在我们来一步一步的编写这篇论文
|
|
现在我们来一步一步的编写这篇论文
|
|
|
请严格按照markdown格式返回内容`)
|
|
请严格按照markdown格式返回内容`)
|
|
|
|
|
|
|
@@ -83,7 +89,13 @@ ${chapters.map((i) => `- ${i.title}`).join('\n')}
|
|
|
${chapters[i].sections.map((i) => i.title).join('\n')}\n`
|
|
${chapters[i].sections.map((i) => i.title).join('\n')}\n`
|
|
|
}
|
|
}
|
|
|
input += `现在我们来编写${chapters[i].title}的第${j + 1}小节: ${chapters[i].sections[j].title}`
|
|
input += `现在我们来编写${chapters[i].title}的第${j + 1}小节: ${chapters[i].sections[j].title}`
|
|
|
|
|
+ if (j === 0) {
|
|
|
|
|
+ const arch = await createArch(tools, title, desc)
|
|
|
|
|
+ input += `\n我已为你绘制好了以下总体结构图:
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
+请你帮我完成第${j + 1}小节: ${chapters[i].sections[j].title}的内容,请确保附上我提供的总体结构图`
|
|
|
|
|
+ }
|
|
|
if (j === 3) {
|
|
if (j === 3) {
|
|
|
const flows = await createFlow(tools, title, desc)
|
|
const flows = await createFlow(tools, title, desc)
|
|
|
input += `\n我已为你绘制好了以下几个流程图
|
|
input += `\n我已为你绘制好了以下几个流程图
|
|
@@ -93,6 +105,7 @@ ${flows
|
|
|
${i.desc}`
|
|
${i.desc}`
|
|
|
})
|
|
})
|
|
|
.join('\n\n')}
|
|
.join('\n\n')}
|
|
|
|
|
+
|
|
|
请你帮我完成第${j + 1}小节: ${chapters[i].sections[j].title}的内容,请确保附上我提供的图片`
|
|
请你帮我完成第${j + 1}小节: ${chapters[i].sections[j].title}的内容,请确保附上我提供的图片`
|
|
|
}
|
|
}
|
|
|
let { response } = await chain.call({
|
|
let { response } = await chain.call({
|
|
@@ -110,7 +123,7 @@ ${i.desc}`
|
|
|
input += `现在我们来编写第四章系统设计,这一章节内容较多,我们可以分成几个小节来写:
|
|
input += `现在我们来编写第四章系统设计,这一章节内容较多,我们可以分成几个小节来写:
|
|
|
${chapters[i].sections.map((i) => i.title).join('\n')}\n`
|
|
${chapters[i].sections.map((i) => i.title).join('\n')}\n`
|
|
|
}
|
|
}
|
|
|
- input += `现在我们来编写${chapters[i].title}的第${j + 1}小节: ${chapters[i].sections[j].title}`
|
|
|
|
|
|
|
+ input += `\n现在我们来编写${chapters[i].title}的第${j + 1}小节: ${chapters[i].sections[j].title}`
|
|
|
|
|
|
|
|
if (j === 1) {
|
|
if (j === 1) {
|
|
|
const er = await createER(tools, title, desc)
|
|
const er = await createER(tools, title, desc)
|
|
@@ -118,7 +131,7 @@ ${chapters[i].sections.map((i) => i.title).join('\n')}\n`
|
|
|
input += `\n本小节分为以下几个部分:
|
|
input += `\n本小节分为以下几个部分:
|
|
|
${chapters[i].sections[j].sections.map((i) => `- ${i.title}`).join('\n')}
|
|
${chapters[i].sections[j].sections.map((i) => `- ${i.title}`).join('\n')}
|
|
|
|
|
|
|
|
-我已为你绘制好了以下几个E-R图图
|
|
|
|
|
|
|
+我已为你绘制好了以下几个E-R图
|
|
|
${er
|
|
${er
|
|
|
.map((i) => {
|
|
.map((i) => {
|
|
|
return `- 
|
|
return `- 
|