fix: auto-fix code issues (cron)

- 修复重复导入/字段
- 修复异常处理
- 修复PEP8格式问题 (816+ 处)
- 添加缺失的导入 (json, re)
- 统一SQL查询格式
- 修复赋值语句空格问题

修复文件:
- db_manager.py (96处)
- search_manager.py (77处)
- ops_manager.py (66处)
- developer_ecosystem_manager.py (68处)
- growth_manager.py (60处)
- enterprise_manager.py (61处)
- tenant_manager.py (57处)
- plugin_manager.py (48处)
- subscription_manager.py (46处)
- security_manager.py (29处)
- workflow_manager.py (32处)
- localization_manager.py (31处)
- api_key_manager.py (20处)
- ai_manager.py (23处)
- performance_manager.py (24处)
- neo4j_manager.py (25处)
- collaboration_manager.py (33处)
- test_phase8_task8.py (16处)
- test_phase8_task6.py (4处)
- knowledge_reasoner.py (添加import json)
- llm_client.py (添加import json)
This commit is contained in:
AutoFix Bot
2026-03-03 00:11:51 +08:00
parent c695e99eaf
commit 2a0ed6af4d
23 changed files with 1160 additions and 947 deletions

View File

@@ -439,7 +439,7 @@ class FullTextSearch:
params = []
if project_id:
base_where.append("project_id = ?")
base_where.append("project_id = ?")
params.append(project_id)
if content_types:
@@ -459,7 +459,7 @@ class FullTextSearch:
f"""
SELECT content_id, content_type, project_id, frequency, positions
FROM search_term_freq
WHERE term = ? AND {base_where_str}
WHERE term = ? AND {base_where_str}
""",
[term] + params,
).fetchall()
@@ -478,7 +478,7 @@ class FullTextSearch:
f"""
SELECT content_id, content_type, project_id, frequency, positions
FROM search_term_freq
WHERE term = ? AND {base_where_str}
WHERE term = ? AND {base_where_str}
""",
[term] + params,
).fetchall()
@@ -497,7 +497,7 @@ class FullTextSearch:
f"""
SELECT content_id, content_type, project_id, frequency, positions
FROM search_term_freq
WHERE term = ? AND {base_where_str}
WHERE term = ? AND {base_where_str}
""",
[token] + params,
).fetchall()
@@ -516,7 +516,7 @@ class FullTextSearch:
f"""
SELECT content_id, content_type
FROM search_term_freq
WHERE term = ? AND {base_where_str}
WHERE term = ? AND {base_where_str}
""",
[term] + params,
).fetchall()
@@ -551,13 +551,13 @@ class FullTextSearch:
try:
if content_type == "transcript":
row = conn.execute(
"SELECT full_text FROM transcripts WHERE id = ?", (content_id,)
"SELECT full_text FROM transcripts WHERE id = ?", (content_id,)
).fetchone()
return row["full_text"] if row else None
elif content_type == "entity":
row = conn.execute(
"SELECT name, definition FROM entities WHERE id = ?", (content_id,)
"SELECT name, definition FROM entities WHERE id = ?", (content_id,)
).fetchone()
if row:
return f"{row['name']} {row['definition'] or ''}"
@@ -568,9 +568,9 @@ class FullTextSearch:
"""SELECT r.relation_type, r.evidence,
e1.name as source_name, e2.name as target_name
FROM entity_relations r
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.id = ?""",
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.id = ?""",
(content_id,),
).fetchone()
if row:
@@ -589,15 +589,15 @@ class FullTextSearch:
try:
if content_type == "transcript":
row = conn.execute(
"SELECT project_id FROM transcripts WHERE id = ?", (content_id,)
"SELECT project_id FROM transcripts WHERE id = ?", (content_id,)
).fetchone()
elif content_type == "entity":
row = conn.execute(
"SELECT project_id FROM entities WHERE id = ?", (content_id,)
"SELECT project_id FROM entities WHERE id = ?", (content_id,)
).fetchone()
elif content_type == "relation":
row = conn.execute(
"SELECT project_id FROM entity_relations WHERE id = ?", (content_id,)
"SELECT project_id FROM entity_relations WHERE id = ?", (content_id,)
).fetchone()
else:
return None
@@ -712,13 +712,13 @@ class FullTextSearch:
# 删除索引
conn.execute(
"DELETE FROM search_indexes WHERE content_id = ? AND content_type = ?",
"DELETE FROM search_indexes WHERE content_id = ? AND content_type = ?",
(content_id, content_type),
)
# 删除词频统计
conn.execute(
"DELETE FROM search_term_freq WHERE content_id = ? AND content_type = ?",
"DELETE FROM search_term_freq WHERE content_id = ? AND content_type = ?",
(content_id, content_type),
)
@@ -737,7 +737,7 @@ class FullTextSearch:
try:
# 索引转录文本
transcripts = conn.execute(
"SELECT id, project_id, full_text FROM transcripts WHERE project_id = ?",
"SELECT id, project_id, full_text FROM transcripts WHERE project_id = ?",
(project_id,),
).fetchall()
@@ -750,7 +750,7 @@ class FullTextSearch:
# 索引实体
entities = conn.execute(
"SELECT id, project_id, name, definition FROM entities WHERE project_id = ?",
"SELECT id, project_id, name, definition FROM entities WHERE project_id = ?",
(project_id,),
).fetchall()
@@ -766,9 +766,9 @@ class FullTextSearch:
"""SELECT r.id, r.project_id, r.relation_type, r.evidence,
e1.name as source_name, e2.name as target_name
FROM entity_relations r
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.project_id = ?""",
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.project_id = ?""",
(project_id,),
).fetchall()
@@ -967,7 +967,7 @@ class SemanticSearch:
params = []
if project_id:
where_clauses.append("project_id = ?")
where_clauses.append("project_id = ?")
params.append(project_id)
if content_types:
@@ -1029,13 +1029,13 @@ class SemanticSearch:
try:
if content_type == "transcript":
row = conn.execute(
"SELECT full_text FROM transcripts WHERE id = ?", (content_id,)
"SELECT full_text FROM transcripts WHERE id = ?", (content_id,)
).fetchone()
result = row["full_text"] if row else None
elif content_type == "entity":
row = conn.execute(
"SELECT name, definition FROM entities WHERE id = ?", (content_id,)
"SELECT name, definition FROM entities WHERE id = ?", (content_id,)
).fetchone()
result = f"{row['name']}: {row['definition']}" if row else None
@@ -1044,9 +1044,9 @@ class SemanticSearch:
"""SELECT r.relation_type, r.evidence,
e1.name as source_name, e2.name as target_name
FROM entity_relations r
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.id = ?""",
JOIN entities e1 ON r.source_entity_id = e1.id
JOIN entities e2 ON r.target_entity_id = e2.id
WHERE r.id = ?""",
(content_id,),
).fetchone()
result = (
@@ -1087,7 +1087,7 @@ class SemanticSearch:
conn = self._get_conn()
row = conn.execute(
"SELECT embedding, project_id FROM embeddings WHERE content_id = ? AND content_type = ?",
"SELECT embedding, project_id FROM embeddings WHERE content_id = ? AND content_type = ?",
(content_id, content_type),
).fetchone()
@@ -1102,7 +1102,7 @@ class SemanticSearch:
rows = conn.execute(
"""SELECT content_id, content_type, project_id, embedding
FROM embeddings
WHERE project_id = ? AND (content_id != ? OR content_type != ?)""",
WHERE project_id = ? AND (content_id != ? OR content_type != ?)""",
(project_id, content_id, content_type),
).fetchall()
@@ -1140,7 +1140,7 @@ class SemanticSearch:
try:
conn = self._get_conn()
conn.execute(
"DELETE FROM embeddings WHERE content_id = ? AND content_type = ?",
"DELETE FROM embeddings WHERE content_id = ? AND content_type = ?",
(content_id, content_type),
)
conn.commit()
@@ -1192,7 +1192,7 @@ class EntityPathDiscovery:
# 获取项目ID
row = conn.execute(
"SELECT project_id FROM entities WHERE id = ?", (source_entity_id,)
"SELECT project_id FROM entities WHERE id = ?", (source_entity_id,)
).fetchone()
if not row:
@@ -1203,7 +1203,7 @@ class EntityPathDiscovery:
# 验证目标实体也在同一项目
row = conn.execute(
"SELECT 1 FROM entities WHERE id = ? AND project_id = ?",
"SELECT 1 FROM entities WHERE id = ? AND project_id = ?",
(target_entity_id, project_id),
).fetchone()
@@ -1231,11 +1231,11 @@ class EntityPathDiscovery:
"""
SELECT target_entity_id as neighbor_id, relation_type, evidence
FROM entity_relations
WHERE source_entity_id = ? AND project_id = ?
WHERE source_entity_id = ? AND project_id = ?
UNION
SELECT source_entity_id as neighbor_id, relation_type, evidence
FROM entity_relations
WHERE target_entity_id = ? AND project_id = ?
WHERE target_entity_id = ? AND project_id = ?
""",
(current_id, project_id, current_id, project_id),
).fetchall()
@@ -1268,7 +1268,7 @@ class EntityPathDiscovery:
# 获取项目ID
row = conn.execute(
"SELECT project_id FROM entities WHERE id = ?", (source_entity_id,)
"SELECT project_id FROM entities WHERE id = ?", (source_entity_id,)
).fetchone()
if not row:
@@ -1294,11 +1294,11 @@ class EntityPathDiscovery:
"""
SELECT target_entity_id as neighbor_id
FROM entity_relations
WHERE source_entity_id = ? AND project_id = ?
WHERE source_entity_id = ? AND project_id = ?
UNION
SELECT source_entity_id as neighbor_id
FROM entity_relations
WHERE target_entity_id = ? AND project_id = ?
WHERE target_entity_id = ? AND project_id = ?
""",
(current_id, project_id, current_id, project_id),
).fetchall()
@@ -1328,7 +1328,7 @@ class EntityPathDiscovery:
nodes = []
for entity_id in entity_ids:
row = conn.execute(
"SELECT id, name, type FROM entities WHERE id = ?", (entity_id,)
"SELECT id, name, type FROM entities WHERE id = ?", (entity_id,)
).fetchone()
if row:
nodes.append({"id": row["id"], "name": row["name"], "type": row["type"]})
@@ -1343,9 +1343,9 @@ class EntityPathDiscovery:
"""
SELECT id, relation_type, evidence
FROM entity_relations
WHERE ((source_entity_id = ? AND target_entity_id = ?)
OR (source_entity_id = ? AND target_entity_id = ?))
AND project_id = ?
WHERE ((source_entity_id = ? AND target_entity_id = ?)
OR (source_entity_id = ? AND target_entity_id = ?))
AND project_id = ?
""",
(source_id, target_id, target_id, source_id, project_id),
).fetchone()
@@ -1398,7 +1398,7 @@ class EntityPathDiscovery:
# 获取项目ID
row = conn.execute(
"SELECT project_id, name FROM entities WHERE id = ?", (entity_id,)
"SELECT project_id, name FROM entities WHERE id = ?", (entity_id,)
).fetchone()
if not row:
@@ -1424,14 +1424,14 @@ class EntityPathDiscovery:
"""
SELECT
CASE
WHEN source_entity_id = ? THEN target_entity_id
WHEN source_entity_id = ? THEN target_entity_id
ELSE source_entity_id
END as neighbor_id,
relation_type,
evidence
FROM entity_relations
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
""",
(current_id, current_id, current_id, project_id),
).fetchall()
@@ -1445,7 +1445,7 @@ class EntityPathDiscovery:
# 获取邻居信息
neighbor_info = conn.execute(
"SELECT name, type FROM entities WHERE id = ?", (neighbor_id,)
"SELECT name, type FROM entities WHERE id = ?", (neighbor_id,)
).fetchone()
if neighbor_info:
@@ -1490,12 +1490,12 @@ class EntityPathDiscovery:
"""
SELECT
CASE
WHEN source_entity_id = ? THEN target_entity_id
WHEN source_entity_id = ? THEN target_entity_id
ELSE source_entity_id
END as neighbor_id
FROM entity_relations
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
""",
(current, current, current, project_id),
).fetchall()
@@ -1565,7 +1565,7 @@ class EntityPathDiscovery:
# 获取所有实体
entities = conn.execute(
"SELECT id, name FROM entities WHERE project_id = ?", (project_id,)
"SELECT id, name FROM entities WHERE project_id = ?", (project_id,)
).fetchall()
# 计算每个实体作为桥梁的次数
@@ -1579,12 +1579,12 @@ class EntityPathDiscovery:
"""
SELECT
CASE
WHEN source_entity_id = ? THEN target_entity_id
WHEN source_entity_id = ? THEN target_entity_id
ELSE source_entity_id
END as neighbor_id
FROM entity_relations
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
""",
(entity_id, entity_id, entity_id, project_id),
).fetchall()
@@ -1601,12 +1601,12 @@ class EntityPathDiscovery:
AND target_entity_id IN ({", ".join(["?" for _ in neighbor_ids])}))
OR (target_entity_id IN ({", ".join(["?" for _ in neighbor_ids])})
AND source_entity_id IN ({", ".join(["?" for _ in neighbor_ids])})))
AND project_id = ?
AND project_id = ?
""",
list(neighbor_ids) * 4 + [project_id],
).fetchone()
# 桥接分数 = 邻居数量 / (邻居间连接数 + 1)
# 桥接分数 = 邻居数量 / (邻居间连接数 + 1)
bridge_score = len(neighbor_ids) / (connections["count"] + 1)
else:
bridge_score = 0
@@ -1690,7 +1690,7 @@ class KnowledgeGapDetection:
# 获取项目的属性模板
templates = conn.execute(
"SELECT id, name, type, is_required FROM attribute_templates WHERE project_id = ?",
"SELECT id, name, type, is_required FROM attribute_templates WHERE project_id = ?",
(project_id,),
).fetchall()
@@ -1706,7 +1706,7 @@ class KnowledgeGapDetection:
# 检查每个实体的属性完整性
entities = conn.execute(
"SELECT id, name FROM entities WHERE project_id = ?", (project_id,)
"SELECT id, name FROM entities WHERE project_id = ?", (project_id,)
).fetchall()
for entity in entities:
@@ -1714,7 +1714,7 @@ class KnowledgeGapDetection:
# 获取实体已有的属性
existing_attrs = conn.execute(
"SELECT template_id FROM entity_attributes WHERE entity_id = ?", (entity_id,)
"SELECT template_id FROM entity_attributes WHERE entity_id = ?", (entity_id,)
).fetchall()
existing_template_ids = {a["template_id"] for a in existing_attrs}
@@ -1726,7 +1726,7 @@ class KnowledgeGapDetection:
missing_names = []
for template_id in missing_templates:
template = conn.execute(
"SELECT name FROM attribute_templates WHERE id = ?", (template_id,)
"SELECT name FROM attribute_templates WHERE id = ?", (template_id,)
).fetchone()
if template:
missing_names.append(template["name"])
@@ -1759,7 +1759,7 @@ class KnowledgeGapDetection:
# 获取所有实体及其关系数量
entities = conn.execute(
"SELECT id, name, type FROM entities WHERE project_id = ?", (project_id,)
"SELECT id, name, type FROM entities WHERE project_id = ?", (project_id,)
).fetchall()
for entity in entities:
@@ -1770,8 +1770,8 @@ class KnowledgeGapDetection:
"""
SELECT COUNT(*) as count
FROM entity_relations
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
WHERE (source_entity_id = ? OR target_entity_id = ?)
AND project_id = ?
""",
(entity_id, entity_id, project_id),
).fetchone()["count"]
@@ -1785,8 +1785,8 @@ class KnowledgeGapDetection:
"""
SELECT e.id, e.name
FROM entities e
JOIN transcripts t ON t.project_id = e.project_id
WHERE e.project_id = ?
JOIN transcripts t ON t.project_id = e.project_id
WHERE e.project_id = ?
AND e.id != ?
AND t.full_text LIKE ?
LIMIT 5
@@ -1828,9 +1828,9 @@ class KnowledgeGapDetection:
"""
SELECT e.id, e.name, e.type
FROM entities e
LEFT JOIN entity_relations r1 ON e.id = r1.source_entity_id
LEFT JOIN entity_relations r2 ON e.id = r2.target_entity_id
WHERE e.project_id = ?
LEFT JOIN entity_relations r1 ON e.id = r1.source_entity_id
LEFT JOIN entity_relations r2 ON e.id = r2.target_entity_id
WHERE e.project_id = ?
AND r1.id IS NULL
AND r2.id IS NULL
""",
@@ -1869,8 +1869,8 @@ class KnowledgeGapDetection:
"""
SELECT id, name, type, definition
FROM entities
WHERE project_id = ?
AND (definition IS NULL OR definition = '')
WHERE project_id = ?
AND (definition IS NULL OR definition = '')
""",
(project_id,),
).fetchall()
@@ -1900,7 +1900,7 @@ class KnowledgeGapDetection:
# 分析转录文本中频繁提及但未提取为实体的词
transcripts = conn.execute(
"SELECT full_text FROM transcripts WHERE project_id = ?", (project_id,)
"SELECT full_text FROM transcripts WHERE project_id = ?", (project_id,)
).fetchall()
# 合并所有文本
@@ -1908,7 +1908,7 @@ class KnowledgeGapDetection:
# 获取现有实体名称
existing_entities = conn.execute(
"SELECT name FROM entities WHERE project_id = ?", (project_id,)
"SELECT name FROM entities WHERE project_id = ?", (project_id,)
).fetchall()
existing_names = {e["name"].lower() for e in existing_entities}
@@ -1962,9 +1962,9 @@ class KnowledgeGapDetection:
stats = conn.execute(
"""
SELECT
(SELECT COUNT(*) FROM entities WHERE project_id = ?) as entity_count,
(SELECT COUNT(*) FROM entity_relations WHERE project_id = ?) as relation_count,
(SELECT COUNT(*) FROM transcripts WHERE project_id = ?) as transcript_count
(SELECT COUNT(*) FROM entities WHERE project_id = ?) as entity_count,
(SELECT COUNT(*) FROM entity_relations WHERE project_id = ?) as relation_count,
(SELECT COUNT(*) FROM transcripts WHERE project_id = ?) as transcript_count
""",
(project_id, project_id, project_id),
).fetchone()
@@ -2140,7 +2140,7 @@ class SearchManager:
# 索引转录文本
transcripts = conn.execute(
"SELECT id, project_id, full_text FROM transcripts WHERE project_id = ?",
"SELECT id, project_id, full_text FROM transcripts WHERE project_id = ?",
(project_id,),
).fetchall()
@@ -2154,7 +2154,7 @@ class SearchManager:
# 索引实体
entities = conn.execute(
"SELECT id, project_id, name, definition FROM entities WHERE project_id = ?",
"SELECT id, project_id, name, definition FROM entities WHERE project_id = ?",
(project_id,),
).fetchall()
@@ -2174,7 +2174,7 @@ class SearchManager:
conn = sqlite3.connect(self.db_path)
conn.row_factory = sqlite3.Row
where_clause = "WHERE project_id = ?" if project_id else ""
where_clause = "WHERE project_id = ?" if project_id else ""
params = [project_id] if project_id else []
# 全文索引统计
@@ -2192,7 +2192,7 @@ class SearchManager:
if project_id:
rows = conn.execute(
"""SELECT content_type, COUNT(*) as count
FROM search_indexes WHERE project_id = ?
FROM search_indexes WHERE project_id = ?
GROUP BY content_type""",
(project_id,),
).fetchall()