feat: 初始化画个标仓库 - AI驱动设计系统(BYOK模式) - 224源/371504图标+25海报源+130技能
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 甄房知识图谱健康检查(只读)
|
||||
# 检查项:孤立实体 / 悬空关系 / 前缀合规(不得出现 XiaoHu:)
|
||||
# 用法: python _design-test/kg-health.py [关键词]
|
||||
import os, re, sys, pymysql
|
||||
|
||||
ZF = r'e:\KF_7\ZhenOS-ZF'
|
||||
env = {}
|
||||
for ln in open(os.path.join(ZF, '.env.local'), encoding='utf-8'):
|
||||
m = re.match(r'^\s*([A-Z_][A-Z0-9_]*)\s*=\s*(.*?)\s*$', ln)
|
||||
if m:
|
||||
env[m.group(1)] = m.group(2).strip().strip('"').strip("'")
|
||||
|
||||
conn = pymysql.connect(host='rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com', port=3306,
|
||||
user=env['DB_USERNAME'], password=env['DB_PASSWORD'],
|
||||
charset='utf8mb4', connect_timeout=12)
|
||||
cur = conn.cursor()
|
||||
cur.execute('USE zhenos_kg')
|
||||
|
||||
def one(sql):
|
||||
cur.execute(sql); return cur.fetchone()[0]
|
||||
|
||||
print('=== 甄房知识图谱健康检查 ===')
|
||||
print(' 实体总数 ', one('SELECT COUNT(*) FROM kg_entities'))
|
||||
print(' 关系总数 ', one('SELECT COUNT(*) FROM kg_relations'))
|
||||
print(' 孤立实体(无任何关系)', one(
|
||||
'SELECT COUNT(*) FROM kg_entities e WHERE NOT EXISTS('
|
||||
'SELECT 1 FROM kg_relations r WHERE r.from_entity=e.entity_name OR r.to_entity=e.entity_name)'))
|
||||
print(' 悬空关系 from ', one(
|
||||
'SELECT COUNT(*) FROM kg_relations WHERE from_entity NOT IN (SELECT entity_name FROM kg_entities)'))
|
||||
print(' 悬空关系 to ', one(
|
||||
'SELECT COUNT(*) FROM kg_relations WHERE to_entity NOT IN (SELECT entity_name FROM kg_entities)'))
|
||||
print(' 非 ZhenosSH: 前缀实体', one(
|
||||
"SELECT COUNT(*) FROM kg_entities WHERE entity_name NOT LIKE 'ZhenosSH:%'"))
|
||||
print(" 旧前缀 XiaoHu: ", one("SELECT COUNT(*) FROM kg_entities WHERE entity_name LIKE 'XiaoHu:%'"))
|
||||
print(' dev_knowledge 条数 ', one('SELECT COUNT(*) FROM dev_knowledge'))
|
||||
print(' 其中 source=AI_SYNC ', one("SELECT COUNT(*) FROM dev_knowledge WHERE source='AI_SYNC'"))
|
||||
print(' 实体中 AI_SYNC ', one("SELECT COUNT(*) FROM kg_entities WHERE source='AI_SYNC'"))
|
||||
print(' 关系中 AI_SYNC 模块 ', one("SELECT COUNT(*) FROM kg_relations WHERE module IN ('ruoyi-ui','zhenfang-uni')"))
|
||||
|
||||
cur.execute("SELECT entity_type, entity_name FROM kg_entities WHERE source='AI_SYNC' ORDER BY entity_type, entity_name")
|
||||
_rows = cur.fetchall()
|
||||
if _rows:
|
||||
print('\n source=AI_SYNC 的新增实体(%d 个):' % len(_rows))
|
||||
for t, n in _rows:
|
||||
print(' %-12s %s' % (t, n))
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
kw = sys.argv[1]
|
||||
cur.execute("SELECT entity_type, entity_name FROM kg_entities WHERE entity_name LIKE %s ORDER BY entity_type",
|
||||
('%' + kw + '%',))
|
||||
rows = cur.fetchall()
|
||||
print('\n 含「%s」的实体 %d 个:' % (kw, len(rows)))
|
||||
for t, n in rows:
|
||||
print(' %-14s %s' % (t, n))
|
||||
cur.execute("SELECT type, title FROM dev_knowledge WHERE title LIKE %s OR tags LIKE %s",
|
||||
('%' + kw + '%', '%' + kw + '%'))
|
||||
rows = cur.fetchall()
|
||||
print(' 含「%s」的知识条目 %d 条:' % (kw, len(rows)))
|
||||
for t, n in rows:
|
||||
print(' %-12s %s' % (t, n))
|
||||
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user