insert_ai_workflow_capabilities.py 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. #!/usr/bin/env python3
  2. """
  3. 插入 AI 创作工作流的 16 个通用能力模块知识条目
  4. """
  5. import os
  6. import sys
  7. import json
  8. import uuid
  9. from datetime import datetime, timezone
  10. from pathlib import Path
  11. # 添加项目路径
  12. sys.path.insert(0, '/root/Agent')
  13. os.environ['OPEN_ROUTER_API_KEY'] = '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'
  14. os.environ['QWEN_API_KEY'] = 'sk-9453c827b9e14108b53d2b30ef7c75fe'
  15. os.environ['KNOWHUB_DB'] = 'gp-t4n72471pkmt4b9q7o-master.gpdbmaster.singapore.rds.aliyuncs.com'
  16. os.environ['KNOWHUB_PORT'] = '5432'
  17. os.environ['KNOWHUB_USER'] = 'aiddit_aigc'
  18. os.environ['KNOWHUB_PASSWORD'] = '%a&&yqNxg^V1$toJ*WOa^-b^X=QJ'
  19. os.environ['KNOWHUB_DB_NAME'] = 'knowhub'
  20. from knowhub.knowhub_db.pg_store import PostgreSQLStore
  21. from knowhub.embeddings import get_embedding
  22. # 知识数据 - AI 创作工作流的 16 个通用能力模块
  23. knowledge_data = {
  24. "task": "AI 创作工作流的 16 个通用能力模块",
  25. "content": """## 能力模块清单
  26. ### 素材准备类
  27. 1. **准备参考素材**:收集或生成用于后续创作的参考图像、纹理、角色基础等素材
  28. 2. **生成参考图表**:生成角色参考表、多视角图、多表情图等参考资料
  29. ### 角色定义类
  30. 3. **定义角色特征**:设定人物面部特征、表情状态、身份一致性等角色属性
  31. ### 场景构建类
  32. 4. **构建场景环境**:创建或合成场景背景、虚拟环境、空间布局
  33. ### 视觉控制类
  34. 5. **配置光影效果**:设置光源方向、灯光类型、明暗对比等光照条件
  35. 6. **控制姿态构图**:控制人物姿态、画面构图、视角、摄影参数
  36. 7. **应用风格控制**:应用风格迁移、保持视觉一致性、注入特定美学风格
  37. 8. **处理纹理效果**:添加纹理、颗粒、质感、色调等视觉效果
  38. 9. **创建纹理布局**:创建四方连续、渐变网格、矢量图形等纹理布局
  39. ### 生成执行类
  40. 10. **执行内容生成**:执行核心的图像、视频、渲染生成操作
  41. 11. **配置控制技术**:配置 ControlNet、深度图、姿态图等控制条件
  42. 12. **配置工作流**:配置工具节点、构建流程、设置参数
  43. ### 后期处理类
  44. 13. **修复细节瑕疵**:对局部区域进行重绘、修复瑕疵、优化细节
  45. 14. **增强图像质量**:提升图像分辨率、质量增强、最终精修
  46. 15. **后期合成处理**:抠图、选区创建、图像合成、图层处理
  47. 16. **视频后期处理**:视频剪辑、颜色分级、特效增强
  48. ## 跨品类复用性
  49. 以上模块均从 5 个不同品类的工作流(角色创作、人像精修、肖像摄影、光影控制、纹理设计)中抽象得出,可跨品类复用。""",
  50. "types": ["strategy"],
  51. "tags": {
  52. "domain": "AI 创作",
  53. "category": "能力模块",
  54. "source": "工作流分析 pipeline"
  55. },
  56. "score": 5,
  57. "source": {"category": "research"}
  58. }
  59. print("正在连接数据库...")
  60. store = PostgreSQLStore()
  61. # 生成 ID
  62. now = datetime.now(timezone.utc)
  63. knowledge_id = f"knowledge-{now.strftime('%Y%m%d')}-{uuid.uuid4().hex[:8]}"
  64. message_id = f"msg-{uuid.uuid4().hex[:12]}"
  65. # 生成 embedding
  66. print("正在生成 embedding...")
  67. task_embedding = get_embedding(knowledge_data["task"])
  68. content_embedding = get_embedding(knowledge_data["content"])
  69. # 构建知识记录
  70. knowledge = {
  71. "id": knowledge_id,
  72. "message_id": message_id,
  73. "task": knowledge_data["task"],
  74. "content": knowledge_data["content"],
  75. "types": knowledge_data["types"],
  76. "tags": knowledge_data["tags"],
  77. "tag_keys": list(knowledge_data["tags"].keys()),
  78. "scopes": [],
  79. "owner": "librarian",
  80. "source": knowledge_data["source"],
  81. "eval": {"score": knowledge_data["score"]},
  82. "created_at": now.isoformat(),
  83. "updated_at": now.isoformat(),
  84. "status": "approved",
  85. "task_embedding": task_embedding,
  86. "content_embedding": content_embedding,
  87. "requirement_ids": [],
  88. "capability_ids": [],
  89. "tool_ids": [],
  90. "resource_ids": [],
  91. }
  92. print(f"正在插入知识:{knowledge_id}")
  93. print(f" Task: {knowledge['task']}")
  94. print(f" Types: {knowledge['types']}")
  95. print(f" Tags: {knowledge['tags']}")
  96. print(f" Content 长度:{len(knowledge['content'])} 字符")
  97. store.insert(knowledge)
  98. print(f"\n✓ 知识已成功入库!")
  99. print(f" ID: {knowledge_id}")
  100. print(f" Message ID: {message_id}")
  101. # 验证插入
  102. retrieved = store.get_by_id(knowledge_id)
  103. if retrieved:
  104. print(f"\n✓ 验证成功:已检索到刚插入的知识")
  105. print(f" Task: {retrieved['task']}")
  106. print(f" Content 长度:{len(retrieved['content'])} 字符")
  107. print(f" Types: {retrieved['types']}")
  108. print(f" Tags: {retrieved['tags']}")
  109. else:
  110. print(f"\n✗ 验证失败:无法检索到刚插入的知识")
  111. store.close()
  112. print("\n数据库连接已关闭")