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

AI 说错了怎么办——给生成性 Agent 装上 Self-RAG 自审循环

AI 说错了怎么办——给生成性 Agent 装上 Self-RAG 自审循环Agent 早就跑通了但有一条横切线一直没单独写过深度阅读那种动辄一千多字的输出怎么知道 LLM 是不是在自圆其说。这周回过头来补这一篇顺便把本周做的几个小改动一并挂进去——它们各自不大但都跟让 AI 自己审 AI沾边。起因深度阅读 的伪批判SP5 早期跑 deep_read 的批判分析阶段时碰到一个让人挠头的现象。模型输出像这样该工作引入了对角编码Diagonal Encoding显著降低了 KeySwitching 操作次数但在表 3 的实验里BERT-large 的精度只下降了 0.3%远低于 NEXUS 的 1.2%……听起来很有理有据。但回去 PDF 里翻表 3根本没有 NEXUS 的对照行。“BERT-large 精度下降 0.3%” 这个数也对不上。模型在编。它不是胡说八道——它是把读到的几个事实揉到一起往中间塞一些看起来合理的数字。这是大模型的经典短板。在 chat 那种短回答里好查用户自己看一眼就知道但是 deep_read 一次输出 1500-2000 字用户大概率不会逐句对原文错就这么被吃进了用户的笔记里。Self-RAG 那篇 2023 的论文给的思路是事后检索让模型生成时把每一条主张拆出来做 atomic claim事后回到原文里查每一条是否有支持。我们做了个简化版——按句子拆而不是按 claim 拆理由下面讲。一、为什么按句子拆而不是按 claim 拆最初想法是让另一个 LLM 把 deep_read 的输出拆成 “断言列表”每个断言一个 JSON 对象附带需要什么证据字段。听起来很 Self-RAG 原教旨。试了一次之后放弃了。拆 claim 这一步本身就是个不可控的 LLM 调用拆得太碎一段话 30 条 claim检索证据 30 次太慢拆得太粗一段话 3 条 claim每条都包含 2-3 个事实验证粒度变成了整段对不对JSON 输出经常带 markdown 围栏、解释、漏字段又得加一层兜底而且拆 claim 引入了两层 LLM 不确定性一层拆一层验。第二层错的可能性只会被第一层放大。最后改成按句子拆简单到只用一个正则_SENTENCE_BOUNDARY_REre.compile(r(?[。.!?])\s*)defsplit_sentences(text:str)-list[str]:parts_SENTENCE_BOUNDARY_RE.split(text)return[s.strip()forsinpartsifs.strip()]中英文句末标点都覆盖到了零宽位置切前置 lookbehind不丢句末标点。一段 1500 字的批判一般拆出 30-50 个句子规模可控。代价是丢了一些 claim 跨句子的情况——比如 “X 把 Y 降到了 Z” 这种主张如果被拆成 “X 引入了 Y。Z 比之前低了 30%。” 两句每句单独看都基本合理但合起来才是错的。不过实测里这种情况很少trade-off 我们接受。二、检索原文当证据拿到 N 个待验证句子之后要去原文里找证据。直接把整段论文塞进 prompt 显然不行context 装不下所以走 RAG 检索。这一步本来想直接复用 SP9 的多路召回week4 写过 cosine BM25 union但有个细节要改用户提的查询通常是问题“这篇论文用了什么方法”而我们要验证的句子是陈述句“这篇论文用了对角编码”。chunk 边界、术语词频都不一样召回效果差不少。简单办法把句子按 4 句一组打包联合查询_BATCH_SIZE4forbatch_startinrange(0,total,_BATCH_SIZE):batchsentences[batch_start:batch_start_BATCH_SIZE]batch_text .join(batch)ifrag_serviceanddoc_id:resultsmulti_search(batch_text,doc_id,rag_service,top_k_per_path3)evidence_texts[r[text]forrinresults[:3]]ifnotevidence_textsandpaper_text:evidence_texts[paper_text[:3000]]else:evidence_texts[paper_text[:3000]]ifpaper_textelse[]4 句一起查的好处术语覆盖更密BM25 召回的 chunk 更命中坏处跨句的伪相关也可能被错召回当证据。实测 4 是个甜点——再大召回噪声明显增加再小比如 2经常召回到不相关的元数据块。兜底链multi_recall → 失败 → 用 paper_text 前 3000 字 → 还没有 → 空证据数组。空证据时 prompt 里写 “未找到相关原文”让 LLM 直接给 NO。这条 fallback 在 RAG 服务没起来时比如新机器还没加载 BGE 模型也能让流程跑完不会把整条 graph 卡死。三、让 LLM 给 YES/NO不要解释prompt 简短到出乎意料你是一个学术事实核查助手。请逐条判断以下断言是否有提供的原文证据直接支持。 ## 断言列表 [1] DiagFuse 引入了对角编码降低 KeySwitching 操作次数。 [2] BERT-large 上精度下降 0.3%。 [3] 远低于 NEXUS 的 1.2%。 ## 原文证据 前面 multi_recall 拿到的 3 段 chunk ## 要求 对每条断言回答一行格式为: [编号] YES 或 NO 仅回答编号和YES/NO不要解释。“不要解释” 这句话非常重要。早期版本没写模型每一条都加一段该断言可由原文 ‘XXX’ 支持因此 YES看起来认真但每次 LLM 多花两百个 token整篇 deep_read 验证完算下来多花十几次的钱。让 LLM 给最少必要输出是 prompt 工程里很容易被忽略的省钱手段。解析也极简def_parse_verification_response(raw:str,batch_size:int)-list[bool]:results:list[bool][]forlineinraw.strip().splitlines():upperline.upper().strip()ifYESinupper:results.append(True)elifNOinupper:results.append(False)whilelen(results)batch_size:results.append(True)# 模型偷懒少回了几条缺省视为通过returnresults[:batch_size]不强求[1] YES这种严格格式只看 “YES” 或 “NO” 关键词行内有就算。这是兜着 LLM 会乱写格式的一手。少回的句子默认True——给模型 benefit of doubt不把模型沉默算成幻觉。实测 LLM 验证输出DeepSeek 在一次 deep_read 后的 verify 调用里返回的[1] YES / [2] NO / ...形式响应演示 prompt不要解释那句话起作用——回答干净没有冗余流程图critical 和 synthesis 两个生成节点共享同一个 hallucination_check 出口。检测内部三步——按句切、multi_recall 取证据、LLM 逐句给 YES/NO——汇到决策菱形retry 回边接回 critical最多两次否则强制 pass 并把 flagged 加[待验证]标记。四、回退循环 上限保护按句子拿到 YES/NO list 之后算个flagged_ratioflagged_ratiolen(flagged_sentences)/totaliftotal0else0.0passedflagged_ratio0.3阈值 0.3 是试出来的。低了比如 0.1几乎每次都触发回退用户体验劝退高了0.5等于没做。0.3 的实际含义是一段话里超过三分之一的句子没在原文里找到证据就值得重新生成。不通过怎么办——回退到生成节点critical / synthesis重跑。LangGraph 的条件边就是干这个的defcheck_hallucination_result(state):hcstate.get(hallucination_check,{})returnpassifhc.get(passed,True)elseretrygraph.add_conditional_edges(hallucination_check,_hallucination_route_unified,{retry:critical,# 幻觉过多 → 重跑 criticalquestioner:questioner,# deep_read 通过 → 追问end:END,},)注意几个细节iteration_count上限保护。没这个保护理论上能死循环——模型重写出来还是过不去又回退又重写……我们设max_iterations 2到达上限后强制 passnew_iterationiteration_count1ifnotpassedandnew_iterationmax_iterations:passedTrue这是 LangGraph 编排里的硬规矩任何条件回边都必须有终止条件否则一个 prompt 写得不好的 corner case 就能把后端打挂。强制 pass 的时候要给用户留痕迹。标记可疑句子不删加[待验证]前缀def_mark_flagged(text,flagged_sentences):resulttextforsentinflagged_sentences:resultresult.replace(sent,f[待验证]{sent},1)returnresult这是个产品决策宁可输出有瑕疵的内容并明确标出也不要让用户看不到。如果直接删可疑句子输出会变得断断续续如果不标记用户会以为整段都靠谱。[待验证]是个明确的契约——“这一句我自己也没把握”。前端拿到这种带[待验证]的输出后理论上还能渲染成带样式的提示框但是这部分没做下周做答辩材料再补。五、跟 source_verifier 的边界week3 写过 source_verifier跟这周的 hallucination_check 听上去都是验真容易混淆。区别清楚source_verifier (SP11)hallucination_check验什么[12]这种显式引用标记是否对应真实文献LLM 输出里隐式断言是否有原文支持用什么验Semantic Scholar APIRAG 检索 LLM错了怎么办在引用旁打 ⚠️ 标记触发回退重写循环频次每个 [N] 引用一次 S2 调用每 4 句一次 LLM 一次 RAG两者配合形成两层防线——source_verifier 兜显式引用hallucination_check 兜隐式主张。LangGraph 里 source_verifier 是单独的 intent 分支用户问引用对不对才走hallucination_check 是 deep_read / critical 出口处的强制检查点。六、本周顺手做的几件小事写到这里正题大致讲完了。本周还有几个小改动跟自审主题擦边一并提一下。code_executor 之前的 stdout / exit_code 只往 chat 流里推state 里不留痕。这周加了一段把它落到accumulated_results[code_output]accumulated[code_output]{stdout:.join(stdout_parts),stderr:.join(stderr_parts),exit_code:exit_code,error:error,}意义在哪Self-RAG 检查证据的时候证据种类多了一种——代码实际跑出来的输出。比如 LLM 说我算的准确率是 0.952如果对应的 code_executor 跑过print(accuracy)输出0.952这是比原文还硬的证据。RAG 检索那条路是软证据语义相似code_output 这条路是硬证据执行结果。这一项目前还没接到 hallucination_check 的 evidence 链里——是个明显的 follow-up但接进去 prompt 又得重新调留给下周。顺便把 dockerlogs(streamTrue)换成attach(streamTrue, demuxTrue, logsTrue)。一来 stdout / stderr 终于分流了二来 WSL2 下 named pipe 偶发挂起的老问题没了attach 用底层 stdio不走 logs buffer。后台线程 queue.get(timeout1)主循环每 5 秒没输出就发一个heartbeat事件给前端免得用户盯着进度条 30 秒没反应。另一件相关的是 citation_graph_node 的意图分类升级。之前是关键词路由_OUTGOING_KEYWORDS(引用了,引用的,参考,references,cites)_INCOMING_KEYWORDS(被引,被谁,incoming,cited by,被引用)这种规则识别不出related work 都引了谁这种间接问法。改成 LLM 分类 关键词降级def_classify_intent(query,llm_client):ifllm_clientisnotNone:try:rawllm_client.generate(_INTENT_PROMPT.format(queryquery[:500]),max_tokens8,temperature0.0)labelstr(raw).strip().lower()fortokenin(outgoing,incoming,both):iftokeninlabel:returntokenexceptExceptionasexc:logger.warning(LLM 意图分类失败降级关键词路由: %s,exc)# 关键词降级 ...这跟 hallucination_check 的设计模式其实是一致的LLM 当判断器但兜底永远在。LLM 失败时走关键词LLM 死循环时max_iterationsLLM 解析不出 YES/NO 时缺省 True。Agent 系统里 LLM 在哪都不能是单点。还有 chart_extractor 这周改成优先读 mineru 持久化的 figures——上传 PDF 后后台跑 mineru 抽图meta.json 里多了figures字段节点开门先看这个字段没有再 fallback 到 PDF 现场抽图路径 C 整页渲染。“有真证据就用没有就降级”——又是同一抽象。零零碎碎的 polish登录失败 5 次锁 10 分钟内存计数器、Argon2id 旁路 bcrypthash 前缀自动分派、Alembic baseline 配置不强制走 alembic留作下次 schema 变更的入口、docker-compose 把上周已经从 yml 清掉的 11 个 Dify 服务的容器实例也物理删了写了个幂等清理脚本。这些是为公开 demo 准备的防御性补强单独都不够撑一段。七、踩过的坑iteration_count这个状态字段一开始忘了在 initial state 里显式置 0结果.get(iteration_count, 0)拿到的是 NoneLangGraph state 用 TypedDict缺失的 key 不会触发 .get 的默认值跟整数 max_iterations 比较直接 TypeError。第一次复现时报错信息卡在 LangGraph 内部traceback 二十多层都是框架代码我以为是 langgraph 自己挂了查了二十分钟才发现是 None 比较。在 build_graph_v2 的 initial state 里加一行iteration_count: 0解决。flagged_ratio在total 0时直接 ZeroDivisionError——deep_read 偶尔会输出空文本prompt 里塞的 context 太长触发了 token 限制整篇切句切出来是 0 条。加一行if total 0 else 0.0修了。剩下的几个小坑放一起LLM 偶尔用 markdown 列表回答 (- [1] YES)开头的-让早期的 startswith 解析 fail。改成line.upper()在整行里找 YES/NO 关键词之后稳了。batch_size 试过 1 / 2 / 4 / 8。1 慢一次 LLM 调用就两百字 prompt8 时 LLM 经常少回几条context 里看到 8 个断言累了。4 是甜点。_mark_flagged早期text.replace(sent, ...)没带 count1同一句话在输出里出现两次时会被全部加[待验证]前缀。早期 prompt 没写 “不要解释”LLM 每次多输出 200 token。一篇 deep_read 验证完三十几次 LLM 调用开销从 ~5 元降到 ~1.5 元就靠这一句。八、测了什么单测一共 14 个 case覆盖split_sentences中英混排 / 多种标点 / 空文本 / 只剩空白、_parse_verification_response标准 YES/NO / 带解释 / 少回几条 / 全是 NO、_mark_flagged重复句子只标第一次 / 句子在原文里没找到时不崩。最有意思的是集成测跑 deep_read on GIF-FHE 那篇论文故意在 prompt 末尾加 “请在最后一段编造一个 GPU 型号的对比”看 hallucination_check 抓不抓得到。结果编造段落的 4 句里有 3 句被 flaggedflagged_ratio 0.18全文 39 句刚好没触发回退阈值 0.3但 3 句被加[待验证]前缀输出。手工评估识别准确。前端聊天界面里[待验证]前缀的真实渲染为了验证回退确实在改进输出把阈值临时调到 0.1 强制触发一次重写第二轮 flagged_ratio 从 0.18 降到 0.05——说明把上一轮的 flagged sentences 喂回 prompt 当 “上次错在哪” 是真的有效的模型确实在避开自己之前编的内容。再回退一次降到 0.04几乎没改进印证了max_iterations2不是 3 是合理的。flagged_ratio 多轮收敛对比第二轮九、下周要做的SP15 真实论文压力测试用本地 9 篇有 figures 的论文跑 10 轮端到端 chat / extract_charts / personalized_summary看慢路径和失败 case把[待验证]标记前端化渲染成有底色的提示块鼠标 hover 显示 “未在原文中找到直接证据”。这一项压在答辩材料后面做因为只有视觉调整小结Self-RAG 这套东西做下来我个人最大的体会是让 AI 把不确定的地方明确标出来比逼 AI 永远不犯错实用得多。这周做的事情概括起来就是——deep_read 输出之后插一刀让 LLM 自己回去原文核对每一句找不到证据的就回退重写最多两次还过不去就把可疑句子留下来加[待验证]让用户自己看清楚。跑下来的体验是 deep_read 输出从流畅但可能在编变成稍微慢一点但每句话基本都在原文里有出处。一千多字的批判最后保留个三五句[待验证]配合 week3 做的 source_verifier 兜显式引用整套生成性 Agent 的输出质量是看得见提升的。慢的代价不小一次 deep_read 多花 30-50 秒、一两块钱 token但对学术阅读这种场景是合理 trade-off——用户宁可多等半分钟也不想被 AI 误导。

