fix: auto-fix code issues (cron)
- 修复重复导入/字段 - 修复异常处理 - 修复PEP8格式问题 - 添加类型注解
This commit is contained in:
@@ -19,6 +19,7 @@ from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class SearchOperator(Enum):
|
||||
"""搜索操作符"""
|
||||
|
||||
@@ -26,6 +27,7 @@ class SearchOperator(Enum):
|
||||
OR = "OR"
|
||||
NOT = "NOT"
|
||||
|
||||
|
||||
# 尝试导入 sentence-transformers 用于语义搜索
|
||||
try:
|
||||
from sentence_transformers import SentenceTransformer
|
||||
@@ -37,6 +39,7 @@ except ImportError:
|
||||
|
||||
# ==================== 数据模型 ====================
|
||||
|
||||
|
||||
@dataclass
|
||||
class SearchResult:
|
||||
"""搜索结果数据模型"""
|
||||
@@ -60,6 +63,7 @@ class SearchResult:
|
||||
"metadata": self.metadata,
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class SemanticSearchResult:
|
||||
"""语义搜索结果数据模型"""
|
||||
@@ -85,6 +89,7 @@ class SemanticSearchResult:
|
||||
result["embedding_dim"] = len(self.embedding)
|
||||
return result
|
||||
|
||||
|
||||
@dataclass
|
||||
class EntityPath:
|
||||
"""实体关系路径数据模型"""
|
||||
@@ -114,6 +119,7 @@ class EntityPath:
|
||||
"path_description": self.path_description,
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class KnowledgeGap:
|
||||
"""知识缺口数据模型"""
|
||||
@@ -141,6 +147,7 @@ class KnowledgeGap:
|
||||
"metadata": self.metadata,
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class SearchIndex:
|
||||
"""搜索索引数据模型"""
|
||||
@@ -154,6 +161,7 @@ class SearchIndex:
|
||||
created_at: str
|
||||
updated_at: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class TextEmbedding:
|
||||
"""文本 Embedding 数据模型"""
|
||||
@@ -166,8 +174,10 @@ class TextEmbedding:
|
||||
model_name: str
|
||||
created_at: str
|
||||
|
||||
|
||||
# ==================== 全文搜索 ====================
|
||||
|
||||
|
||||
class FullTextSearch:
|
||||
"""
|
||||
全文搜索模块
|
||||
@@ -776,8 +786,10 @@ class FullTextSearch:
|
||||
conn.close()
|
||||
return stats
|
||||
|
||||
|
||||
# ==================== 语义搜索 ====================
|
||||
|
||||
|
||||
class SemanticSearch:
|
||||
"""
|
||||
语义搜索模块
|
||||
@@ -1138,8 +1150,10 @@ class SemanticSearch:
|
||||
print(f"删除 embedding 失败: {e}")
|
||||
return False
|
||||
|
||||
|
||||
# ==================== 实体关系路径发现 ====================
|
||||
|
||||
|
||||
class EntityPathDiscovery:
|
||||
"""
|
||||
实体关系路径发现模块
|
||||
@@ -1609,8 +1623,10 @@ class EntityPathDiscovery:
|
||||
bridge_scores.sort(key=lambda x: x["bridge_score"], reverse=True)
|
||||
return bridge_scores[:20] # 返回前20
|
||||
|
||||
|
||||
# ==================== 知识缺口识别 ====================
|
||||
|
||||
|
||||
class KnowledgeGapDetection:
|
||||
"""
|
||||
知识缺口识别模块
|
||||
@@ -2013,8 +2029,10 @@ class KnowledgeGapDetection:
|
||||
|
||||
return recommendations
|
||||
|
||||
|
||||
# ==================== 搜索管理器 ====================
|
||||
|
||||
|
||||
class SearchManager:
|
||||
"""
|
||||
搜索管理器 - 统一入口
|
||||
@@ -2187,9 +2205,11 @@ class SearchManager:
|
||||
"semantic_search_available": self.semantic_search.is_available(),
|
||||
}
|
||||
|
||||
|
||||
# 单例模式
|
||||
_search_manager = None
|
||||
|
||||
|
||||
def get_search_manager(db_path: str = "insightflow.db") -> SearchManager:
|
||||
"""获取搜索管理器单例"""
|
||||
global _search_manager
|
||||
@@ -2197,6 +2217,7 @@ def get_search_manager(db_path: str = "insightflow.db") -> SearchManager:
|
||||
_search_manager = SearchManager(db_path)
|
||||
return _search_manager
|
||||
|
||||
|
||||
# 便捷函数
|
||||
def fulltext_search(
|
||||
query: str, project_id: str | None = None, limit: int = 20
|
||||
@@ -2205,6 +2226,7 @@ def fulltext_search(
|
||||
manager = get_search_manager()
|
||||
return manager.fulltext_search.search(query, project_id, limit=limit)
|
||||
|
||||
|
||||
def semantic_search(
|
||||
query: str, project_id: str | None = None, top_k: int = 10
|
||||
) -> list[SemanticSearchResult]:
|
||||
@@ -2212,11 +2234,13 @@ def semantic_search(
|
||||
manager = get_search_manager()
|
||||
return manager.semantic_search.search(query, project_id, top_k=top_k)
|
||||
|
||||
|
||||
def find_entity_path(source_id: str, target_id: str, max_depth: int = 5) -> EntityPath | None:
|
||||
"""查找实体路径便捷函数"""
|
||||
manager = get_search_manager()
|
||||
return manager.path_discovery.find_shortest_path(source_id, target_id, max_depth)
|
||||
|
||||
|
||||
def detect_knowledge_gaps(project_id: str) -> list[KnowledgeGap]:
|
||||
"""知识缺口检测便捷函数"""
|
||||
manager = get_search_manager()
|
||||
|
||||
Reference in New Issue
Block a user