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 -[![Toonflow 8 分钟快速上手 AI 视频](./docs/videoCover.png)](https://www.bilibili.com/video/BV1oXD7BqEqJ) +https://www.bilibili.com/video/BV1oXD7BqEqJ +[![Toonflow 12 分钟快速上手 AI 视频](./docs/videoCover.jpg)](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) -[![Toonflow 8-Minute AI Video Quick Start](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![Toonflow 12-Minute AI Video Quick Start](./videoCover.jpg)](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) -[![Toonflow 8分でわかるAI動画作成](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![Toonflow 12分でわかるAI動画作成](./videoCover.jpg)](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) -[![Toonflow: Быстрый старт за 8 минут](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![Toonflow: Быстрый старт за 12 минут](./videoCover.jpg)](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) -[![เริ่มต้นสร้างวิดีโอ AI กับ Toonflow ใน 8 นาที](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![เริ่มต้นสร้างวิดีโอ AI กับ Toonflow ใน 12 นาที](./videoCover.jpg)](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) -[![Toonflow - 8 phút làm quen với Video AI](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![Toonflow - 12 phút làm quen với Video AI](./videoCover.jpg)](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** Quét mã QR để xem video 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) -[![Toonflow 8 分鐘快速上手 AI 影片](./videoCover.png)](https://www.bilibili.com/video/BV1na6wB6Ea2) +[https://www.bilibili.com/video/BV1oXD7BqEqJ](https://www.bilibili.com/video/BV1oXD7BqEqJ) +[![Toonflow 12 分鐘快速上手 AI 影片](./videoCover.jpg)](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]); } }