相关文章:

AI 说错了怎么办——给生成性 Agent 装上 Self-RAG 自审循环

AI 说错了怎么办——给生成性 Agent 装上 Self-RAG 自审循环Agent 早就跑通了,但有一条横切线一直没单独写过:深度阅读那种动辄一千多字的输出,怎么知道 LLM 是不是在自圆其说。这周回过头来补这一篇,顺便把本周做的几个小改动一并…...

NotebookLM赋能社科研究(从文献综述到理论建模的闭环实践)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM赋能社科研究(从文献综述到理论建模的闭环实践) NotebookLM 是 Google 推出的面向研究者的 AI 原生笔记工具,其核心能力在于对用户上传的 PDF、TXT 等本地…...

数据血缘是什么?怎么建设数据血缘?

今年跟十几个企业老板聊AI落地,发现大家都有一个共识:不上AI是等死,乱上AI是找死。为什么?因为AI这玩意儿就像顶级厨师,食材不新鲜、来历不明,做出来的菜照样能毒倒一片。这里的食材,就是数据。…...

FOC如何控制速度力矩大小,以及无感FOC检测电角度的方法

FOC 控制电机,本质就一句话: 通过控制三相电流,让定子磁场始终在“最合适的角度”拉着/推着转子转。 更工程一点说: 速度靠速度环调节,扭矩靠 q 轴电流 Iq 调节,电角度靠编码器/霍尔/无感估算得到。 1. …...

