From d8fde93b69ffa265d5e59bcaeceb2f97c3938ec5 Mon Sep 17 00:00:00 2001
From: Nelson <1475262689@qq.com>
Date: Fri, 31 Jul 2026 15:53:47 +0800
Subject: [PATCH] feat: add teacher help cards
---
.../apps/admin-web/src/App.vue | 19 +++
.../apps/admin-web/src/types/api.ts | 13 ++
.../versions/0016_teacher_help_cards.py | 51 ++++++++
.../apps/backend/app/api/admin_records.py | 14 +-
.../apps/backend/app/api/chat.py | 30 +++++
.../apps/backend/app/models/__init__.py | 3 +-
.../apps/backend/app/models/growth.py | 20 ++-
.../backend/app/services/help_card_service.py | 123 ++++++++++++++++++
.../apps/backend/tests/test_help_cards.py | 64 +++++++++
.../apps/user-client/src/App.vue | 70 +++++++++-
.../src/components/SessionQuota.vue | 11 ++
.../apps/user-client/src/services/api.ts | 4 +
.../apps/user-client/src/styles.css | 33 +++++
.../apps/user-client/src/types/api.ts | 12 ++
.../docs/qianwen_product_todo.md | 4 +
15 files changed, 467 insertions(+), 4 deletions(-)
create mode 100644 ai_knowledge_base_v2/apps/backend/alembic/versions/0016_teacher_help_cards.py
create mode 100644 ai_knowledge_base_v2/apps/backend/app/services/help_card_service.py
create mode 100644 ai_knowledge_base_v2/apps/backend/tests/test_help_cards.py
diff --git a/ai_knowledge_base_v2/apps/admin-web/src/App.vue b/ai_knowledge_base_v2/apps/admin-web/src/App.vue
index eb9596a..b1eb82e 100644
--- a/ai_knowledge_base_v2/apps/admin-web/src/App.vue
+++ b/ai_knowledge_base_v2/apps/admin-web/src/App.vue
@@ -1603,6 +1603,25 @@ function formatRecordDateTime(value: string, boundary: "start" | "end") {
{{ card.content }}
+ 这不是转人工工单,系统不会自动发送给老师。你可以按真实情况删改后,自行复制给老师或班级群确认。
+ +确定退出当前账号吗?
diff --git a/ai_knowledge_base_v2/apps/user-client/src/components/SessionQuota.vue b/ai_knowledge_base_v2/apps/user-client/src/components/SessionQuota.vue index bcd89dc..e99decd 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/components/SessionQuota.vue +++ b/ai_knowledge_base_v2/apps/user-client/src/components/SessionQuota.vue @@ -9,11 +9,13 @@ const props = defineProps<{ limit: number; entitlement?: UserEntitlementSummary | null; finishing?: boolean; + generatingHelpCard?: boolean; }>(); defineEmits<{ finishTopic: []; openProfile: []; + generateHelpCard: []; }>(); const hasEntitlement = computed(() => Boolean(props.entitlement)); @@ -43,6 +45,15 @@ const limitText = computed(() => displayLimit.value === null ? "不限" : String + {{ displayUsed }}/{{ limitText }} diff --git a/ai_knowledge_base_v2/apps/user-client/src/services/api.ts b/ai_knowledge_base_v2/apps/user-client/src/services/api.ts index 654b6fd..16f5cd8 100644 --- a/ai_knowledge_base_v2/apps/user-client/src/services/api.ts +++ b/ai_knowledge_base_v2/apps/user-client/src/services/api.ts @@ -6,6 +6,7 @@ import type { FinishTopicResult, GrowthProfileResult, LoginResult, + TeacherHelpCard, UserProfile, } from "../types/api"; @@ -86,6 +87,9 @@ export const api = { request