feat: persist cleaned question insights

This commit is contained in:
2026-07-31 16:50:11 +08:00
parent 6c03faf10c
commit a589a25bdc
10 changed files with 505 additions and 21 deletions

View File

@@ -2,12 +2,14 @@ from sqlalchemy import create_engine
from datetime import datetime, timedelta
from sqlalchemy.orm import Session
from sqlalchemy.pool import StaticPool
from types import SimpleNamespace
from app.api.admin_agent_records import attention_list, retrieval_logs
from app.api.admin_records import ai_logs, chat_detail, chat_messages, question_insights
from app.api.admin_records import ai_logs, chat_detail, chat_messages, question_insights, refresh_question_insights
from app.api.admin_users import list_users
from app.models import Base
from app.models.chat import ChatMessage, ChatSession
from app.models.insight import QuestionInsightCleanedQuestion
from app.models.knowledge import HumanAttentionRecord, KnowledgeRetrievalLog
from app.models.logs import AiRequestLog
from app.models.user import User
@@ -129,6 +131,20 @@ def test_question_insights_clean_and_cluster_similar_user_questions():
db.add(AiRequestLog(session_id=1, user_id=1, status="SUCCESS", prompt="用户问题:心光有哪些作业?", knowledge_hit=0))
db.commit()
first_refresh = refresh_question_insights(
dateFrom=None,
dateTo=None,
maxMessages=100,
db=db,
current_admin=SimpleNamespace(id=1),
)["data"]
second_refresh = refresh_question_insights(
dateFrom=None,
dateTo=None,
maxMessages=100,
db=db,
current_admin=SimpleNamespace(id=1),
)["data"]
response = question_insights(
dateFrom=None,
dateTo=None,
@@ -141,6 +157,11 @@ def test_question_insights_clean_and_cluster_similar_user_questions():
)
data = response["data"]
assert first_refresh["processedMessages"] == 4
assert first_refresh["acceptedQuestions"] == 4
assert first_refresh["filteredMessages"] == 1
assert second_refresh["processedMessages"] == 0
assert db.query(QuestionInsightCleanedQuestion).count() == 5
assert data["summary"]["scannedMessages"] == 4
assert data["summary"]["filteredMessages"] == 1
assert data["summary"]["cleanedQuestions"] == 4