告别预编译包!手把手教你为Qt6项目定制编译OpenCV,解锁WITH_QT支持

告别预编译包!手把手教你为Qt6项目定制编译OpenCV,解锁WITH_QT支持 在计算机视觉开发领域,OpenCV无疑是使用最广泛的库之一。然而,许多开发者可能没有意识到,直接从官网下载的预编译版本OpenCV可能无法充分发挥其与Qt框…...

AI测试-如何选择AI测试工具

在 AI 编程席卷开发圈的 2026 年,面对琳琅满目的工具,测试同学最常问的就是:Augment、Cursor、Trae、Claude Code、Codex 到底该怎么选? 这五款工具虽同为 AI 编程助手,但产品定位、技术路线和适用场景天差地别。本文…...

docker-compose修改配置后实现开机自启

如图,我四个服务,都写了个简单的restart.sh的脚本。 要让这四个服务开机自动启动,最稳妥的方法是用 systemd 服务管理: 用 systemd 管理(稳定可控) 1. 创建统一的启动脚本 # 新建一个脚本目录 mkdir -p …...

【NotebookLM新闻传播研究权威指南】:20年传媒技术专家亲授AI驱动的新闻生产新范式

更多请点击: https://kaifayun.com 第一章:NotebookLM新闻传播研究导论 NotebookLM 是 Google 推出的基于大型语言模型的实验性研究助手,专为信息整合、溯源验证与知识重构设计。其核心能力在于对用户上传的文档(PDF、TXT、网页…...

