diff --git a/README.md b/README.md
index a762e33..376338d 100644
--- a/README.md
+++ b/README.md
@@ -114,10 +114,10 @@ Toonflow 是面向短剧生产的 AI 工作台,围绕“策划 → 编剧 →
## 📺 视频教程
-https://www.bilibili.com/video/BV1na6wB6Ea2
-[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+https://www.bilibili.com/video/BV1oXD7BqEqJ
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**Toonflow 8 分钟快速上手 AI 视频**
+**Toonflow 12 分钟快速上手 AI 视频**
👉 [点击观看](https://www.bilibili.com/video/BV1oXD7BqEqJ)
📱 手机微信扫码观看
diff --git a/data/version.txt b/data/version.txt
index 1b87bcd..314c3d7 100644
--- a/data/version.txt
+++ b/data/version.txt
@@ -1 +1 @@
-1.1.4
\ No newline at end of file
+1.1.5
\ No newline at end of file
diff --git a/docs/README.en.md b/docs/README.en.md
index a9be70f..7c62fd3 100644
--- a/docs/README.en.md
+++ b/docs/README.en.md
@@ -107,11 +107,11 @@ With Toonflow, you can complete the entire workflow from text to final video wit
## 📺 Video Tutorial
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
**Toonflow: 8-Minute AI Video Quick Start**
-👉 [Click to Watch](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+👉 [Click to Watch](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 Scan the QR code to watch on mobile
diff --git a/docs/README.ja.md b/docs/README.ja.md
index e639351..0bfb112 100644
--- a/docs/README.ja.md
+++ b/docs/README.ja.md
@@ -101,11 +101,11 @@ Toonflow は、AI技術を活用して小説を自動的に脚本へ変換し、
## 📺 動画チュートリアル
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**Toonflow 8分でわかるクイックスタート AI動画作成**
-👉 [クリックして視聴](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+**Toonflow 12分でわかるクイックスタート AI動画作成**
+👉 [クリックして視聴](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 QRコードをスキャンして視聴
diff --git a/docs/README.ru.md b/docs/README.ru.md
index 8b9ba80..e34bc78 100644
--- a/docs/README.ru.md
+++ b/docs/README.ru.md
@@ -105,11 +105,11 @@ Toonflow — это мощный ИИ-инструмент для создани
## 📺 Видеоуроки
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**Toonflow: Быстрый старт в AI-видео за 8 минут**
-👉 [Нажмите для просмотра](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+**Toonflow: Быстрый старт в AI-видео за 12 минут**
+👉 [Нажмите для просмотра](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 Отсканируйте QR-код для просмотра видео на телефоне
diff --git a/docs/README.th.md b/docs/README.th.md
index d14814a..a3c78de 100644
--- a/docs/README.th.md
+++ b/docs/README.th.md
@@ -102,11 +102,11 @@ Toonflow เป็นเครื่องมือ AI สำหรับสร
## 📺 วิดีโอสอนการใช้งาน
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**เริ่มต้นสร้างวิดีโอ AI กับ Toonflow ใน 8 นาที**
-👉 [คลิกเพื่อรับชม](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+**เริ่มต้นสร้างวิดีโอ AI กับ Toonflow ใน 12 นาที**
+👉 [คลิกเพื่อรับชม](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 **สแกน QR Code เพื่อรับชมวิดีโอบนมือถือ**
diff --git a/docs/README.vi.md b/docs/README.vi.md
index c2e2b36..43a50d1 100644
--- a/docs/README.vi.md
+++ b/docs/README.vi.md
@@ -97,11 +97,11 @@ Toonflow là công cụ AI chuyên tạo phim ngắn và truyện tranh, có kh
## 📺 Hướng dẫn bằng Video
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**Toonflow - 8 phút làm quen nhanh với Video AI**
-👉 [Nhấn để xem](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+**Toonflow - 12 phút làm quen nhanh với Video AI**
+👉 [Nhấn để xem](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 **Quét mã QR để xem video trên điện thoại**
diff --git a/docs/README.zhtw.md b/docs/README.zhtw.md
index 4c760aa..18e394e 100644
--- a/docs/README.zhtw.md
+++ b/docs/README.zhtw.md
@@ -104,11 +104,11 @@ Toonflow 是一款 AI 短劇與漫畫創作工具,能夠利用 AI 技術將小
## 📺 影片教學
-[https://www.bilibili.com/video/BV1na6wB6Ea2](https://www.bilibili.com/video/BV1na6wB6Ea2)
-[](https://www.bilibili.com/video/BV1na6wB6Ea2)
+[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ)
+[](https://www.bilibili.com/video/BV1oXD7BqEqJ)
-**Toonflow 8 分鐘快速上手 AI 影片**
-👉 [點擊觀看](https://www.bilibili.com/video/BV1na6wB6Ea2/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
+**Toonflow 12 分鐘快速上手 AI 影片**
+👉 [點擊觀看](https://www.bilibili.com/video/BV1oXD7BqEqJ/?share_source=copy_web&vd_source=5b718c25439a901a34c7bc0c1d35b38e)
📱 使用手機掃描 QR Code 觀看
diff --git a/docs/videoCover.jpg b/docs/videoCover.jpg
new file mode 100644
index 0000000..bf87f66
Binary files /dev/null and b/docs/videoCover.jpg differ
diff --git a/docs/videoCover.png b/docs/videoCover.png
deleted file mode 100644
index a6aa056..0000000
Binary files a/docs/videoCover.png and /dev/null differ
diff --git a/package.json b/package.json
index 001e568..4341097 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "toonflow",
- "version": "1.1.4",
+ "version": "1.1.5",
"description": "Toonflow 是一款 AI 短剧漫剧工具,能够利用 AI 技术将小说自动转化为剧本,并结合 AI 生成的图片和视频,实现高效的短剧创作。",
"author": "HBAI-Ltd ",
"license": "Apache-2.0",
diff --git a/src/router.ts b/src/router.ts
index 6b6e7c3..9e9129a 100644
--- a/src/router.ts
+++ b/src/router.ts
@@ -1,4 +1,4 @@
-// @routes-hash 03f1781a722f0e9e08213aec7ac1c10c
+// @routes-hash 9d985ef3adbb99ec14da4f4f03dc24db
import { Express } from "express";
import route1 from "./routes/agents/clearMemory";
@@ -102,50 +102,51 @@ import route98 from "./routes/script/batchAddScript";
import route99 from "./routes/script/delScript";
import route100 from "./routes/script/exportScript";
import route101 from "./routes/script/extractAssets";
-import route102 from "./routes/script/getScrptApi";
-import route103 from "./routes/script/pollScriptAssets";
-import route104 from "./routes/script/updateScript";
-import route105 from "./routes/scriptAgent/getPlanData";
-import route106 from "./routes/scriptAgent/setPlanData";
-import route107 from "./routes/scriptAgent/updateData";
-import route108 from "./routes/setting/about/checkUpdate";
-import route109 from "./routes/setting/about/downloadApp";
-import route110 from "./routes/setting/agentDeploy/agentSetKey";
-import route111 from "./routes/setting/agentDeploy/deployAgentModel";
-import route112 from "./routes/setting/agentDeploy/getAgentDeploy";
-import route113 from "./routes/setting/dbConfig/clearData";
-import route114 from "./routes/setting/dev/getSwitchAiDevTool";
-import route115 from "./routes/setting/dev/updateSwitchAiDevTool";
-import route116 from "./routes/setting/fileManagement/openFolder";
-import route117 from "./routes/setting/getTextModel";
-import route118 from "./routes/setting/loginConfig/getUser";
-import route119 from "./routes/setting/loginConfig/updateUserPwd";
-import route120 from "./routes/setting/memoryConfig/delAllMemory";
-import route121 from "./routes/setting/memoryConfig/getMemory";
-import route122 from "./routes/setting/memoryConfig/sureMemory";
-import route123 from "./routes/setting/modelMap/bindingPrompt";
-import route124 from "./routes/setting/modelMap/getImageAndVideoModel";
-import route125 from "./routes/setting/promptManage/getPrompt";
-import route126 from "./routes/setting/promptManage/updatePrompt";
-import route127 from "./routes/setting/skillManagement/getSkillContent";
-import route128 from "./routes/setting/skillManagement/getSkillList";
-import route129 from "./routes/setting/skillManagement/saveSkillContent";
-import route130 from "./routes/setting/vendorConfig/addVendor";
-import route131 from "./routes/setting/vendorConfig/addVendorModel";
-import route132 from "./routes/setting/vendorConfig/deleteVendor";
-import route133 from "./routes/setting/vendorConfig/delVendorModel";
-import route134 from "./routes/setting/vendorConfig/enableVendor";
-import route135 from "./routes/setting/vendorConfig/getCodeByLink";
-import route136 from "./routes/setting/vendorConfig/getVendorList";
-import route137 from "./routes/setting/vendorConfig/modelTest";
-import route138 from "./routes/setting/vendorConfig/updateCode";
-import route139 from "./routes/setting/vendorConfig/updateVendorInputs";
-import route140 from "./routes/setting/vendorConfig/upVendorModel";
-import route141 from "./routes/task/getProject";
-import route142 from "./routes/task/getTaskApi";
-import route143 from "./routes/task/getTaskCategories";
-import route144 from "./routes/task/taskDetails";
-import route145 from "./routes/test/test";
+import route102 from "./routes/script/getAiRegex";
+import route103 from "./routes/script/getScrptApi";
+import route104 from "./routes/script/pollScriptAssets";
+import route105 from "./routes/script/updateScript";
+import route106 from "./routes/scriptAgent/getPlanData";
+import route107 from "./routes/scriptAgent/setPlanData";
+import route108 from "./routes/scriptAgent/updateData";
+import route109 from "./routes/setting/about/checkUpdate";
+import route110 from "./routes/setting/about/downloadApp";
+import route111 from "./routes/setting/agentDeploy/agentSetKey";
+import route112 from "./routes/setting/agentDeploy/deployAgentModel";
+import route113 from "./routes/setting/agentDeploy/getAgentDeploy";
+import route114 from "./routes/setting/dbConfig/clearData";
+import route115 from "./routes/setting/dev/getSwitchAiDevTool";
+import route116 from "./routes/setting/dev/updateSwitchAiDevTool";
+import route117 from "./routes/setting/fileManagement/openFolder";
+import route118 from "./routes/setting/getTextModel";
+import route119 from "./routes/setting/loginConfig/getUser";
+import route120 from "./routes/setting/loginConfig/updateUserPwd";
+import route121 from "./routes/setting/memoryConfig/delAllMemory";
+import route122 from "./routes/setting/memoryConfig/getMemory";
+import route123 from "./routes/setting/memoryConfig/sureMemory";
+import route124 from "./routes/setting/modelMap/bindingPrompt";
+import route125 from "./routes/setting/modelMap/getImageAndVideoModel";
+import route126 from "./routes/setting/promptManage/getPrompt";
+import route127 from "./routes/setting/promptManage/updatePrompt";
+import route128 from "./routes/setting/skillManagement/getSkillContent";
+import route129 from "./routes/setting/skillManagement/getSkillList";
+import route130 from "./routes/setting/skillManagement/saveSkillContent";
+import route131 from "./routes/setting/vendorConfig/addVendor";
+import route132 from "./routes/setting/vendorConfig/addVendorModel";
+import route133 from "./routes/setting/vendorConfig/deleteVendor";
+import route134 from "./routes/setting/vendorConfig/delVendorModel";
+import route135 from "./routes/setting/vendorConfig/enableVendor";
+import route136 from "./routes/setting/vendorConfig/getCodeByLink";
+import route137 from "./routes/setting/vendorConfig/getVendorList";
+import route138 from "./routes/setting/vendorConfig/modelTest";
+import route139 from "./routes/setting/vendorConfig/updateCode";
+import route140 from "./routes/setting/vendorConfig/updateVendorInputs";
+import route141 from "./routes/setting/vendorConfig/upVendorModel";
+import route142 from "./routes/task/getProject";
+import route143 from "./routes/task/getTaskApi";
+import route144 from "./routes/task/getTaskCategories";
+import route145 from "./routes/task/taskDetails";
+import route146 from "./routes/test/test";
export default async (app: Express) => {
app.use("/api/agents/clearMemory", route1);
@@ -249,48 +250,49 @@ export default async (app: Express) => {
app.use("/api/script/delScript", route99);
app.use("/api/script/exportScript", route100);
app.use("/api/script/extractAssets", route101);
- app.use("/api/script/getScrptApi", route102);
- app.use("/api/script/pollScriptAssets", route103);
- app.use("/api/script/updateScript", route104);
- app.use("/api/scriptAgent/getPlanData", route105);
- app.use("/api/scriptAgent/setPlanData", route106);
- app.use("/api/scriptAgent/updateData", route107);
- app.use("/api/setting/about/checkUpdate", route108);
- app.use("/api/setting/about/downloadApp", route109);
- app.use("/api/setting/agentDeploy/agentSetKey", route110);
- app.use("/api/setting/agentDeploy/deployAgentModel", route111);
- app.use("/api/setting/agentDeploy/getAgentDeploy", route112);
- app.use("/api/setting/dbConfig/clearData", route113);
- app.use("/api/setting/dev/getSwitchAiDevTool", route114);
- app.use("/api/setting/dev/updateSwitchAiDevTool", route115);
- app.use("/api/setting/fileManagement/openFolder", route116);
- app.use("/api/setting/getTextModel", route117);
- app.use("/api/setting/loginConfig/getUser", route118);
- app.use("/api/setting/loginConfig/updateUserPwd", route119);
- app.use("/api/setting/memoryConfig/delAllMemory", route120);
- app.use("/api/setting/memoryConfig/getMemory", route121);
- app.use("/api/setting/memoryConfig/sureMemory", route122);
- app.use("/api/setting/modelMap/bindingPrompt", route123);
- app.use("/api/setting/modelMap/getImageAndVideoModel", route124);
- app.use("/api/setting/promptManage/getPrompt", route125);
- app.use("/api/setting/promptManage/updatePrompt", route126);
- app.use("/api/setting/skillManagement/getSkillContent", route127);
- app.use("/api/setting/skillManagement/getSkillList", route128);
- app.use("/api/setting/skillManagement/saveSkillContent", route129);
- app.use("/api/setting/vendorConfig/addVendor", route130);
- app.use("/api/setting/vendorConfig/addVendorModel", route131);
- app.use("/api/setting/vendorConfig/deleteVendor", route132);
- app.use("/api/setting/vendorConfig/delVendorModel", route133);
- app.use("/api/setting/vendorConfig/enableVendor", route134);
- app.use("/api/setting/vendorConfig/getCodeByLink", route135);
- app.use("/api/setting/vendorConfig/getVendorList", route136);
- app.use("/api/setting/vendorConfig/modelTest", route137);
- app.use("/api/setting/vendorConfig/updateCode", route138);
- app.use("/api/setting/vendorConfig/updateVendorInputs", route139);
- app.use("/api/setting/vendorConfig/upVendorModel", route140);
- app.use("/api/task/getProject", route141);
- app.use("/api/task/getTaskApi", route142);
- app.use("/api/task/getTaskCategories", route143);
- app.use("/api/task/taskDetails", route144);
- app.use("/api/test/test", route145);
+ app.use("/api/script/getAiRegex", route102);
+ app.use("/api/script/getScrptApi", route103);
+ app.use("/api/script/pollScriptAssets", route104);
+ app.use("/api/script/updateScript", route105);
+ app.use("/api/scriptAgent/getPlanData", route106);
+ app.use("/api/scriptAgent/setPlanData", route107);
+ app.use("/api/scriptAgent/updateData", route108);
+ app.use("/api/setting/about/checkUpdate", route109);
+ app.use("/api/setting/about/downloadApp", route110);
+ app.use("/api/setting/agentDeploy/agentSetKey", route111);
+ app.use("/api/setting/agentDeploy/deployAgentModel", route112);
+ app.use("/api/setting/agentDeploy/getAgentDeploy", route113);
+ app.use("/api/setting/dbConfig/clearData", route114);
+ app.use("/api/setting/dev/getSwitchAiDevTool", route115);
+ app.use("/api/setting/dev/updateSwitchAiDevTool", route116);
+ app.use("/api/setting/fileManagement/openFolder", route117);
+ app.use("/api/setting/getTextModel", route118);
+ app.use("/api/setting/loginConfig/getUser", route119);
+ app.use("/api/setting/loginConfig/updateUserPwd", route120);
+ app.use("/api/setting/memoryConfig/delAllMemory", route121);
+ app.use("/api/setting/memoryConfig/getMemory", route122);
+ app.use("/api/setting/memoryConfig/sureMemory", route123);
+ app.use("/api/setting/modelMap/bindingPrompt", route124);
+ app.use("/api/setting/modelMap/getImageAndVideoModel", route125);
+ app.use("/api/setting/promptManage/getPrompt", route126);
+ app.use("/api/setting/promptManage/updatePrompt", route127);
+ app.use("/api/setting/skillManagement/getSkillContent", route128);
+ app.use("/api/setting/skillManagement/getSkillList", route129);
+ app.use("/api/setting/skillManagement/saveSkillContent", route130);
+ app.use("/api/setting/vendorConfig/addVendor", route131);
+ app.use("/api/setting/vendorConfig/addVendorModel", route132);
+ app.use("/api/setting/vendorConfig/deleteVendor", route133);
+ app.use("/api/setting/vendorConfig/delVendorModel", route134);
+ app.use("/api/setting/vendorConfig/enableVendor", route135);
+ app.use("/api/setting/vendorConfig/getCodeByLink", route136);
+ app.use("/api/setting/vendorConfig/getVendorList", route137);
+ app.use("/api/setting/vendorConfig/modelTest", route138);
+ app.use("/api/setting/vendorConfig/updateCode", route139);
+ app.use("/api/setting/vendorConfig/updateVendorInputs", route140);
+ app.use("/api/setting/vendorConfig/upVendorModel", route141);
+ app.use("/api/task/getProject", route142);
+ app.use("/api/task/getTaskApi", route143);
+ app.use("/api/task/getTaskCategories", route144);
+ app.use("/api/task/taskDetails", route145);
+ app.use("/api/test/test", route146);
}
diff --git a/src/routes/script/getAiRegex.ts b/src/routes/script/getAiRegex.ts
new file mode 100644
index 0000000..ad79409
--- /dev/null
+++ b/src/routes/script/getAiRegex.ts
@@ -0,0 +1,35 @@
+import express from "express";
+import u from "@/utils";
+import { z } from "zod";
+import { success } from "@/lib/responseFormat";
+import { validateFields } from "@/middleware/middleware";
+const router = express.Router();
+
+export default router.post(
+ "/",
+ validateFields({
+ content: z.string(),
+ }),
+ async (req, res) => {
+ const { content } = req.body;
+ const systemPrompt = `你是一个正则表达式专家。用户会提供一段剧本文本,你需要分析其中的集/章节分隔模式,返回一个JavaScript正则表达式字符串。
+
+要求:
+1. 正则必须包含两个捕获组:第一个捕获组匹配集数/章节编号(数字或中文数字),第二个捕获组匹配该集的标题/名称(scriptName)。
+2. 返回格式为 /正则表达式/g,例如:/第\s*([0-9一二三四五六七八九十百千万]+)\s*集\s*([^\n\r]*)/g
+3. 只返回正则表达式字符串本身,不要有任何其他解释文字或markdown格式。
+4. 如果文本中没有明显的章节分隔模式,返回空字符串。`;
+
+ const resText = await u.Ai.Text("universalAi").invoke({
+ system: systemPrompt,
+ messages: [
+ {
+ role: "user",
+ content: content.slice(0, 2000),
+ },
+ ],
+ });
+ const result = (resText.text || "").trim();
+ res.status(200).send(success(result));
+ },
+);
diff --git a/src/utils/ai.ts b/src/utils/ai.ts
index f2ca25c..91b4664 100644
--- a/src/utils/ai.ts
+++ b/src/utils/ai.ts
@@ -105,7 +105,8 @@ class AiText {
...(input.tools && { stopWhen: stepCountIs(Object.keys(input.tools).length * 50) }),
...input,
model: await this.resolveModel(),
- temperature: 2,
+ temperature: 1,
+ maxOutputTokens: 8129,
} as Parameters[0]);
}
async stream(input: Omit[0], "model">) {
@@ -113,9 +114,8 @@ class AiText {
...(input.tools && { stopWhen: stepCountIs(Object.keys(input.tools).length * 50) }),
...input,
model: await this.resolveModel(extractReasoningMiddleware({ tagName: "reasoning_content", separator: "\n" })),
- topP: 1,
- temperature: 2,
- maxOutputTokens: 9999999999,
+ temperature: 1,
+ maxOutputTokens: 8129,
} as Parameters[0]);
}
}