当前位置: 首页 > news >正文

《60天AI学习计划启动 | Day 35: 前端 AI 调试面板(日志 / 请求回放》

Day 35:前端 AI 调试面板(日志 / 请求回放)

学习目标

  • 掌握 记录每次 AI 调用的关键数据(prompt/response/耗时/错误)
  • 理解 请求回放的价值(复现问题 / 调 Prompt)
  • 会设计 一个简单的前端“调试面板”数据结构

核心知识点

  • 1. 需要记录什么

    • 请求侧id / timestamp / prompt / meta(模型、温度、是否RAG/Agent…)
    • 响应侧answer / duration / tokens(usage) / error(network/server/timeout/biz)
  • 2. 调试面板基础形态

    • 列表:最近 N 次调用(倒序)→ 时间 / 用时 / 模型 / 状态
    • 详情:左侧展示请求(prompt + meta),右侧展示响应(answer / error / usage)
    • 核心功能:复制 prompt、(可选)回放同参请求
  • 3. 前端实现要点

    • 状态存放:内存中的 debugLogs(可选 localStorage 只存 20~50 条)
    • 写入时机:请求前写入基础信息,请求结束后补全 answer/duration/error
    • 注意脱敏:不要把密码/token/隐私字段原样写进日志

实战作业(附代码)

  • 作业 1:设计调试日志的 TS 类型
export type DebugStatus = 'ok' | 'error'export interface DebugMeta {model?: stringtemperature?: numbertop_p?: numberuseRag?: booleanuseAgent?: booleanextra?: Record<string, any>
}export interface DebugLogEntry {id: stringtimestamp: numberprompt: stringanswer?: stringdurationMs?: numberstatus: DebugStatuserrorMessage?: stringtokens?: {prompt?: numbercompletion?: numbertotal?: number}meta?: DebugMeta
}
  • 作业 2:简单“调试面板”结构(React 伪代码)
interface DebugPanelProps {logs: DebugLogEntry[]onClear: () => void
}export const DebugPanel: React.FC<DebugPanelProps> = ({ logs, onClear }) => {const [selectedId, setSelectedId] = useState<string | null>(null)const selected = logs.find(l => l.id === selectedId) ?? logs[0]return (<div className="debug-panel"><header><span>AI 调试({logs.length})</span><button onClick={onClear}>清空</button></header><div className="debug-body"><aside className="debug-list">{logs.map((l) => (<divkey={l.id}className={l.id === selected?.id ? 'item active' : 'item'}onClick={() => setSelectedId(l.id)}><div>{new Date(l.timestamp).toLocaleTimeString()}</div><div>{l.meta?.model || '-'}</div><div className={l.status}>{l.status} {l.durationMs && `(${l.durationMs}ms)`}</div></div>))}</aside><main className="debug-detail">{selected && (<><h4>Prompt</h4><pre>{selected.prompt}</pre><h4>Answer</h4><pre>{selected.answer}</pre></>)}</main></div></div>)
}
  • 作业 3:调试面板中想看的 5 条信息(代码形式)
export const DEBUG_INSPECT_ITEMS: string[] = ['实际发送给模型的 system prompt','截断前后的对话长度(消息数/token 数)','是否命中 RAG 以及命中的文档 id 列表','检索耗时 vs 模型生成耗时','本次调用的模型名 / 温度 / top_p 等参数'
]

补上这一段:


明日学习计划预告(Day 36)

  • 主题:Prompt 实验台 & 前端 A/B 对比
  • 目标
    • 搭一个简单页面:同一个问题,用多套 Prompt 生成多条答案
    • 前端支持快速切换 Prompt 模板、对每个结果打主观评分
  • 实现要点
    • 设计 PromptVariant 类型:id/name/template/说明
    • 一个问题输入框 + 多个「使用不同 Prompt」的调用按钮
    • 结果区按 Prompt 分组展示:Prompt 名 + Answer + 评分按钮

以后每天我都在底部加这个「明日学习计划预告」段落。

http://www.jsqmd.com/news/104122/

相关文章:

  • Arthas,阿里巴巴开款的Java诊断神器!
  • 语音合成个性化设置:保存常用音色模板功能
  • 比传统traceroute快10倍:新一代网络诊断工具
  • 5分钟构建API错误监控原型:从500错误开始
  • Windows11 26H1 游戏版!电脑系统安装使用教程! Windows11 26H1
  • Odoo 中的不同用户类型详解
  • EmotiVoice语音合成能否实现跨语言情感迁移?研究进展
  • 伏昔尼布VORANIGO显著延长低级别胶质瘤无进展生存期【海得康】
  • ESP32 FreeRTOS任务管理大全:概念、实现、优化与调试的一站式学习手册
  • 高表现力TTS新星:EmotiVoice让机器说话更有人情味
  • 2025AAAI-DivShift: Exploring Domain-Specific Distribution Shift in Large-Scale, Volunteer-Collected
  • vue基于springboot的高校教师科研项目管理系统的设计与实现
  • 信息系统项目管理师论文考情分析及评分标准
  • 企业级项目实战:Yarn安装失败的5种应急方案
  • vue基于springboot的高校大学生就业信息求职招聘需求的数据分析系统的设计与实现
  • 创业者必看!深圳注册代办公司靠谱之选-权威盘点
  • EmotiVoice语音合成情感迁移实验:将悲伤语气迁移到快乐文本
  • 2025AAAI-Revelations: A Decidable Class of POMDPs with Omega-Regular Objectives
  • EmotiVoice在短视频配音中的高效应用模式
  • 告别智能体「盲盒」,一次线上事故之后,我们决定给每个推理步骤都打上“调试桩”
  • 设备运维方案,运维巡检方案,驻场运维服务方案,运维标书
  • 2025年靠谱的国产操作系统厂家排行榜,国产操作系统服务与家 - 工业推荐榜
  • Python 学习技术文章大纲基础语法与核心概念
  • Android15适配之targetSdkVersion升到35后的踩坑记录
  • SpringBoot + FFmpeg + ZLMediaKit 实现本地视频推流
  • 2025年长沙好一点的美容学校推荐,去美容学校要多少钱? - mypinpai
  • 自动化测试框架搭建:持续验证EmotiVoice输出质量
  • vue基于springboot的大学生校园跑腿服务系统的设计与实现沙箱支付
  • 【TMS320开发】基于TMS320F28377SPTPS的SPI通信开发实战
  • EmotiVoice语音合成与音乐背景融合技巧:制作电台节目