diff --git a/.claudian/sessions/conv-1776071385957-rol42oxg8.meta.json b/.claudian/sessions/conv-1776071385957-rol42oxg8.meta.json index 14753c1..5ac44af 100644 --- a/.claudian/sessions/conv-1776071385957-rol42oxg8.meta.json +++ b/.claudian/sessions/conv-1776071385957-rol42oxg8.meta.json @@ -4,21 +4,20 @@ "title": "Greet user in Chinese", "titleGenerationStatus": "success", "createdAt": 1776071385957, - "updatedAt": 1776179962356, - "lastResponseAt": 1776179962356, + "updatedAt": 1776323430776, + "lastResponseAt": 1776323388014, "sessionId": "c432006f-72f1-4f80-9625-7cb62e468878", "providerState": { "providerSessionId": "c432006f-72f1-4f80-9625-7cb62e468878" }, - "currentNote": "07-Other/AI/Obsidian/Obsidian CLI.md", "usage": { "model": "opus[1m]", "inputTokens": 1, - "cacheCreationInputTokens": 1084, - "cacheReadInputTokens": 41428, + "cacheCreationInputTokens": 196, + "cacheReadInputTokens": 46736, "contextWindow": 1000000, - "contextTokens": 42513, - "percentage": 4, + "contextTokens": 46933, + "percentage": 5, "contextWindowIsAuthoritative": true } } \ No newline at end of file diff --git a/.claudian/sessions/conv-1776323459705-5pi4d1m2c.meta.json b/.claudian/sessions/conv-1776323459705-5pi4d1m2c.meta.json new file mode 100644 index 0000000..db758e2 --- /dev/null +++ b/.claudian/sessions/conv-1776323459705-5pi4d1m2c.meta.json @@ -0,0 +1,23 @@ +{ + "id": "conv-1776323459705-5pi4d1m2c", + "providerId": "claude", + "title": "Add NOS bucket info to Artlib S3 list", + "titleGenerationStatus": "success", + "createdAt": 1776323459705, + "updatedAt": 1776323556815, + "lastResponseAt": 1776323548529, + "sessionId": "5d6a917b-dae7-414e-9708-db14c72e050e", + "providerState": { + "providerSessionId": "5d6a917b-dae7-414e-9708-db14c72e050e" + }, + "usage": { + "model": "opus[1m]", + "inputTokens": 1, + "cacheCreationInputTokens": 438, + "cacheReadInputTokens": 28313, + "contextWindow": 1000000, + "contextTokens": 28752, + "percentage": 3, + "contextWindowIsAuthoritative": true + } +} \ No newline at end of file diff --git a/.claudian/sessions/conv-1776407147334-cxjkybum1.meta.json b/.claudian/sessions/conv-1776407147334-cxjkybum1.meta.json new file mode 100644 index 0000000..c0c0b12 --- /dev/null +++ b/.claudian/sessions/conv-1776407147334-cxjkybum1.meta.json @@ -0,0 +1,23 @@ +{ + "id": "conv-1776407147334-cxjkybum1", + "providerId": "claude", + "title": "Organize weekly summary files into yearly folders", + "titleGenerationStatus": "success", + "createdAt": 1776407147335, + "updatedAt": 1776407189487, + "lastResponseAt": 1776407189487, + "sessionId": "5d03d783-5042-4214-b0a9-0eb9d1208b35", + "providerState": { + "providerSessionId": "5d03d783-5042-4214-b0a9-0eb9d1208b35" + }, + "usage": { + "model": "opus[1m]", + "inputTokens": 1, + "cacheCreationInputTokens": 452, + "cacheReadInputTokens": 29934, + "contextWindow": 1000000, + "contextTokens": 30387, + "percentage": 3, + "contextWindowIsAuthoritative": true + } +} \ No newline at end of file diff --git a/.obsidian/plugins/claudian/data.json b/.obsidian/plugins/claudian/data.json index 2fdd55a..9db49b4 100644 --- a/.obsidian/plugins/claudian/data.json +++ b/.obsidian/plugins/claudian/data.json @@ -2,10 +2,10 @@ "tabManagerState": { "openTabs": [ { - "tabId": "tab-1776071369651-6oz9pqs", - "conversationId": "conv-1776071385957-rol42oxg8" + "tabId": "tab-1776323554594-sqmcnmq", + "conversationId": "conv-1776407147334-cxjkybum1" } ], - "activeTabId": "tab-1776071369651-6oz9pqs" + "activeTabId": "tab-1776323554594-sqmcnmq" } } \ No newline at end of file diff --git a/.obsidian/plugins/various-complements/histories.json b/.obsidian/plugins/various-complements/histories.json index 1414994..e862c35 100644 --- a/.obsidian/plugins/various-complements/histories.json +++ b/.obsidian/plugins/various-complements/histories.json @@ -1 +1 @@ -{"Agent":{"Agent":{"internalLink":{"count":2,"lastUpdated":1773554273209}}},"要解决这个问题,得对记忆进行合理规划与维护:":{"要解决这个问题,得对记忆进行合理规划与维护:":{"currentFile":{"count":1,"lastUpdated":1774938677236}}},"Openclaw-workspace":{"Openclaw-workspace":{"currentFile":{"count":1,"lastUpdated":1774938879095}}},"workflow":{"workflow":{"currentFile":{"count":1,"lastUpdated":1775020352083}}},"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"currentFile":{"count":1,"lastUpdated":1776242568663}}},"推荐加在仓库内已有的标准元数据文件中,例如:":{"推荐加在仓库内已有的标准元数据文件中,例如:":{"currentFile":{"count":1,"lastUpdated":1776242909075}}},"推荐加在仓库内已有的标准元数据文件中,":{"推荐加在仓库内已有的标准元数据文件中,":{"currentFile":{"count":1,"lastUpdated":1776242914868}}}} \ No newline at end of file +{"Agent":{"Agent":{"internalLink":{"count":2,"lastUpdated":1773554273209}}},"要解决这个问题,得对记忆进行合理规划与维护:":{"要解决这个问题,得对记忆进行合理规划与维护:":{"currentFile":{"count":1,"lastUpdated":1774938677236}}},"Openclaw-workspace":{"Openclaw-workspace":{"currentFile":{"count":1,"lastUpdated":1774938879095}}},"workflow":{"workflow":{"currentFile":{"count":1,"lastUpdated":1775020352083}}},"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"\\AI\\Skill\\MatrixAITA-POPODocs-Skill、D":{"currentFile":{"count":1,"lastUpdated":1776242568663}}},"推荐加在仓库内已有的标准元数据文件中,例如:":{"推荐加在仓库内已有的标准元数据文件中,例如:":{"currentFile":{"count":1,"lastUpdated":1776242909075}}},"推荐加在仓库内已有的标准元数据文件中,":{"推荐加在仓库内已有的标准元数据文件中,":{"currentFile":{"count":1,"lastUpdated":1776242914868}}},"Screenshots":{"Screenshots":{"currentFile":{"count":1,"lastUpdated":1776309732196}}},"WorkSpace":{"WorkSpace":{"currentFile":{"count":1,"lastUpdated":1776315471938}}},"VPS账号 以及PS4 DNS":{"VPS账号 以及PS4 DNS":{"internalLink":{"count":1,"lastUpdated":1776322449307}}},"G37、G37":{"G37、G37":{"currentFile":{"count":1,"lastUpdated":1776416826672}}}} \ No newline at end of file diff --git a/01-Diary/周小结/2023.8.10 工作进度汇报.md b/01-Diary/周小结/2023/2023.8.10 工作进度汇报.md similarity index 100% rename from 01-Diary/周小结/2023.8.10 工作进度汇报.md rename to 01-Diary/周小结/2023/2023.8.10 工作进度汇报.md diff --git a/01-Diary/周小结/2023.8.18工作进度汇报.md b/01-Diary/周小结/2023/2023.8.18工作进度汇报.md similarity index 100% rename from 01-Diary/周小结/2023.8.18工作进度汇报.md rename to 01-Diary/周小结/2023/2023.8.18工作进度汇报.md diff --git a/01-Diary/周小结/2023.8.21工作进度汇报.md b/01-Diary/周小结/2023/2023.8.21工作进度汇报.md similarity index 100% rename from 01-Diary/周小结/2023.8.21工作进度汇报.md rename to 01-Diary/周小结/2023/2023.8.21工作进度汇报.md diff --git a/01-Diary/周小结/2023.8.28工作进度汇报.md b/01-Diary/周小结/2023/2023.8.28工作进度汇报.md similarity index 100% rename from 01-Diary/周小结/2023.8.28工作进度汇报.md rename to 01-Diary/周小结/2023/2023.8.28工作进度汇报.md diff --git a/01-Diary/周小结/2023.8.7 工作进度汇报.md b/01-Diary/周小结/2023/2023.8.7 工作进度汇报.md similarity index 100% rename from 01-Diary/周小结/2023.8.7 工作进度汇报.md rename to 01-Diary/周小结/2023/2023.8.7 工作进度汇报.md diff --git a/01-Diary/周小结/2024.10.md b/01-Diary/周小结/2024/2024.10.md similarity index 100% rename from 01-Diary/周小结/2024.10.md rename to 01-Diary/周小结/2024/2024.10.md diff --git a/01-Diary/周小结/2024.11.md b/01-Diary/周小结/2024/2024.11.md similarity index 100% rename from 01-Diary/周小结/2024.11.md rename to 01-Diary/周小结/2024/2024.11.md diff --git a/01-Diary/周小结/2024.12.md b/01-Diary/周小结/2024/2024.12.md similarity index 100% rename from 01-Diary/周小结/2024.12.md rename to 01-Diary/周小结/2024/2024.12.md diff --git a/01-Diary/周小结/2024.2.19~2.23.md b/01-Diary/周小结/2024/2024.2.19~2.23.md similarity index 100% rename from 01-Diary/周小结/2024.2.19~2.23.md rename to 01-Diary/周小结/2024/2024.2.19~2.23.md diff --git a/01-Diary/周小结/2024.4.md b/01-Diary/周小结/2024/2024.4.md similarity index 100% rename from 01-Diary/周小结/2024.4.md rename to 01-Diary/周小结/2024/2024.4.md diff --git a/01-Diary/周小结/2024.5.md b/01-Diary/周小结/2024/2024.5.md similarity index 100% rename from 01-Diary/周小结/2024.5.md rename to 01-Diary/周小结/2024/2024.5.md diff --git a/01-Diary/周小结/2024.6.md b/01-Diary/周小结/2024/2024.6.md similarity index 100% rename from 01-Diary/周小结/2024.6.md rename to 01-Diary/周小结/2024/2024.6.md diff --git a/01-Diary/周小结/2024.7.md b/01-Diary/周小结/2024/2024.7.md similarity index 100% rename from 01-Diary/周小结/2024.7.md rename to 01-Diary/周小结/2024/2024.7.md diff --git a/01-Diary/周小结/2024.8.md b/01-Diary/周小结/2024/2024.8.md similarity index 100% rename from 01-Diary/周小结/2024.8.md rename to 01-Diary/周小结/2024/2024.8.md diff --git a/01-Diary/周小结/2024.9.md b/01-Diary/周小结/2024/2024.9.md similarity index 100% rename from 01-Diary/周小结/2024.9.md rename to 01-Diary/周小结/2024/2024.9.md diff --git a/01-Diary/周小结/2026/2026.4 第三周工作日志.md b/01-Diary/周小结/2026/2026.4 第三周工作日志.md new file mode 100644 index 0000000..c93c5a1 --- /dev/null +++ b/01-Diary/周小结/2026/2026.4 第三周工作日志.md @@ -0,0 +1,40 @@ +一、 项目H78(老乡)技术支持与优化 +- 性能优化与问题修复 : + - 美术效果分析 :与主美 释正崇(胡峰) 分析了项目存在的GUI设计、贴图压缩及PC与移动端渲染效果不统一等问题。 + - LOD优化执行 :为动态物体、主角及NPC制作并添加了LOD,批量关闭了天空球模型的阴影投射,将石墙法线贴图分辨率从2048降至256。 + - 引擎Bug处理 :定位并修复了多个Bug单(如1595, 1597, 1599),确认部分为引擎Bug。 + - 渲染问题排查 :分析了树木阴影闪烁、粒子特效闪烁、贴图颜色差异等问题,并与引擎组( 扬舲(顾江涛) 、 程侃 )沟通定位。 +- 项目管理与沟通 : + - 与 释正崇(胡峰) 沟通项目困境,共同制定 UE美术验证方案 ,计划对标竞品(如星布谷地)以证明团队能力。 + - 将策划( 芝心(莫芷馨) )和主美的修改需求同步给地编 伍洛昕 。 + +二、 项目U5(蛋仔大世界)打包支持 +- Android打包 +- 资产与技术支持 : + - 指出了当日上传的模型资产存在数据损坏(模型数据为空)的问题。 +三、 AIDemo +- 远程协助外派特效同学 唐国涛 解决UE插件安装与工程打开问题。 + +四、 项目G37(炼丹炉)后端开发与规划 +- AI管理平台后端开发 : + - 架构规划 :制定了包含8个阶段(Phase 1-8)的后端重构与开发SPEC,总计约3000行。 进行进行开发。 + - 协作开发 :与后端开发 阿迪亚 对接,进行代码审查、架构建议及分工梳理。为前端开发 沈林海 提供支持并解决OIDC登录配置问题。 + - 项目管理 :向 阿迪亚 同步SPEC并规划工作范围,需每日19:30前私信同步进度。 +五、Artlib 与 启动器开发 +- 启动器与资产库(Artlib)规划与开发 : + - 与 lime(李蒙恩) 协作规划启动器与资产库的集成开发。 + - 目前已经完成启动器的基础开发。 + - gitlab CI/CD流程,实现自动打包启动器以及部署artlib。 + - vps 爬虫与资产爬虫部署,并运行。 +- 基础设施申请 : + - 申请并获得了服务器(IP:10.145.96.68)及贵安S3存储桶( matrixaita-artlib ,容量4096GB)。 + - 获取了S3云存储密钥,并申请修改OIDC的id token加密算法(HS256 -> RS256)。 + +六、 AI技能与工具开发/支持 +- POPO-Docs-Skill维护与推广 : + - 发布了Skill更新日志(v4.13~4.16),新增文件上传、多维表格操作增强等功能。 + - 部署了AI自动修复Issue功能,并推荐给一部音频组等同事使用。 + - 为 Lyra(黄家丽) 解决了Skill闪退问题,为 王景威 开发了图片上传功能,为陈凤贤、虞凯、梁伟健、温逸凡解决问题。 +- AI技术支持 : + - 为 释正崇(胡峰) 配置/修复了本地AI助手 赫尔墨斯 + diff --git a/07-Other/AI/AI Agent/WY/MCP&Skill/POPO 云文档MCP&Skill.md b/07-Other/AI/AI Agent/WY/MCP&Skill/POPO 云文档MCP&Skill.md index b9c45af..19a7ef6 100644 --- a/07-Other/AI/AI Agent/WY/MCP&Skill/POPO 云文档MCP&Skill.md +++ b/07-Other/AI/AI Agent/WY/MCP&Skill/POPO 云文档MCP&Skill.md @@ -93,4 +93,28 @@ claude_main_fix: - **自动回帖流**: - 脚本捕获了 Claude Code 的输出并存入 `repair_summary.txt`。 - 使用 `curl` 调用 GitLab 的 `/notes` API。`$CI_API_V4_URL` 和 `$CI_PROJECT_ID` 是 GitLab CI 内置的变量,无需手动配置。 -- **上下文读取**:为了让修复更准确,你可以在指令中加入 `Check CLAUDE.md for project guidelines`,确保 AI 遵循你在项目中定义的规范。 \ No newline at end of file +- **上下文读取**:为了让修复更准确,你可以在指令中加入 `Check CLAUDE.md for project guidelines`,确保 AI 遵循你在项目中定义的规范。 + + +# POPO 云文档 Skill 更新日志(4.15 ~ 4.16) + +**新功能** +1. 文件上传与下载 + - 现在可以直接通过 Skill 上传文件(PDF、Excel、图片等)到个人空间或团队空间 + - 也可以下载个人空间和团队空间中的文件,获取下载链接 + - 上传前会自动检查剩余容量,避免空间不足 +2. 登录状态自动检测 + - 启动登录浏览器后,Skill 会自动检测你是否已经登录成功 + - 已登录则直接开始工作,不再需要手动告诉 AI "我登录了" + - 未登录时才会提示你去登录,体验更流畅 +3. 多维表格操作增强 + - 新增查看数据表列表、读取数据表完整内容、创建新数据表的能力 + - 之前只能写入数据,现在可以先查看再操作 +4. 灵犀表格完整快照 + - 新增完整工作簿快照功能,可以一次获取所有页签的数据,包含行高、列宽等格式信息 +**问题修复** +1. 导出功能修复 + - 修复了文档导出(导出为 PDF 等格式)时可能失败的问题 +2. 凭证管理优化 + - Cookie 和 API 密钥现在统一存储在本地数据库中,更安全可靠 + - 登录采集速度提升(等待时间从 5 秒缩短到 2.5 秒) \ No newline at end of file diff --git a/07-Other/AI/AI Agent/WY/Website/Netease AITA AssetMaker.md b/07-Other/AI/AI Agent/WY/Website/Netease AITA AssetMaker.md index 6b15c51..2cf3d56 100644 --- a/07-Other/AI/AI Agent/WY/Website/Netease AITA AssetMaker.md +++ b/07-Other/AI/AI Agent/WY/Website/Netease AITA AssetMaker.md @@ -188,19 +188,60 @@ >以上作废 -# # 提示词 +# 提示词 请你说中文,并使用中文编写文档。 -## 功能 - -1. 简单的账户登录机制, 并且提供OpenID登录方式。 +## 需求 +1. 开发要求 + 1. 在保证相关接口不变的情况下,重构./backend 中的服务端。 + 2. 根据需求迭代./frontend 中的前端。 + 1. .\frontend\src\features\workflow-editor 是WorkFlow节点面板,不需要进行任何修复,这个是其他人开发的,但需要分析好接口,主要有WorkFlow序列化/反序列化、所有节点序列化/反序列化、同步信息等。 +2. 鉴权 + 1. 简单账号密码登录,预留OIDC登录相关接口。 + 2. 登录页面,需要截图参考。 +3. 工作区(WorkSpace) WorkFlow 序列化 & 同步。 + 1. WorkSpace + 1. 每个用户可能拥有多个WorkSpace,每个Workspace拥有多个WorkFlow。 + 2. WorkFlow + 1. WorkFlow 流水线线号码、名称、工作流状态(原话设定、三视图、模型生成……)、创建人、参与人员 + 2. 节点相关信息 + 1. 节点公共信息:Position、折叠等。 + 2. 节点特有信息。 + 3. 同事导出了一份分析报告./docs/web/workflow-node-panel-guide.md,你可以参考一下。 +4. 资产库 + 1. 相关资产的对象存储。各种图片、模型。 + 2. 可以针对通过标签 过滤显示不同类型的资产。 + 3. 可以根据文件名、WorkSpace、WorkFlow名进行检索。 + 4. 在资产库点击项可以进行资产预览,模型、图片。 +5. 任务排队系统 + 1. 根据节点使用AI API的情况(AIGW、管理员设置的第三方AI API、用户设置自己的AI API)的,将任务分配对对应的任务池。 + 2. 构建一个Worker Pool,每个WorkFlow,使用一个主worker进行管理。 + 1. WorkFlow执行相关 + 1. 哪些节点是可以并行执行的?哪些节点是串行执行的? + 2. WorkFlow的执行状态(原话设定、三视图、模型生成、模型拆分、模型组装等),这些状态可以在管理员后台进行添加与定制。 + 3. 分配SubWorker来执行节点定义的操作。执行完之后将相关信息返回给主Worker,并将信息写入数据库,资产写对象存储服务,并将资产信息写入数据库中。 + 2. 每个节点的执行状态。(待命、执行中、执行成功、执行失败) + 3. 管理员后台可以看到各个类型任务的排队情况。 +6. AI API & 计费系统 + 1. 接入各种外部供应商API,提供各种模型、URL,管理员与用户只需要提供API Key或者API Token就可以完成配置。 + 2. Netease AIGW 参考 后续章节 AIGW文档。 + 3. 在用户设置页面添加AI API、Netease AIGW设置页面、以及 剩余积分 / 总共积分。 + 4. 实现可配置的计费系统。 + 1. 用户使用管理员配置的AI API就需要计算费用。 + 2. 在管理员的管理后台可以设置AI API的积分方式。 + 3. 第三方 AI服务商的API根据他们的文档信息设置计算方法。 + 4. AIGW相关费用计算参考 Netease AIGW 文档。 +7. 部署方式与信息 + 1. VPS SSH的方式,信息之后再填写。 + 2. 采用Docker Compose以容器的方式部署。 + 3. 对象存储采用:采用公司的S3对象存储服务,具体信息之后填写。 + 4. 数据库先采用VPS Docker部署的, 之后会迁移到公司提供的云数据库服务。 ## 技术选型 -我打算使用: -前端技术:TypeScript、Vue 3、Vite;前端组件请使用Element Plus,使用pnpm install element-plus 进行安装。 +前端技术:沿用现有技术框架。 后端技术:nodejs、Fastify、Mongoose、fastify-jwt -数据库:MongoDB -工具函数:Axios、VueUse、pnpm -文档管理:Obsidian Cli +数据库:MongoDB(帮我确定是否有必要干掉SQL服务器) +工具函数:Axios、pnpm +工程文档管理:Obsidian Cli ## 文档目录结构 - docs @@ -209,29 +250,12 @@ - Web:前端相关文档。 - Server:后端相关文档。 - -# 需求 -1. 在保证相关接口不变的情况下,重构./backend 中的服务端。 -2. 根据需求迭代./frontend 中的前端。 - - -3. 鉴权 - 1. 简单账号密码登录,预留OIDC登录相关接口。 - 2. 登录页面,需要截图参考。 -4. WorkSpace WorkFlow 序列化 & 同步。 - 1. 多个WorkFlow信息与显示(前端页面) - 2. WorkFlow 流水线线号码、名称、工作流状态(原话设定、三视图、模型生成……)、创建人、参与人员 - 3. 节点相关信息 - 1. common:Position、折叠、节点任务进度。 - 2. 具体信息。 - 4. 相关资产的对象存储。各种图片、模型。 -5. WorkFLow任务派发、排队、执行系统。 -6. AI API计费系统 - 1. API供应商、AIGW接入。 - 2. 计费公式。 -7. 管理后台。 - - +# 其他 +## Netease OIDC信息 +| | | +| ------------- | ---------------------------------------------------------------- | +| client id | 4884b03e951711f0ad370242ac120002 | +| client secret | f2862b8c5ab24085ab0883d119b631604884b354951711f0ad370242ac120002 | ## OIDC 参考代码 ```python #coding:UTF-8 @@ -445,4 +469,127 @@ if __name__ == "__main__": PYTHON_OIDC_DEMO.secret_key = "this is a random secret" PYTHON_OIDC_DEMO.debug = True PYTHON_OIDC_DEMO.run(host=host, port=port) -``` \ No newline at end of file +``` +# AI模型 +流程常用的AI模型 +VLM-Gemini+WD14反推,2D-liblib+nanobananapro,3D-Tripo P1,UV-Hunyuan,CDN-Filepicker,seedream4.5/5.0 和 Tripo / Meshy / Hunyuan/ Rodin / HItem3D +## 其他AI API 提供商 +你通过google搜索以及其他搜索SKill帮我收集信息。 +- 字节 火山引擎、seedream、seeddance +- 腾讯 混元 +- Google Gemini +- Chatgpt +- Tripo +- 阿里千问 + +## AIGW文档 +- https://aigw.doc.nie.netease.com/ +请打开浏览器进行阅读1.5~1.9章节,该网站需要登录,我会帮你登录,登录完会和你说我已经登录了。 + +支持的模型参考: +- https://docs.popo.netease.com/team/pc/hnnkwy_g/pageDetail/1e40f09ebff54d7b8377459b5e18e7b0?popo_locale=zh&appVersion=4.32.0&deviceType=0&popolocale=zh-CN&popo_hidenativebar=1&popo_noindicator=1&xyz=1747036937996&tab=0&disposable_login_token=1&xyz=1776331056585 + +将相关信息放到./docs/AIProvider 下,并且编写文档。 + + +## 部署 +将服务部署到VPS上,使用Docker Compose进行部署。部署前先检查docker 容器情况,保证不会影响到其他服务。 +ssh -p 32200 -i C:\Users\loujiajie\.ssh\netease_loujiajie_id_rsa loujiajie@10.145.96.67 + +S3 对象服务信息 +- NOS 桶信息 + - 名称:matrixaita + - 项目:artct + - 成本项目:artct + - 区域:GA + - Endpoint:gzdev + - 桶用户:p-artct-matrixaita + - 域名(内网):`nos-gzdev.163nos.com` + +相关资产放到 AssetMaker/ 目录后面 + + +--- +# 临时需求 +1. 添加账号: + 1. 账号:G37 + 2. 密码:G37 +2. 添加账号单点登录功能,其他电脑登录后会让当前电脑登录直接失效并且退回登录页面。给G37 单点登录。 + +新建远程开发模式,服务器为 +IP:10.219.36.57 +用户名:netease +密码:123 + +使用SSH来部署前后端,之后继续开发,目前怀疑VPS的容器网络纯在问题,使用本地另一台机器作为开发服务器进行测试 + +--- + +# Blender节点需求 +- 文档:https://docs.popo.netease.com/team/pc/ysai/pageDetail/4a88b0e6d806462589e01a13f3f90cff?appVersion=4.41.0&deviceType=0&popolocale=zh-CN&popo_hidenativebar=1&popo_noindicator=1&disposable_login_token=1 +- Blender 4.4.2 + + +1. 部署Blender + 1. Ubuntu/Linux系统:使用Docker来部署Blender 4.4.3 https://hub.docker.com/layers/linuxserver/blender/4.4.3/images/sha256-887027bed43b2488875591edc031545cd17f6bdf31e511a902c497f77bba09af + 2. Windows系统:下载与安装Blender 4.4.2 https://download.blender.org/release/Blender4.4/blender-4.4.2-windows-x64.zip +2. 安装 uvpackmaster,安装方法参考 uvpackmaster 安装文档 + 1. Engine位于./blender/UVPackmaster 4 v4.0.2/ + 1. linux:uvpm-engine-pro-4.0.2-linux-x86_64.run + 2. windows:uvpm-engine-pro-4.0.2-windows-x64.exe + 2. Blender插件./blender/UVPackmaster 4 v4.0.2/uvpackmaster4-addon-4.0.2.zip +3. 安装插件,位于./blender + 1. asset_organize_addon.zip + 2. batch_uv_pack_addon.zip + 3. explode_bake_addon.zip + +## uvpackmaster 安装文档 +### Linux[](https://uvpackmaster.com/doc4/blender/latest/10-uvpackmaster-setup/#linux "Linux") +Follow the steps: +1. If you are upgrading from an older UVPackmaster version, go to Blender preferences and uninstall the previous version of the UVPackmaster add-on. **After uninstalling, it is strongly recommended to restart Blender once, otherwise an error may occur when installing a new add-on version.** +2. Download the latest version of the UVPackmaster add-on for Blender from the marketplace where you purchased the packer (the add-on file name starts with uvpackmaster4-addon) and has zip extension. +3. Install the add-on using [the standard procedure for Blender add-ons](https://docs.blender.org/manual/en/latest/editors/preferences/addons.html). +4. Purchase a license for the 4 engine at Gumroad or Blender Market (visit the [Get UVPackmaster](https://uvpackmaster.com/for-blender/get-uvpackmaster/) page for details). Note that the engine is required to use the add-on packing features in Blender. After purchasing, download the UVPackmaster installer script from the marketplace. The name of the script follows a pattern: uvpm-engine-pro-{VERSION}-linux-x86_64.run. Make sure you use the correct engine version – **there must be a match between the add-on version and the engine version**. Also make sure your browser won’t open the engine installer script on its own when you click at it in the marketplace library. **Do not save the script opened in such a way**. Instead, press the right mouse button on the engine script in the marketplace library and choose Save the link as. +5. After downloading, run the installer script in the terminal. First you need to add the execute permission to it: + ```Cmd + chmod u+x uvpm-engine-pro-{VERSION}-linux-x86_64.run + ``` +6. Then run the script: + ```Cmd + ./uvpm-engine-pro-{VERSION}-linux-x86_64.run + ``` +7. The default extract location used by the script is /opt/uvpackmaster/engine4, but you can change it if you like using a command line argument. Changing the path is not recommended though, because the UVPackmaster addon will be able to automatically detect the engine, if it is extracted into the default path - no additional setup steps will be required. Note you will need root privilege to extract the engine into the default location on most Linux distributions. In order to run the installer script with root privilege, execute it using sudo: + ```Cmd + sudo ./uvpm-engine-pro-{VERSION}-linux-x86_64.run + ``` +8. The engine installer script will display the EULA - you need to accept it in order to continue installation. On some Linux distributions there is a bug causing the license agreement question not to be printed after the end of the EULA is reached. If you don’t see the question at the end of the EULA, simply press the Q button - after the button is pressed the question should be displayed normally. +9. Run Blender (or restart if you had it opened). Go to the N panel of the UV editor – you will find the UVPackmaster4 tab there. If you extracted the engine into the default path, at the top of the tab you should see a label reporting that the UVPackmaster engine was automatically detected by the add-on. You can immediately start using UVPackmaster features in Blender - the setup is done. If you changed the engine path, then proceed to the additional steps below. +10. In Blender go to: Edit Menu → Preferences → Add-ons → find the UVPackmaster4 addon on the list of all addons. Expand the UVPackmaster4 addon entry - you will see a UI with the addon global preferences. In the UI press the Set Engine Path button - a file browser window will appear. In the file browser navigate to the location where you extracted the engine and localize a file named release-{VERSION}.uvpmi – select the file in the browser. **Caution**: do not go into any subfolder of the extracted engine folder – you have to select the uvpmi file which is located in the main folder of the engine. After the uvpmi file is selected in the browser, you should notice a status message saying that the engine was initialized. +11. Save the Blender preferences to make the engine path permanent: click on the 3-bar icon in the bottom-left corner of the Blender preferences window and press Save Preferences. You can start using UVPackmaster features in Blender - the setup is done. + +## 节点参考 +参考代码目录.\blender\ldl-maker-api-master,相关Blender节点为 + +| | | | +| -------------------- | --- | -------------------------------------- | +| **Blender Bake** | | `backend/scripts/start_bake_server.py` | +| **Blender UV Pack** | | `start_uv_pack_server.py` | +| **Blender Organize** | | `start_organize_server.py` | + +--- + + +TODO: +# 保底与开发方案 + +- [ ] 单点登录实现 +- [ ] Project、WorkSpace、Workflow持久化。 + - [x] 使用楼嘉杰入职电脑部署服务来规避开发机房VPS的网络问题,数据库服务都部署到入职电脑上。 + - [ ] 楼嘉杰根据沈林海编写的节点代码实现持久化。 +- [ ] Blender + - [ ] 使用Freddy电脑部署钊铭Blender的服务,本地可以SSH连接方便AI进行调试。 + - [ ] 楼嘉杰通过UU,让钊铭进行远程部署。 + + + +实现一个单点登录功能,任何一个实体、网页登录之后都会让相同用户其他端的掉线,并且跳转到登录页面。 \ No newline at end of file diff --git a/07-Other/AI/AI Agent/WY/团队服务器.md b/07-Other/AI/AI Agent/WY/团队服务器.md new file mode 100644 index 0000000..076fd29 --- /dev/null +++ b/07-Other/AI/AI Agent/WY/团队服务器.md @@ -0,0 +1,290 @@ +# IP +- TA.Netease.com + - SSH:10.145.96.67:32200 + - ssh -p 32200 -i C:\Users\loujiajie\.ssh\netease_loujiajie_id_rsa loujiajie@10.145.96.67 +- Artlib + - SSH:10.145.96.68:32200 + - ssh -p 32200 -i C:\Users\loujiajie\.ssh\netease_loujiajie_id_rsa loujiajie@10.145.96.68 +- Artlib S3 + - NOS 桶信息 + - 名称:matrixaita + - 项目:artct + - 成本项目:artct + - 区域:GA + - Endpoint:gzdev + - 桶用户:p-artct-matrixaita + - 域名(内网):`nos-gzdev.163nos.com` + - Access Key:57SCV9Q4MPLXQ3JCL5K9 + - Secret Key:4dzMcakyxW2vEhCGjEfiXHtDgxZUiy57D9NqKOOm + +VPS_SSH_KEY + +## 文档 +- S3:https://sa.nie.netease.com/console/webconsole/idc/ +# 垃圾电脑服务 +我现在想在局域网里的另一台Ubuntu电脑上部署Unreal Horde服务,存储 缓存以及管理各个worker、节点信息;本机性能强劲,作为worker进行具体工作。 +- 电脑ip:10.219.36.57 +- 用户名:netease +- 密码:123 + +官方文档(UE5.5) + - https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-in-unreal-engine?application_version=5.5 +- Horde README.md https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Programs/Horde/README.md + - [**Deploying Horde**](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Programs/Horde/Docs/Deployment.md) + - - 有关 Horde 的架构和组件的信息,以及部署它们的最佳实践。 + **受众:** IT、系统管理员、打算修改 Horde 的程序员。 + - [**Configuring and Operating Horde**](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Programs/Horde/Docs/Config.md) + - - 描述如何设置和管理 Horde。 + **受众:**构建/开发运营团队、管理员。 + - [**Horde Internals**](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Programs/Horde/Docs/Internals.md) + - - 描述如何构建和修改 Horde 及其架构。 + **受众:**希望扩展 Horde 的开发人员。 +- 视频 + - [Horde and Unreal Build Accelerator: Operating at Epic Scale](https://youtu.be/ZUlwqNbYWBQ?si=DgFvrvepK67v-iTi) + +## 下载地址 +- 官方下载地址 + - 服务端:https://github.com/EpicGames/UnrealEngine/releases/download/5.5.0-release/UnrealHordeServer.msi + +# 大致步骤 +1. 使用docker部署服务。 +2. 服务器配置。 + 1. 默认端口Http 13340、Http 2 13342。 + 1. 默认情况下,Horde配置为使用端口5000通过未加密的HTTP提供数据。在默认情况下,代理通过端口5002使用未加密的HTTP/2上的gRPC与Horde服务器通信。这些设置在服务器启动时显示在控制台上。 + 2. [相关配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-orientation-for-unreal-engine?application_version=5.5) + - [服务器配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE)将配置该服务器与其他服务器的通信,定义静态参数等。它由与该服务器一同部署的 `Server.json` 文件驱动。 + - [完整配置参数清单](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-settings-for-unreal-engine?application_version=5.5#%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE) + - [全局配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-schema-for-unreal-engine?application_version=5.5#globals)在部署后控制所有面向用户的元素,该配置存于名为 `Globals.json` 的文件中。设置好部署参数后,大多数配置都在此处完成。 + 3. [验证相关配置](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-authentication-tutorial-for-unreal-engine?application_version=5.5) + 1. [[#OIDC身份验证]] +3. 代理机配置。详见 http://10.219.103.35:13340/docs/Landing.md + 1. 配置文件位置:安装目录\Agent\Defaults\agent.json + 2. +# 部署笔记 + +## 部署流程 +- [Horde服务器](https://dev.epicgames.com/documentation/zh-cn/unreal-engine/horde-server-for-unreal-engine?application_version=5.5) + +# Perforce服务器 +ssl:inner02-commit.perforce.nie.netease.com:1667 + +# OIDC +## Netease OIDC信息 +| | | +| ------------- | ---------------------------------------------------------------- | +| client id | 4884b03e951711f0ad370242ac120002 | +| client secret | f2862b8c5ab24085ab0883d119b631604884b354951711f0ad370242ac120002 | +## OIDC 参考代码 +```python +#coding:UTF-8 +""" +Requirements: + 1. Flask >= 0.10.1 + 2. requests + 3. jwkest >= 1.1.7 + +Usage: + python oidc_code_demo.py -H {listen_address} -p {listen_port} + +Help: + python oidc_code_demo.py -h +""" +import os +import uuid +from hashlib import md5 +import datetime +from urllib import urlencode +import json +import requests +from flask import Flask, request, jsonify, session, redirect + +from jwkest.jwk import SYMKey +from jwkest.jws import JWS +from jwkest.jwk import load_jwks_from_url +from jwkest.jws import NoSuitableSigningKeys + +__revision__ = "0.01" +__author__ = "chenxs@corp.netease.com" + +OIDC_CLIENT_ID = "" +OIDC_CLIENT_SECRET = "" +OIDC_PROVIDER = "https://login.netease.com/connect" +OIDC_AUTHORIZATION_SERVER = "https://login.netease.com/connect/authorize" +OIDC_TOKEN_ENDPOINT = "https://login.netease.com/connect/token" +OIDC_USERINFO_ENDPOINT = "https://login.netease.com/connect/userinfo" +OIDC_SCOPE = "openid nickname email fullname dep title empno" +OIDC_REDIRECT_URI = "https://127.0.0.1:5000/finish" +OIDC_JWKS_URI = "https://login.netease.com/connect/jwks" +OIDC_ALG = "HS256" + +PYTHON_OIDC_DEMO = Flask(__name__) + +@PYTHON_OIDC_DEMO.route("/", methods=['GET']) +def index(): + """index""" + if 'username' in session: + body = ( + u"