Spaces:
Sleeping
Sleeping
Clare 登录与数据收集说明
一、登录机制
1.1 当前实现
- 入口:侧边栏 “Student Login” → 输入 Student Name 和 Email/ID → 点击 “Enter”。
- 本质:前端身份标识,不是账号密码认证。
- 不校验姓名/邮箱是否真实、是否已注册。
- 不连接学校 SSO 或任何外部认证系统。
- 用途:
- 解锁聊天、导出、Quiz、TTS 等按钮(未填时这些功能不可用)。
- 在需要时作为 “学生标识” 参与日志(见下文)。
1.2 登录后保存的内容
所有“登录后”的状态都保存在 Gradio 的会话状态(gr.State) 里,且 仅存在于当前会话:
| 状态 | 含义 | 持久化 |
|---|---|---|
user_name_state |
学生姓名 | 否 |
user_id_state |
Email/ID | 否 |
weakness_state |
弱项列表 | 否 |
cognitive_state_state |
认知状态 | 否 |
course_outline_state |
课程大纲 | 否 |
rag_chunks_state |
上传文件 RAG 块 | 否 |
| 聊天历史 | 本轮对话 | 否 |
- 刷新页面或关闭标签页 → 上述状态全部清空,相当于新会话。
- 没有数据库、没有后端用户表、没有把学生信息或对话存到文件。
因此:当前没有“根据学生信息建立并持久化个人档案”的机制,只有“当前这次访问”内的状态。
二、与 AI 互动的数据是否被收集?
2.1 设计上的“收集”逻辑(LangSmith)
代码里设计了把部分互动数据上报到 LangSmith 的逻辑:
- 数据集名:
clare_user_events(需在 LangSmith 中先创建该 dataset)。 - 上报内容(
log_event)包括:student_id:即当前输入的 Email/ID(或未登录时为"ANON")event_type:事件类型question/answer:问题与回答(部分事件)timestamp、latency_ms、model_name、language、learning_mode等元数据
会尝试上报的事件类型包括:
| event_type | 含义 |
|---|---|
chat_turn |
每次和 Clare 的一轮问答 |
micro_quiz_start |
开始 Micro-Quiz |
like |
点赞某条回答 |
dislike |
点踩某条回答 |
detailed_feedback |
提交详细反馈 |
也就是说:若 LangSmith 配置成功,理论上会按“学生 ID + 事件类型”收集这些与 AI 的互动数据。
2.2 实际运行情况
- 你之前的日志里有:“LangSmith log failed: Dataset clare_user_events not found”。
- 说明:当前环境里 LangSmith 写入失败,多半是因为:
- 未在 LangSmith 中创建名为
clare_user_events的 dataset,或 - API 密钥/项目配置不正确。
- 未在 LangSmith 中创建名为
因此:在当前配置下,这些互动数据并没有被成功写入 LangSmith,即 没有在实际落地存储。
三、总结回答你的问题
登录后,系统会不会根据学生信息“建立”个人档案?
不会。 没有用户库、没有个人档案表,只有当前会话里的姓名/ID 和状态,刷新即丢失。会不会“收集”与 AI 的互动数据?
设计上会(通过 LangSmith,且带student_id),但 目前因为 LangSmith 报错,实际上没有成功写入任何持久化存储。数据存在哪里?
- 会话内:仅在浏览器与 Gradio 进程内存中,不落库、不写文件。
- 持久化:当前没有;若修好 LangSmith 并创建
clare_user_events,则会在 LangSmith 中按事件类型 + 学生 ID 存储上述互动数据。
四、若要让“登录后根据学生信息建立和收集互动数据”真正生效
LangSmith
- 在 LangSmith 中创建 dataset:
clare_user_events。 - 在 Clare 部署环境(如 HF Space Secrets)中配置正确的
LANGSMITH_API_KEY等。 - 这样现有
log_event才会成功,互动数据才会被收集并按student_id可查。
- 在 LangSmith 中创建 dataset:
持久化学生与长期档案(可选)
- 若需要“为每个学生建立档案、跨会话保留弱项/认知状态/历史记录”,需要自行增加后端存储,例如:
- 数据库(如 PostgreSQL / SQLite)存用户表 + 会话表 + 事件表;或
- 用 Notion/Google Sheet 等 API 写入。
- 当前代码没有这类实现,只有 LangSmith 的“事件日志”设计。
- 若需要“为每个学生建立档案、跨会话保留弱项/认知状态/历史记录”,需要自行增加后端存储,例如:
简要结论:
当前 Clare 的“登录”只是前端解锁功能用的身份标识;会话状态不持久;与 AI 的互动数据在设计上会通过 LangSmith 按学生 ID 收集,但目前因 LangSmith 未配置成功而没有实际写入,因此目前没有在后台根据学生信息建立或持久化收集与 AI 的互动数据。