智能体状态管理:会话、上下文与检查点

从一个“跑了三天三夜的Agent突然失忆”说起,聊聊状态管理的那些坑先给你讲一个让我头皮发麻的运维事故。 去年冬天,我们做了一个自动爬取竞品价格并生成调价建议的Agent。它跑得很好,连续工作了三天,完成了两万多件商品的价格监控…...

NotebookLM播客工作流优化实战:3个被92%用户忽略的关键提示词配置,提升生成质量400%

更多请点击: https://kaifayun.com 第一章:NotebookLM播客生成的核心原理与局限性 NotebookLM 是 Google 推出的基于用户自有文档进行 AI 助理交互的实验性工具,其播客生成功能并非独立模块,而是依托于底层的“多文档理解 指令驱…...

证件照换装API实战指南:一键换装,告别服装不合格!

还在为证件照服装不符合要求而烦恼?可立图ClipImg证件照换装API,自动识别身形与姿态,一键替换为正装,让你的照片瞬间专业起来!一、痛点场景:你的证件照是否也遇到过这些尴尬吗?求职简历&#xf…...

气候模型结果难解读?NotebookLM因果推理模块深度拆解(附GFDL-ESM4输出可复现分析链)

更多请点击: https://kaifayun.com 第一章:NotebookLM气候研究辅助 NotebookLM 是 Google 推出的基于 AI 的研究协作者,专为处理长文档、技术报告与多源数据而设计。在气候科学研究中,它可快速解析 IPCC 报告、CMIP6 模型输出摘要…...

