insert_knowledge_direct.py 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import os
  2. import sys
  3. import json
  4. import uuid
  5. from datetime import datetime, timezone
  6. from pathlib import Path
  7. # 添加项目路径
  8. sys.path.insert(0, '/root/Agent')
  9. os.environ['OPEN_ROUTER_API_KEY'] = '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'
  10. os.environ['QWEN_API_KEY'] = 'sk-9453c827b9e14108b53d2b30ef7c75fe'
  11. os.environ['KNOWHUB_DB'] = 'gp-t4n72471pkmt4b9q7o-master.gpdbmaster.singapore.rds.aliyuncs.com'
  12. os.environ['KNOWHUB_PORT'] = '5432'
  13. os.environ['KNOWHUB_USER'] = 'aiddit_aigc'
  14. os.environ['KNOWHUB_PASSWORD'] = '%a&&yqNxg^V1$toJ*WOa^-b^X=QJ'
  15. os.environ['KNOWHUB_DB_NAME'] = 'knowhub'
  16. from knowhub.knowhub_db.pg_store import PostgreSQLStore
  17. from knowhub.embeddings import get_embedding
  18. # 知识数据
  19. knowledge_data = {
  20. "task": "人物近景肖像",
  21. "content": "生成人物近景半身或胸部以上画面、突出面部表情和情绪、背景虚化的核心工序要素包括:\n\n1. **近景/半身构图**:使用 tight medium close-up、extreme close-up、中近景半身等提示词;推荐 85mm 镜头视角;构图比例 2:3 或 9:16(竖版)、3:4(职业照)\n\n2. **面部表情细节**:使用锁脸技术(nano-banana 锁脸功能)、微表情描述(slightly parted lips、calm introspective expression)、多表情生成(3×3 网格生成 9 种表情);关键提示词:direct steady eye contact、subtle catchlights in eyes\n\n3. **背景虚化效果**:推荐参数 85mm 镜头 + f/1.4-f/1.8 光圈;提示词:shallow depth of field、extremely shallow depth of field、soft bokeh blur、blurring out the neck, ear, and background completely;后期工具:Photoshop Lens Blur、DxO Photolab 9 Bokeh\n\n4. **皮肤质感真实**:避免塑料感的关键提示词:realistic skin texture with visible pores and natural imperfections、no plastic smoothing、dewy smooth texture;修复工具:Enhancor.ai Skin Realism\n\n5. **眼神互动感**:direct eye contact、catchlights in eyes、gentle and engaging eyes、looking directly at the camera",
  22. "types": ["strategy"],
  23. "tags": {
  24. "domain": "AI 生图",
  25. "source": "多渠调研汇总",
  26. "task": "人物近景肖像"
  27. },
  28. "score": 5,
  29. "source": {"category": "research"}
  30. }
  31. print("正在连接数据库...")
  32. store = PostgreSQLStore()
  33. # 生成 ID
  34. now = datetime.now(timezone.utc)
  35. knowledge_id = f"knowledge-{now.strftime('%Y%m%d')}-{uuid.uuid4().hex[:8]}"
  36. message_id = f"msg-{uuid.uuid4().hex[:12]}"
  37. # 生成 embedding
  38. print("正在生成 embedding...")
  39. task_embedding = get_embedding(knowledge_data["task"])
  40. content_embedding = get_embedding(knowledge_data["content"])
  41. # 构建知识记录
  42. knowledge = {
  43. "id": knowledge_id,
  44. "message_id": message_id,
  45. "task": knowledge_data["task"],
  46. "content": knowledge_data["content"],
  47. "types": knowledge_data["types"],
  48. "tags": knowledge_data["tags"],
  49. "tag_keys": list(knowledge_data["tags"].keys()),
  50. "scopes": [],
  51. "owner": "librarian",
  52. "source": knowledge_data["source"],
  53. "eval": {"score": knowledge_data["score"]},
  54. "created_at": now.isoformat(),
  55. "updated_at": now.isoformat(),
  56. "status": "approved",
  57. "task_embedding": task_embedding,
  58. "content_embedding": content_embedding,
  59. "requirement_ids": [],
  60. "capability_ids": [],
  61. "tool_ids": [],
  62. "resource_ids": [],
  63. }
  64. print(f"正在插入知识:{knowledge_id}")
  65. print(f" Task: {knowledge['task']}")
  66. print(f" Types: {knowledge['types']}")
  67. print(f" Tags: {knowledge['tags']}")
  68. store.insert(knowledge)
  69. print(f"\n✓ 知识已成功入库!")
  70. print(f" ID: {knowledge_id}")
  71. print(f" Message ID: {message_id}")
  72. # 验证插入
  73. retrieved = store.get_by_id(knowledge_id)
  74. if retrieved:
  75. print(f"\n✓ 验证成功:已检索到刚插入的知识")
  76. print(f" Task: {retrieved['task']}")
  77. print(f" Content 长度:{len(retrieved['content'])} 字符")
  78. else:
  79. print(f"\n✗ 验证失败:无法检索到刚插入的知识")