import os import sys import json import uuid from datetime import datetime, timezone from pathlib import Path # 添加项目路径 sys.path.insert(0, '/root/Agent') os.environ['OPEN_ROUTER_API_KEY'] = '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' os.environ['QWEN_API_KEY'] = 'sk-9453c827b9e14108b53d2b30ef7c75fe' os.environ['KNOWHUB_DB'] = 'gp-t4n72471pkmt4b9q7o-master.gpdbmaster.singapore.rds.aliyuncs.com' os.environ['KNOWHUB_PORT'] = '5432' os.environ['KNOWHUB_USER'] = 'aiddit_aigc' os.environ['KNOWHUB_PASSWORD'] = '%a&&yqNxg^V1$toJ*WOa^-b^X=QJ' os.environ['KNOWHUB_DB_NAME'] = 'knowhub' from knowhub.knowhub_db.pg_store import PostgreSQLStore from knowhub.embeddings import get_embedding # 知识数据 knowledge_data = { "task": "人物近景肖像", "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", "types": ["strategy"], "tags": { "domain": "AI 生图", "source": "多渠调研汇总", "task": "人物近景肖像" }, "score": 5, "source": {"category": "research"} } print("正在连接数据库...") store = PostgreSQLStore() # 生成 ID now = datetime.now(timezone.utc) knowledge_id = f"knowledge-{now.strftime('%Y%m%d')}-{uuid.uuid4().hex[:8]}" message_id = f"msg-{uuid.uuid4().hex[:12]}" # 生成 embedding print("正在生成 embedding...") task_embedding = get_embedding(knowledge_data["task"]) content_embedding = get_embedding(knowledge_data["content"]) # 构建知识记录 knowledge = { "id": knowledge_id, "message_id": message_id, "task": knowledge_data["task"], "content": knowledge_data["content"], "types": knowledge_data["types"], "tags": knowledge_data["tags"], "tag_keys": list(knowledge_data["tags"].keys()), "scopes": [], "owner": "librarian", "source": knowledge_data["source"], "eval": {"score": knowledge_data["score"]}, "created_at": now.isoformat(), "updated_at": now.isoformat(), "status": "approved", "task_embedding": task_embedding, "content_embedding": content_embedding, "requirement_ids": [], "capability_ids": [], "tool_ids": [], "resource_ids": [], } print(f"正在插入知识:{knowledge_id}") print(f" Task: {knowledge['task']}") print(f" Types: {knowledge['types']}") print(f" Tags: {knowledge['tags']}") store.insert(knowledge) print(f"\n✓ 知识已成功入库!") print(f" ID: {knowledge_id}") print(f" Message ID: {message_id}") # 验证插入 retrieved = store.get_by_id(knowledge_id) if retrieved: print(f"\n✓ 验证成功:已检索到刚插入的知识") print(f" Task: {retrieved['task']}") print(f" Content 长度:{len(retrieved['content'])} 字符") else: print(f"\n✗ 验证失败:无法检索到刚插入的知识")