矫正命名规范
This commit is contained in:
parent
35993e7bfe
commit
e949277899
@ -21,7 +21,7 @@ description: >
|
||||
### 提取衍生资产流程
|
||||
|
||||
1. 调用 `get_flowData` 分别获取 `script`(剧本)和 `assets`(现有资产列表)
|
||||
2. 根据[衍生资产提取](references/derive-assets-extraction.md)文档中的提取原则,分析剧本内容,为每个角色资产识别出关联的衍生资产(道具、服饰、法器、座驾、场景物件等)
|
||||
2. 根据[衍生资产提取](references/derive_assets_extraction.md)文档中的提取原则,分析剧本内容,为每个角色资产识别出关联的衍生资产(道具、服饰、法器、座驾、场景物件等)
|
||||
3. 对每个有衍生状态的资产调用 `set_flowData_assets` 保存
|
||||
4. 告知用户提取完成,列出为每个角色提取的衍生资产概要
|
||||
5. **询问用户是否需要生成衍生资产图片**:
|
||||
@ -32,7 +32,7 @@ description: >
|
||||
### 生成分镜表流程
|
||||
|
||||
1. 调用 `get_flowData` 分别获取 `script`(剧本)和 `assets`(现有资产列表)
|
||||
2. 根据[分镜表生成](references/storyboard-generation.md)文档中的拆分原则和字段填写指引,将剧本拆分为分镜,填写每条分镜的所有字段(id、title、description、camera、duration、frameMode、prompt、lines、sound、associateAssetsIds)
|
||||
2. 根据[分镜表生成](references/storyboard_generation.md)文档中的拆分原则和字段填写指引,将剧本拆分为分镜,填写每条分镜的所有字段(id、title、description、camera、duration、frameMode、prompt、lines、sound、associateAssetsIds)
|
||||
3. 调用 `set_flowData({ key: "storyboard", value: 分镜数组 })` 一次性保存完整分镜表
|
||||
4. 告知用户分镜表生成完成,列出分镜概要(总条数、主要场景)
|
||||
5. **询问用户是否需要生成分镜图片**:
|
||||
@ -43,7 +43,7 @@ description: >
|
||||
|
||||
本技能附带以下参考资料,根据任务需要使用 `read_skill_file` 工具按需加载:
|
||||
|
||||
- [衍生资产提取](references/derive-assets-extraction.md) — 从剧本和角色资产中提取衍生资产的原则和示例
|
||||
- [分镜表生成](references/storyboard-generation.md) — 从剧本和资产生成分镜表的拆分原则、字段规范和示例
|
||||
- [衍生资产提取](references/derive_assets_extraction.md) — 从剧本和角色资产中提取衍生资产的原则和示例
|
||||
- [分镜表生成](references/storyboard_generation.md) — 从剧本和资产生成分镜表的拆分原则、字段规范和示例
|
||||
|
||||
**注意**:根据用户当前任务选择性加载对应参考资料,不要一次性全部加载。
|
||||
|
||||
77
data/skills/references/cooke.md
Normal file
77
data/skills/references/cooke.md
Normal file
@ -0,0 +1,77 @@
|
||||
# 烤龙肉的做法
|
||||
|
||||
## 前言
|
||||
|
||||
龙肉,作为幻想世界中最珍贵的食材之一,其烹饪方法自古以来就是冒险者和宫廷厨师们追求的终极秘技。以下是一份经典的烤龙肉食谱。
|
||||
|
||||
---
|
||||
|
||||
## 食材准备
|
||||
|
||||
| 食材 | 用量 | 备注 |
|
||||
|------|------|------|
|
||||
| 龙肉(里脊或腿肉) | 2公斤 | 需提前放血处理 |
|
||||
| 龙息椒粉 | 2大勺 | 普通辣椒粉可替代 |
|
||||
| 凤凰蛋黄 | 3个 | 鸡蛋黄可替代 |
|
||||
| 精灵橄榄油 | 100毫升 | 特级初榨橄榄油可替代 |
|
||||
| 矮人黑盐 | 适量 | 海盐可替代 |
|
||||
| 迷迭香、百里香 | 各一把 | 新鲜为佳 |
|
||||
| 蒜头 | 8瓣 | 拍碎 |
|
||||
| 蜂蜜 | 3大勺 | 用于表面刷酱 |
|
||||
|
||||
---
|
||||
|
||||
## 烹饪步骤
|
||||
|
||||
### 第一步:腌制龙肉(需提前一天)
|
||||
|
||||
1. 将龙肉洗净,用厨房纸巾吸干表面水分
|
||||
2. 用锋利的刀在肉面划几道深约1厘米的斜纹,便于入味
|
||||
3. 将蛋黄、橄榄油、龙息椒粉、黑盐混合,调成腌料
|
||||
4. 均匀涂抹在龙肉表面,放入密封容器
|
||||
5. 冷藏腌制12-24小时
|
||||
|
||||
### 第二步:准备香草束
|
||||
|
||||
1. 将迷迭香、百里香捆扎成束
|
||||
2. 蒜瓣拍碎备用
|
||||
3. 准备好蜂蜜刷酱
|
||||
|
||||
### 第三步:烤制
|
||||
|
||||
1. **预热烤炉**:将烤炉预热至220°C(若使用龙焰烤炉,调至"青龙"档位)
|
||||
|
||||
2. **初次高温烤制**:
|
||||
- 将腌制好的龙肉放入烤盘
|
||||
- 铺上香草束和蒜瓣
|
||||
- 220°C烤制20分钟,封住肉汁
|
||||
|
||||
3. **转中温慢烤**:
|
||||
- 温度降至160°C
|
||||
- 每隔20分钟翻面一次,并刷上蜂蜜
|
||||
- 继续烤制约1.5-2小时(视肉块大小调整)
|
||||
|
||||
4. **检验熟度**:
|
||||
- 用探针温度计测量中心温度达65°C为五分熟
|
||||
- 达75°C为全熟
|
||||
- 龙肉建议七分熟(约70°C),口感最佳
|
||||
|
||||
### 第四步:静置与切片
|
||||
|
||||
1. 出炉后用锡纸包裹,静置15分钟
|
||||
2. 逆着纹理切成1厘米厚的片状
|
||||
3. 摆盘,淋上烤盘中的肉汁
|
||||
|
||||
---
|
||||
|
||||
## 小贴士
|
||||
|
||||
- ⚠️ **安全提示**:处理龙肉时请佩戴防火手套,残余龙息可能引发灼伤
|
||||
- 🍷 **搭配推荐**:建议搭配精灵白葡萄酒或矮人麦芽啤酒
|
||||
- 🔥 若龙肉带有冰属性(如霜龙),烤制时间需延长30%
|
||||
|
||||
---
|
||||
|
||||
## 成品效果
|
||||
|
||||
外皮金黄酥脆,内部肉质鲜嫩多汁,带有独特的硫磺香气与蜂蜜的甜润,回味中隐约有龙息的微辣感。
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 专注于从小说原文中提取结构化事件信息的助手。
|
||||
---
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 专注于从小说原文中提取角色信息并生成视觉化角色描述的助手。
|
||||
---
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 专注于从小说原文中提取道具物品信息并生成视觉化描述的助手。
|
||||
---
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 专注于从小说原文中提取场景信息并生成视觉化场景描述的助手。
|
||||
---
|
||||
|
||||
@ -206,7 +206,7 @@ set_flowData({
|
||||
camera: "中景 · 缓慢推进",
|
||||
duration: 3,
|
||||
frameMode: "endFrame",
|
||||
prompt: "A white-haired young man in white robes kneeling on the floor, spitting blood, trembling body, pale face, dramatic lighting, cinematic composition",
|
||||
prompt: "A white_haired young man in white robes kneeling on the floor, spitting blood, trembling body, pale face, dramatic lighting, cinematic composition",
|
||||
lines: null,
|
||||
sound: "喷血声",
|
||||
associateAssetsIds: [0]
|
||||
@ -218,7 +218,7 @@ set_flowData({
|
||||
camera: "大特写",
|
||||
duration: 3,
|
||||
frameMode: "firstFrame",
|
||||
prompt: "Close-up of a jade token with glowing runes fading, fine cracks appearing on the surface, dark moody lighting, cinematic detail shot",
|
||||
prompt: "Close_up of a jade token with glowing runes fading, fine cracks appearing on the surface, dark moody lighting, cinematic detail shot",
|
||||
lines: null,
|
||||
sound: "玉石碎裂声",
|
||||
associateAssetsIds: [2]
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 专注于从视频分镜提示词中提取结构化台词、旁白与音效信息的助手。
|
||||
---
|
||||
|
||||
@ -77,7 +77,7 @@ const planData = {
|
||||
4. 生成汇总统计(总章节、强主线章节数、可压缩章节、预估总时长、目标时长、压缩比)
|
||||
5. 输出 Markdown 表格格式的事件表,作为后续任务上下文(不写入 planData)
|
||||
|
||||
**输出格式**:参考 [event-format.md](references/event-format.md)
|
||||
**输出格式**:参考 [event_format.md](references/event_format.md)
|
||||
|
||||
**关键原则**:
|
||||
- 核心事件描述必须包含**动作**和**结果**,不能只写状态
|
||||
@ -115,7 +115,7 @@ const planData = {
|
||||
7. 设计付费卡点(位置、内容、钩子类型)
|
||||
8. 调用 `set_planData_storySkeleton` 保存
|
||||
|
||||
**输出格式**:参考 [skeleton-format.md](references/skeleton-format.md)
|
||||
**输出格式**:参考 [skeleton_format.md](references/skeleton_format.md)
|
||||
|
||||
**关键约束**:
|
||||
- 总时长 = 【项目配置】中的集数 × 单集时长
|
||||
@ -145,7 +145,7 @@ const planData = {
|
||||
- 角色态度作为世界观锚点
|
||||
5. 调用 `set_planData_adaptationStrategy` 保存
|
||||
|
||||
**输出格式**:参考 [adaptation-format.md](references/adaptation-format.md)
|
||||
**输出格式**:参考 [adaptation_format.md](references/adaptation_format.md)
|
||||
|
||||
**关键原则**:
|
||||
- 故事核优先:主角是"被定义为疯子却选择活下去的人",所有决策服务于此弧线
|
||||
@ -179,7 +179,7 @@ const planData = {
|
||||
- 表演指示(情绪、动作细节)
|
||||
6. 仅当指令中包含 `用户已确认写入SQL: 是` 时,调用 `insert_script_to_sqlite` 写入剧本
|
||||
|
||||
**输出格式**:参考 [script-format.md](references/script-format.md)
|
||||
**输出格式**:参考 [script_format.md](references/script_format.md)
|
||||
|
||||
**关键约束**:
|
||||
- 单集总时长严格控制在【项目配置】指定的单集时长 ±10秒
|
||||
|
||||
@ -84,7 +84,7 @@ description: >-
|
||||
| 转场标注 | 节拍间转场方式明确 | 轻微 |
|
||||
| 情绪连贯 | 节拍间情绪过渡自然 | 中等 |
|
||||
|
||||
详细审核标准请参考 [quality-criteria.md](references/quality-criteria.md)。
|
||||
详细审核标准请参考 [quality_criteria.md](references/quality_criteria.md)。
|
||||
|
||||
## 审核报告格式
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
---
|
||||
name: universal-agent
|
||||
name: universal_agent
|
||||
description: 通用文本分析与内容提取 Agent,支持小说事件提取、视频台词提取、角色/场景/道具资产描述生成等多种结构化内容处理任务。
|
||||
---
|
||||
|
||||
@ -11,36 +11,36 @@ description: 通用文本分析与内容提取 Agent,支持小说事件提取
|
||||
|
||||
你拥有以下参考技能(references),根据用户请求自动匹配对应技能执行:
|
||||
|
||||
### 1. 小说章节事件提取(event-extract)
|
||||
### 1. 小说章节事件提取(event_extract)
|
||||
|
||||
- **触发条件**:用户提供小说原文,要求提取章节事件、生成事件表
|
||||
- **参考文件**:`references/event-extract.md`
|
||||
- **参考文件**:`references/event_extract.md`
|
||||
- **输出**:结构化事件表格(章节、角色、核心事件、主线关系、信息密度、预估集长、情绪强度)+ 汇总统计
|
||||
|
||||
### 2. 视频提示词台词提取(video-dialogue-extract)
|
||||
### 2. 视频提示词台词提取(video_dialogue_extract)
|
||||
|
||||
- **触发条件**:用户提供视频分镜提示词/画面描述,要求从中提取或还原台词、旁白、音效文本
|
||||
- **参考文件**:`references/video-dialogue-extract.md`
|
||||
- **参考文件**:`references/video_dialogue_extract.md`
|
||||
- **输出**:结构化台词表(镜号、角色、台词内容、台词类型、情绪标注、时长估算)
|
||||
|
||||
### 3. 小说角色提取(novel-character-extract)
|
||||
### 3. 小说角色提取(novel_character_extract)
|
||||
|
||||
- **触发条件**:用户提供小说原文,要求提取角色信息、生成角色视觉描述
|
||||
- **参考文件**:`references/novel-character-extract.md`
|
||||
- **参考文件**:`references/novel_character_extract.md`
|
||||
- **资产类型**:`role`(对应 `o_assets.type = "role"`)
|
||||
- **输出**:结构化角色资产表(角色名称、角色定位、外貌特征、服饰描述、体型体态、标志性特征、性格气质、首次出场、出场章节数、状态变体)+ 核心角色卡片
|
||||
|
||||
### 4. 小说场景提取(novel-scene-extract)
|
||||
### 4. 小说场景提取(novel_scene_extract)
|
||||
|
||||
- **触发条件**:用户提供小说原文,要求提取场景/地点信息、生成场景视觉描述
|
||||
- **参考文件**:`references/novel-scene-extract.md`
|
||||
- **参考文件**:`references/novel_scene_extract.md`
|
||||
- **资产类型**:`scene`(对应 `o_assets.type = "scene"`)
|
||||
- **输出**:结构化场景资产表(场景名称、场景类型、空间描述、光照氛围、关键陈设、色调基调、首次出场、出场章节数、关联角色、状态变体)+ 核心场景卡片
|
||||
|
||||
### 5. 小说道具提取(novel-props-extract)
|
||||
### 5. 小说道具提取(novel_props_extract)
|
||||
|
||||
- **触发条件**:用户提供小说原文,要求提取道具/物品/器物信息、生成道具视觉描述
|
||||
- **参考文件**:`references/novel-props-extract.md`
|
||||
- **参考文件**:`references/novel_props_extract.md`
|
||||
- **资产类型**:`tool`(对应 `o_assets.type = "tool"`)
|
||||
- **输出**:结构化道具资产表(道具名称、类别、外观描述、尺寸参考、材质质感、功能/用途、首次出场、关联角色、状态变体)+ 高频道具排名
|
||||
|
||||
|
||||
@ -1,23 +1,23 @@
|
||||
[
|
||||
{
|
||||
"skillId": "52c51fa8655f899a1b7aae9b6aad7251",
|
||||
"attribution": "universal-agent.md"
|
||||
"attribution": "universal_agent.md"
|
||||
},
|
||||
{
|
||||
"skillId": "6d46cdca10b2f49e07e515885d1387a0",
|
||||
"attribution": "universal-agent.md"
|
||||
"attribution": "universal_agent.md"
|
||||
},
|
||||
{
|
||||
"skillId": "1864df75d1d65f76e275046649ecaef8",
|
||||
"attribution": "universal-agent.md"
|
||||
"attribution": "universal_agent.md"
|
||||
},
|
||||
{
|
||||
"skillId": "3e5efec258c8d8e6a39bcef12f8ee058",
|
||||
"attribution": "universal-agent.md"
|
||||
"attribution": "universal_agent.md"
|
||||
},
|
||||
{
|
||||
"skillId": "7fbce6f90d7d85496ba9817e9622e640",
|
||||
"attribution": "universal-agent.md"
|
||||
"attribution": "universal_agent.md"
|
||||
},
|
||||
{
|
||||
"skillId": "31fb5c5a1f514ec1e66b4eba9f22d4db",
|
||||
|
||||
@ -492,7 +492,7 @@ export default (resTool: ResTool, toolsNames?: string[]) => {
|
||||
resTool.systemMessage(`图片生成调度计划:共 ${levels.length} 层,${images.length} 张图片`);
|
||||
|
||||
// --- 准备公共数据 ---
|
||||
const skill = await useSkill("universal-agent");
|
||||
const skill = await useSkill("universal_agent.md");
|
||||
const projectData = await u.db("o_project").where("id", resTool.data.projectId).select("videoRatio").first();
|
||||
const imageModel = resTool.data.imageModel;
|
||||
|
||||
|
||||
@ -522,8 +522,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "a1e818cc03a0b355b239ac1fb0512969",
|
||||
md5: "1fd22029e8047aa30b0dfd703cb837ed",
|
||||
path: "universal-agent.md",
|
||||
name: "universal-agent",
|
||||
path: "universal_agent.md",
|
||||
name: "universal_agent",
|
||||
description: "",
|
||||
embedding: "",
|
||||
type: "main",
|
||||
@ -534,8 +534,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "3e5efec258c8d8e6a39bcef12f8ee058",
|
||||
md5: "efccb0464cfd472861b49ebf737d4820",
|
||||
path: "references/event-extract.md",
|
||||
name: "event-extract",
|
||||
path: "references/event_extract.md",
|
||||
name: "event_extract",
|
||||
description:
|
||||
"专为小说改编短剧设计的文本分析助手,逐章提取涉及角色、核心事件、主线关系、信息密度、预估集长及情绪强度等结构化信息,以Markdown表格形式输出,并附汇总统计,辅助短剧制作的内容规划与时长估算。",
|
||||
embedding: "",
|
||||
@ -547,8 +547,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "52c51fa8655f899a1b7aae9b6aad7251",
|
||||
md5: "783678aaab829b34e7c30a414c356bf6",
|
||||
path: "references/novel-character-extract.md",
|
||||
name: "novel-character-extract",
|
||||
path: "references/novel_character_extract.md",
|
||||
name: "novel_character_extract",
|
||||
description:
|
||||
"专为小说内容分析设计的角色提取助手,从原文中识别并结构化输出所有重要角色的视觉描述信息,包括外貌、服饰、体态、状态变体等字段,供美术制作和AI角色图生成使用。",
|
||||
embedding: "",
|
||||
@ -560,8 +560,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "6d46cdca10b2f49e07e515885d1387a0",
|
||||
md5: "10544d12c4ef011e6b3b63a99b8c7fa8",
|
||||
path: "references/novel-props-extract.md",
|
||||
name: "novel-props-extract",
|
||||
path: "references/novel_props_extract.md",
|
||||
name: "novel_props_extract",
|
||||
description:
|
||||
"专注于从小说原文中提取道具物品信息的分析助手,能识别武器、法器、药物等各类道具,生成包含外观、材质、尺寸、功能及状态变体的结构化视觉描述表格,供美术制作和AI绘图使用。",
|
||||
embedding: "",
|
||||
@ -573,8 +573,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "1864df75d1d65f76e275046649ecaef8",
|
||||
md5: "65603aa495a541f54c55b7f30e149f45",
|
||||
path: "references/novel-scene-extract.md",
|
||||
name: "novel-scene-extract",
|
||||
path: "references/novel_scene_extract.md",
|
||||
name: "novel_scene_extract",
|
||||
description:
|
||||
"专注于从小说原文中提取并结构化场景信息的分析助手,可识别各类场景地点,输出包含空间描述、光照氛围、关键陈设、色调基调等字段的标准化场景资产表,用于美术制作和AI绘图的场景概念图生成。",
|
||||
embedding: "",
|
||||
@ -586,8 +586,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "7fbce6f90d7d85496ba9817e9622e640",
|
||||
md5: "830559e8f2cd5d0fa8e6df48a164fe2d",
|
||||
path: "references/video-dialogue-extract.md",
|
||||
name: "video-dialogue-extract",
|
||||
path: "references/video_dialogue_extract.md",
|
||||
name: "video_dialogue_extract",
|
||||
description:
|
||||
"这是一个专门从视频分镜提示词中提取结构化台词、旁白与音效信息的AI助手配置文档,定义了完整的输出格式(含镜号、角色、台词类型、表演指导等字段)、提取规则及处理流程,用于将视频分镜描述转化为标准化台词表。",
|
||||
embedding: "",
|
||||
@ -612,8 +612,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "27dc2dfc901de2180227d0269217583a",
|
||||
md5: "7d353be4bab7a794436d9abff2b9c6ee",
|
||||
path: "references/adaptation-format.md",
|
||||
name: "adaptation-format",
|
||||
path: "references/adaptation_format.md",
|
||||
name: "adaptation_format",
|
||||
description:
|
||||
"本文档规定了改编策略输出的标准格式,包括核心改编原则、删除决策和世界观呈现策略三大模块的书写规范,明确各模块所需涵盖的维度与要素,用于指导竖屏短剧等载体的文学改编工作。",
|
||||
embedding: "",
|
||||
@ -625,8 +625,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "d49fa09504fe784a8e6eb102756c6d56",
|
||||
md5: "2ef08a7479f29d74986999ceb02092c8",
|
||||
path: "references/event-format.md",
|
||||
name: "event-format",
|
||||
path: "references/event_format.md",
|
||||
name: "event_format",
|
||||
description:
|
||||
"本文档规定了影视改编项目中事件表的标准输出格式,包括文件头、事件表格、各字段填写规范(章节、角色、核心事件、主线关系、情绪强度、预估时长)及汇总统计模板,用于指导从原著提取事件并评估改编集数与压缩比的第一阶段工作。",
|
||||
embedding: "",
|
||||
@ -638,8 +638,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "797906c2ddf0750f050bcdeae23eae3d",
|
||||
md5: "f5e7fe6db7e05db69d5dc327c4c538f2",
|
||||
path: "references/script-format.md",
|
||||
name: "script-format",
|
||||
path: "references/script_format.md",
|
||||
name: "script_format",
|
||||
description:
|
||||
"本文档为竖屏短剧剧本的输出格式规范,定义了文件头、节拍结构、分镜脚本、画面描述、台词、转场标注等标准格式要求,并附有时长控制参数与自查清单,供AI视频生成和导演制作使用。",
|
||||
embedding: "",
|
||||
@ -651,8 +651,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "1abd8675c0c3e62b20c0b151d2ec0fb1",
|
||||
md5: "a587532c737ce15022e1522021f099bb",
|
||||
path: "references/skeleton-format.md",
|
||||
name: "skeleton-format",
|
||||
path: "references/skeleton_format.md",
|
||||
name: "skeleton_format",
|
||||
description:
|
||||
"本文档定义了故事骨架文件(skeleton.md)的标准化输出格式,涵盖故事核、人物成长隐线、三幕结构、分集决策模板、全局删减记录、付费卡点设计及自查清单,用于指导编剧将章节事件列表转化为结构完整的剧集改编方案。",
|
||||
embedding: "",
|
||||
@ -664,8 +664,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "0b7828d7a6ab458a4b201122f08d6c16",
|
||||
md5: "120b3c856f1b2a8a429e11319e8c95fe",
|
||||
path: "references/quality-criteria.md",
|
||||
name: "quality-criteria",
|
||||
path: "references/quality_criteria.md",
|
||||
name: "quality_criteria",
|
||||
description:
|
||||
"本文档为影视/短剧项目的质量审核标准手册,涵盖事件表、故事骨架、改编策略和剧本四大模块的详细审核规则,规定了格式规范、角色名称统一、时长合理性、画面可执行性及场景氛围一致性等审核要求,用于确保各阶段产出物的内容准确性与制作可行性。",
|
||||
embedding: "",
|
||||
@ -690,8 +690,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "75a45cf996015ca819582873887ec301",
|
||||
md5: "6045d76873fd58b8b87a914a21a38439",
|
||||
path: "references/derive-assets-extraction.md",
|
||||
name: "derive-assets-extraction",
|
||||
path: "references/derive_assets_extraction.md",
|
||||
name: "derive_assets_extraction",
|
||||
description:
|
||||
"本文档是一份技术操作指南,说明如何根据剧本内容和已有资产列表,提取每个资产在剧情中出现的不同视觉状态变体(derive),并通过工具函数读取和写入数据,用于后续图片生成参考。",
|
||||
embedding: "",
|
||||
@ -703,8 +703,8 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
{
|
||||
id: "fce75f69d704c19bebcb356bc1bd6e81",
|
||||
md5: "a3b3432854970f22949ba47236a6532f",
|
||||
path: "references/storyboard-generation.md",
|
||||
name: "storyboard-generation",
|
||||
path: "references/storyboard_generation.md",
|
||||
name: "storyboard_generation",
|
||||
description:
|
||||
"根据剧本和资产列表生成结构化分镜面板的工具指南,涵盖分镜拆分原则、字段填写规范及工具调用流程,用于将剧本转化为含画面描述、镜头语言、台词和AI绘图提示词的分镜数据。",
|
||||
embedding: "",
|
||||
@ -727,7 +727,7 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
name: "o_skillAttribution",
|
||||
builder: (table) => {
|
||||
table.text("skillId").notNullable().references("id").inTable("o_skillList").onDelete("CASCADE");
|
||||
table.text("attribution").notNullable(); // "production_agent_decision.md" | "production_agent_execution.md" | "production_agent_supervision.md" | "script_agent_decision.md" | "script_agent_execution.md" | "script_agent_supervision.md" | "universal-agent.md"
|
||||
table.text("attribution").notNullable(); // "production_agent_decision.md" | "production_agent_execution.md" | "production_agent_supervision.md" | "script_agent_decision.md" | "script_agent_execution.md" | "script_agent_supervision.md" | "universal_agent.md"
|
||||
table.primary(["skillId", "attribution"]);
|
||||
table.index(["attribution"]);
|
||||
},
|
||||
@ -735,23 +735,23 @@ export default async (knex: Knex, forceInit: boolean = false): Promise<void> =>
|
||||
await knex("o_skillAttribution").insert([
|
||||
{
|
||||
skillId: "52c51fa8655f899a1b7aae9b6aad7251",
|
||||
attribution: "universal-agent.md",
|
||||
attribution: "universal_agent.md",
|
||||
},
|
||||
{
|
||||
skillId: "6d46cdca10b2f49e07e515885d1387a0",
|
||||
attribution: "universal-agent.md",
|
||||
attribution: "universal_agent.md",
|
||||
},
|
||||
{
|
||||
skillId: "1864df75d1d65f76e275046649ecaef8",
|
||||
attribution: "universal-agent.md",
|
||||
attribution: "universal_agent.md",
|
||||
},
|
||||
{
|
||||
skillId: "3e5efec258c8d8e6a39bcef12f8ee058",
|
||||
attribution: "universal-agent.md",
|
||||
attribution: "universal_agent.md",
|
||||
},
|
||||
{
|
||||
skillId: "7fbce6f90d7d85496ba9817e9622e640",
|
||||
attribution: "universal-agent.md",
|
||||
attribution: "universal_agent.md",
|
||||
},
|
||||
{
|
||||
skillId: "31fb5c5a1f514ec1e66b4eba9f22d4db",
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// @routes-hash f5f78866e59979bf30af031c9ea0de82
|
||||
// @routes-hash e48d3637c019a24988e008910e734d8c
|
||||
import { Express } from "express";
|
||||
|
||||
import route1 from "./routes/agents/clearMemory";
|
||||
@ -77,15 +77,22 @@ import route73 from "./routes/setting/loginConfig/getUser";
|
||||
import route74 from "./routes/setting/loginConfig/updateUserPwd";
|
||||
import route75 from "./routes/setting/memoryConfig/getMemory";
|
||||
import route76 from "./routes/setting/memoryConfig/sureMemory";
|
||||
import route77 from "./routes/setting/vendorConfig/addVendor";
|
||||
import route78 from "./routes/setting/vendorConfig/deleteVendor";
|
||||
import route79 from "./routes/setting/vendorConfig/getVendorList";
|
||||
import route80 from "./routes/setting/vendorConfig/modelTest";
|
||||
import route81 from "./routes/setting/vendorConfig/updateVendor";
|
||||
import route82 from "./routes/task/getTaskApi";
|
||||
import route83 from "./routes/task/getTaskCategories";
|
||||
import route84 from "./routes/task/taskDetails";
|
||||
import route85 from "./routes/test/test";
|
||||
import route77 from "./routes/setting/skillManagement/addSkill";
|
||||
import route78 from "./routes/setting/skillManagement/deleteSkill";
|
||||
import route79 from "./routes/setting/skillManagement/embeddingSkill";
|
||||
import route80 from "./routes/setting/skillManagement/generateDescription";
|
||||
import route81 from "./routes/setting/skillManagement/getSkillList";
|
||||
import route82 from "./routes/setting/skillManagement/scanSkills";
|
||||
import route83 from "./routes/setting/skillManagement/updateSkill";
|
||||
import route84 from "./routes/setting/vendorConfig/addVendor";
|
||||
import route85 from "./routes/setting/vendorConfig/deleteVendor";
|
||||
import route86 from "./routes/setting/vendorConfig/getVendorList";
|
||||
import route87 from "./routes/setting/vendorConfig/modelTest";
|
||||
import route88 from "./routes/setting/vendorConfig/updateVendor";
|
||||
import route89 from "./routes/task/getTaskApi";
|
||||
import route90 from "./routes/task/getTaskCategories";
|
||||
import route91 from "./routes/task/taskDetails";
|
||||
import route92 from "./routes/test/test";
|
||||
|
||||
export default async (app: Express) => {
|
||||
app.use("/api/agents/clearMemory", route1);
|
||||
@ -164,13 +171,20 @@ export default async (app: Express) => {
|
||||
app.use("/api/setting/loginConfig/updateUserPwd", route74);
|
||||
app.use("/api/setting/memoryConfig/getMemory", route75);
|
||||
app.use("/api/setting/memoryConfig/sureMemory", route76);
|
||||
app.use("/api/setting/vendorConfig/addVendor", route77);
|
||||
app.use("/api/setting/vendorConfig/deleteVendor", route78);
|
||||
app.use("/api/setting/vendorConfig/getVendorList", route79);
|
||||
app.use("/api/setting/vendorConfig/modelTest", route80);
|
||||
app.use("/api/setting/vendorConfig/updateVendor", route81);
|
||||
app.use("/api/task/getTaskApi", route82);
|
||||
app.use("/api/task/getTaskCategories", route83);
|
||||
app.use("/api/task/taskDetails", route84);
|
||||
app.use("/api/test/test", route85);
|
||||
app.use("/api/setting/skillManagement/addSkill", route77);
|
||||
app.use("/api/setting/skillManagement/deleteSkill", route78);
|
||||
app.use("/api/setting/skillManagement/embeddingSkill", route79);
|
||||
app.use("/api/setting/skillManagement/generateDescription", route80);
|
||||
app.use("/api/setting/skillManagement/getSkillList", route81);
|
||||
app.use("/api/setting/skillManagement/scanSkills", route82);
|
||||
app.use("/api/setting/skillManagement/updateSkill", route83);
|
||||
app.use("/api/setting/vendorConfig/addVendor", route84);
|
||||
app.use("/api/setting/vendorConfig/deleteVendor", route85);
|
||||
app.use("/api/setting/vendorConfig/getVendorList", route86);
|
||||
app.use("/api/setting/vendorConfig/modelTest", route87);
|
||||
app.use("/api/setting/vendorConfig/updateVendor", route88);
|
||||
app.use("/api/task/getTaskApi", route89);
|
||||
app.use("/api/task/getTaskCategories", route90);
|
||||
app.use("/api/task/taskDetails", route91);
|
||||
app.use("/api/test/test", route92);
|
||||
}
|
||||
|
||||
@ -28,6 +28,7 @@ export default router.post(
|
||||
.db("o_assets")
|
||||
.leftJoin("o_image", "o_assets.imageId", "o_image.id")
|
||||
.select("o_assets.*", "o_image.filePath")
|
||||
// @ts-ignore
|
||||
.where("o_assets.id", "in", assetIds)
|
||||
.whereNull("o_assets.assetsId")
|
||||
.where("o_assets.projectId", projectId);
|
||||
@ -36,6 +37,7 @@ export default router.post(
|
||||
.leftJoin("o_image", "o_assets.imageId", "o_image.id")
|
||||
.select("o_assets.*", "o_image.filePath")
|
||||
.where("o_assets.projectId", projectId)
|
||||
// @ts-ignore
|
||||
.where("o_assets.id", "in", assetIds)
|
||||
.whereNotNull("o_assets.assetsId");
|
||||
|
||||
|
||||
@ -22,11 +22,8 @@ export default router.post(
|
||||
const assetsData = await u
|
||||
.db("o_assets")
|
||||
.leftJoin("o_scriptAssets", "o_assets.id", "o_scriptAssets.assetId")
|
||||
.where(
|
||||
"o_scriptAssets.scriptId",
|
||||
"in",
|
||||
data.map((i) => i.id),
|
||||
)
|
||||
// @ts-ignore
|
||||
.whereIn( "o_scriptAssets.scriptId", data.map((i) => i.id))
|
||||
.select("o_assets.id", "o_assets.name", "o_scriptAssets.scriptId");
|
||||
const scriptAssetsMap: Record<number, { id: number; name: string }[]> = {};
|
||||
assetsData.forEach((i) => {
|
||||
|
||||
@ -8,7 +8,7 @@ export default router.get("/", async (req, res) => {
|
||||
const skill = await useSkill("universal_agent.md");
|
||||
const result = await u.Ai.Text("universalAgent").invoke({
|
||||
system: "请直接调用activate_skill工具激活技能" + skill.prompt,
|
||||
messages: [{ role: "user", content: `开始激活,然后随机使用read_skill_file调用一个技能` }],
|
||||
messages: [{ role: "user", content: `如何烹饪龙肉` }],
|
||||
tools: skill.tools,
|
||||
});
|
||||
|
||||
|
||||
3
src/types/database.d.ts
vendored
3
src/types/database.d.ts
vendored
@ -1,4 +1,4 @@
|
||||
// @db-hash 2b2f9f6242d2d20e89412ba5117415df
|
||||
// @db-hash a4883a3df3fda68054d467ee6dd26523
|
||||
//该文件由脚本自动生成,请勿手动修改
|
||||
|
||||
export interface memories {
|
||||
@ -155,6 +155,7 @@ export interface o_storyboard {
|
||||
'filePath'?: string | null;
|
||||
'frameMode'?: string | null;
|
||||
'id'?: number;
|
||||
'index'?: string | null;
|
||||
'lines'?: string | null;
|
||||
'mode'?: string | null;
|
||||
'model'?: string | null;
|
||||
|
||||
@ -123,6 +123,8 @@ function createSkillTools(skill: SkillRecord, mainSkillName: string) {
|
||||
.where("o_skillList.state", 1)
|
||||
.andWhere("o_skillAttribution.attribution", mainSkillName);
|
||||
|
||||
console.log("%c Line:120 🌮 resources", "background:#b03734", resources);
|
||||
|
||||
activated.add(name);
|
||||
console.log(`[Skill] 📖 已激活:${name}(${body.length} 字符,${resources.length} 资源)`);
|
||||
let content = "";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user