魔兽争霸III终极优化指南:7个实用方案让经典游戏完美适配现代硬件

魔兽争霸III终极优化指南:7个实用方案让经典游戏完美适配现代硬件 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III作为一款经典…...

Ti AWR2243实测:毫米波雷达通道积累,选相干还是非相干?一个实验讲清楚

Ti AWR2243毫米波雷达通道积累策略:工程实践中的深度抉择 毫米波雷达在现代自动驾驶系统中扮演着关键角色,而通道积累策略的选择直接影响着目标检测的精度与系统实时性。面对192个虚拟通道的海量数据,工程师们常常陷入两难:是追求…...

2026年公司文化专题片拍摄公司排行榜:行业深度解析

引言随着企业对品牌传播和文化建设的重视程度不断提升,公司文化专题片成为展示企业形象、传递核心价值观的重要手段。越来越多的企业开始关注如何通过高质量的专题片来提升品牌形象和企业文化影响力。本文将深入分析2026年公司文化专题片拍摄行业的趋势,…...

MySQL 8.0.36 保姆级部署指南:从MSI到ZIP,新手避坑全解析

1. MySQL 8.0.36 安装方式选择 第一次接触MySQL安装的朋友可能会被各种安装包搞晕。目前MySQL 8.0.36主要有两种安装方式:MSI安装程序和ZIP压缩包。这两种方式各有特点,适合不同需求的用户。 MSI安装程序就像我们平时安装软件一样,全程图形化…...

