feat: 自动提交 - 周一 2025/09/22 16:50:40.70
This commit is contained in:
@@ -29,18 +29,67 @@ def get_agent_assistant():
|
||||
|
||||
@knowledge_bp.route('')
|
||||
def get_knowledge():
|
||||
"""获取知识库列表"""
|
||||
"""获取知识库列表(分页)"""
|
||||
try:
|
||||
# 获取分页参数
|
||||
page = request.args.get('page', 1, type=int)
|
||||
per_page = request.args.get('per_page', 10, type=int)
|
||||
category_filter = request.args.get('category', '')
|
||||
verified_filter = request.args.get('verified', '')
|
||||
|
||||
# 从数据库获取知识库数据
|
||||
knowledge_entries = get_assistant().knowledge_manager.get_knowledge_entries(
|
||||
page=page, per_page=per_page
|
||||
)
|
||||
from src.core.database import db_manager
|
||||
from src.core.models import KnowledgeEntry
|
||||
|
||||
return jsonify(knowledge_entries)
|
||||
with db_manager.get_session() as session:
|
||||
# 构建查询
|
||||
query = session.query(KnowledgeEntry).filter(KnowledgeEntry.is_active == True)
|
||||
|
||||
# 应用过滤器
|
||||
if category_filter:
|
||||
query = query.filter(KnowledgeEntry.category == category_filter)
|
||||
if verified_filter:
|
||||
if verified_filter == 'true':
|
||||
query = query.filter(KnowledgeEntry.is_verified == True)
|
||||
elif verified_filter == 'false':
|
||||
query = query.filter(KnowledgeEntry.is_verified == False)
|
||||
|
||||
# 按创建时间倒序排列
|
||||
query = query.order_by(KnowledgeEntry.created_at.desc())
|
||||
|
||||
# 计算总数
|
||||
total = query.count()
|
||||
|
||||
# 分页查询
|
||||
knowledge_entries = query.offset((page - 1) * per_page).limit(per_page).all()
|
||||
|
||||
# 转换为字典
|
||||
knowledge_data = []
|
||||
for entry in knowledge_entries:
|
||||
knowledge_data.append({
|
||||
'id': entry.id,
|
||||
'question': entry.question,
|
||||
'answer': entry.answer,
|
||||
'category': entry.category,
|
||||
'confidence_score': entry.confidence_score,
|
||||
'usage_count': entry.usage_count,
|
||||
'is_verified': entry.is_verified,
|
||||
'is_active': entry.is_active,
|
||||
'created_at': entry.created_at.isoformat() if entry.created_at else None,
|
||||
'updated_at': entry.updated_at.isoformat() if entry.updated_at else None
|
||||
})
|
||||
|
||||
# 计算分页信息
|
||||
total_pages = (total + per_page - 1) // per_page
|
||||
|
||||
return jsonify({
|
||||
'knowledge': knowledge_data,
|
||||
'page': page,
|
||||
'per_page': per_page,
|
||||
'total': total,
|
||||
'total_pages': total_pages
|
||||
})
|
||||
|
||||
except Exception as e:
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
|
||||
Reference in New Issue
Block a user