当前位置: 首页 > 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.gsyq.cn/news/114934.html

相关文章:

  • 低成本实现专业级语音合成:EmotiVoice是你的首选
  • Odoo 中的不同用户类型详解
  • Windows11 26H1 游戏版!电脑系统安装使用教程! Windows11 26H1
  • 伏昔尼布VORANIGO显著延长低级别胶质瘤无进展生存期【海得康】
  • vue基于springboot的高校教师科研项目管理系统的设计与实现
  • Python 学习技术文章大纲基础语法与核心概念
  • 自动化测试框架搭建:持续验证EmotiVoice输出质量
  • EmotiVoice语音合成与音乐背景融合技巧:制作电台节目
  • 2025年全日制托管学校权威指南:破解成长困境,择校更需专业 - 深度智识库
  • 情感语音数据库建设:助力EmotiVoice持续迭代
  • 基于SpringBoot+Vue的大学生一体化服务系统源码文档部署文档代码讲解等
  • 每天一个网络知识:什么是 VXLAN?
  • EmotiVoice语音合成系统自动化测试框架搭建经验
  • 结合ASR构建完整对话系统:EmotiVoice的角色定位
  • 实用指南:智能化制造与工业互联网的未来:企业数字化转型的关键力量
  • DevExtreme JS ASP.NET Core v25.2预览 - DataGrid/TreeList全新升级
  • 四川省自建房设计公司/机构权威测评推荐排行榜 - 苏木2025
  • 烟草复烤 “洞道干燥 AI 风门”:把出料水分标准差压到 0.11%,复烤损耗再降 0.8‰​
  • 数据安全人才缺口扩大 2025年需求达150万人 - 金海境科技
  • 城市污水厂 “AAO 工艺 AI 鼓风量” 模型:把吨水电耗降到 0.21 kWh,一年跑出 600 万度电
  • STM32通过PWM实现呼吸灯效果:代码详解与硬件连接
  • 工程期刊投稿全攻略:高效发表指南
  • 史上最全的数据库类型汇总
  • 2025年景区军队雕塑实力厂家权威推荐榜单:军队大型雕塑/红色军队雕塑/国家军队雕塑源头厂家精选 - 品牌推荐官
  • vue基于springboot的农业合作社果蔬批发农产品商城信息管理系统的设计与实现
  • IROS‘25冠军 | X-VLA重磅开源,全面刷新机器人基准性能记录
  • 计算机毕设Java美食推荐系统 基于Java的美食推荐平台设计与实现 Java技术驱动的美食推荐系统开发
  • 纠结@Autowired报黄?我踩坑后理清的Spring注入那些事儿
  • 高保真语音生成:EmotiVoice在有声内容领域的应用
  • UV硅油涂布机选购指南:价格、品牌与性价比分析 - mypinpai