Elsevier投稿追踪插件:科研工作者的智能审稿管家

Elsevier投稿追踪插件:科研工作者的智能审稿管家 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 当您的论文投稿到Elsevier期刊后,漫长的审稿等待期往往成为科研工作者的焦虑来源。Elsevier投…...

别再死磕官网了!用Docker Compose 5分钟搞定Weaviate向量数据库本地部署

5分钟极速部署Weaviate:Docker Compose避坑指南 当开发者第一次接触Weaviate时,往往会被官网复杂的配置选项和冗长的文档吓退。作为一款开源的向量数据库,Weaviate确实提供了强大的语义搜索和AI原生功能,但官方安装流程却像迷宫一…...

LangChain实战:从零构建RAG应用与模块化开发指南

1. 项目概述:LangChain示例库的实战价值如果你最近在尝试用大语言模型(LLM)构建应用,大概率会听到“LangChain”这个名字。它就像一个乐高积木的百宝箱,把调用LLM、连接外部数据、管理对话记忆这些复杂任务&#xff0c…...

VScode:将VScode界面的显示语言改为简体中文

这是 VS Code 设置语言的标准方式,直接强制指定界面语言: 在 VS Code 界面按下快捷键 Ctrl Shift P(Windows/Linux),Mac 用户用 Cmd Shift P,打开「命令面板」 在弹出的输入框里,输入 Confi…...

AutoJs6:Android平台终极JavaScript自动化解决方案

AutoJs6:Android平台终极JavaScript自动化解决方案 【免费下载链接】AutoJs6 安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目) 项目地址: https://gitcode.com/gh_mirrors/au/AutoJs6 你是否曾经想过用JavaScript代码就能控制Android手机完成各种重复…...

终极指南:使用EdgeRemover专业卸载工具彻底移除Microsoft Edge浏览器

终极指南:使用EdgeRemover专业卸载工具彻底移除Microsoft Edge浏览器 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRem…...

AI营销软件提升企业客户获取与运营效率的创新解决方案

AI营销软件正在为企业带来前所未有的客户获取与运营效率提升。它利用多平台整合功能,实现信息的统一管理,极大地优化了客户获取流程。这种软件不仅可以进行智能内容创作,还能高效分发到各大渠道,进而提升品牌的市场影响力。同时&a…...

AI智能体的开发与测试

AI智能体(AI Agent)的开发与测试是一项将大语言模型(LLM)能力转化为企业级稳定应用的系统工程。它不仅需要先进的算法,更依赖于严密的工程架构与创新的测试方法。以下是AI智能体开发与测试的全景指南:第一部…...

从开题到终稿,9 款 AI 毕业论文工具横评:okbiye 领衔,帮你告别熬夜改稿循环

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 论文季的深夜,你是不是也对着空白文档反复刷新浏览器?开题报告被导师打回三次、文献综述东拼西凑逻辑不通、终稿排版…...

本地部署 SQLite 数据库管理工具 SQLite Web 并实现外部访问( Linux 版本)

SQLite Web 是一款轻量级的、基于 Web 的图形化界面工具,用于浏览和管理 SQLite 数据库文件,它通常以一个独立的可执行文件或 Python 包的形式存在,让用户可以通过浏览器方便地查看、查询、编辑和管理 .db 或 .sqlite 等 SQLite 数据库。本文…...

AI智能体的测试

测试AI智能体(AI Agent)与测试传统的确定性软件有本质的区别。传统软件测试关注的是“输入 A,是否必然输出 B”;而 AI Agent 具备自主规划、工具调用、长期记忆和非确定性生成的能力,这导致它的测试维度更广、复杂度更…...

1.解锁 Bootloader + 线刷 + 基带恢复,高通 EDL 模式自动化刷机(Python 脚本),解决黑砖 / Bootloop 难题

摘要 本文以工程化视角系统阐述主流品牌手机刷机维修的底层原理与标准化操作流程。覆盖高通、联发科、苹果A系列芯片平台的刷机协议、分区表结构、恢复模式触发机制及底层通信协议。提供可复现的Python自动化刷机脚本与adb/fastboot命令矩阵,解决变砖、Bootloop、基…...

别再只用MD5了!聊聊Java中MessageDigest的SHA-256、SHA-3等算法选择与实战避坑

别再只用MD5了!Java哈希算法安全升级实战指南 哈希算法在现代应用开发中扮演着数据指纹的角色,但很多Java开发者仍然停留在MD5/SHA-1的舒适区。当数据库泄露事件频发、算力攻击成本不断降低时,选择正确的哈希算法已经不再是简单的技术选型问题…...

为什么92%的康复科博士生还没用NotebookLM做系统评价?——2024年最新工具链适配白皮书首发

更多请点击: https://intelliparadigm.com 第一章:NotebookLM在康复医学研究中的范式革命 传统康复医学研究长期受限于多源异构数据整合困难、临床证据转化周期长、跨学科知识对齐成本高等瓶颈。NotebookLM 以“以文献为中心”的可溯源推理架构&#xf…...