论文AI助手实战:RAG结合代码执行实现科研数据分析
论文阅读正在成为一项越来越“重”的体力活。过去我们读一篇论文需要自己翻图表、找数据、核对实验设置现在虽然有大模型可以做问答但多数助手只停留在“聊天”层面——你问它“这篇论文的核心方法是什么”它能答你再问“把表2里不同模型的F1分数做个柱状图并计算相对提升幅度”它就只能泛泛而谈给不出可复现的结果。真正要被解决的不是“读懂论文”的问题而是“把论文里的数据真正用起来”的问题。论文AI助手如果只带检索问答本质上还只是一个带引用的搜索引擎只有让它具备“跑分析”的能力才能把论文从静态PDF变成一个可交互的科研数据工作台。这篇文章会带你从零搭建这样一个助手先用向量库把论文内容变成可检索的知识再让大模型通过函数调用执行Python代码完成数据统计、可视化甚至简单复现分析。读完你会理解传统RAG问答的边界在哪里也会拿到一套可以直接扩展的代码骨架。整套方案不绑定特定科研领域任何包含实验数据表的论文都可以套用。1. 论文AI助手的真实需求问答只是第一层如果你平时只是泛读论文那普通的摘要生成工具就够了。但科研和技术调研的真实场景往往是这样的你想比较多篇论文的实验结果需要从数据表中提取性能指标你想快速验证一篇论文的结论比如“作者声称方法A比基线高3个点”需要自己算一遍你想把某篇论文的数据重画成符合自己论文风格的图需要访问底层数据你需要追踪某篇论文不同版本或补充材料中的数据变化。这些需求都指向同一个关键点AI不仅要“读过”论文还要“碰到”论文里的数据。传统的RAG方案把PDF切块、向量化、检索最后把文本块塞进Prompt让大模型生成回答。这种方法对“论文主要讲了什么”很有效但对“帮我跑一个分析”基本无能为力。原因很简单表格数据被PDF切块后语义往往已经丢失即使大模型能读出表格内容它也无法直接动手算。所以要做一个真正有用的论文AI助手需要在RAG之上增加一层“工具调用层”。大模型负责理解用户意图、引用论文上下文再通过代码执行工具完成实际的数据处理。用户看到的不再是一段文字而是一个可以验证、可以修改、可以重新运行的分析结果。2. 整体架构检索增强 代码执行这个论文AI助手的核心由三部分组成首先是把论文变成结构化知识。PDF里既有连续文本又有非结构化的表格和图片。我们需要用工具抽取文本和表格文本用于构建向量库表格单独保存为CSV供后续代码分析使用。然后是检索问答。用户的每个问题先转换成向量在论文文本索引中检索最相关的片段连同问题一起交给大模型生成回答。这个过程负责处理“论文在讲什么”“方法是什么”“结论是什么”这类事实性问题。最后是分析执行。当用户需要计算、统计、画图时大模型会根据可用的数据文件生成Python代码调用一个受控的代码执行函数。执行结果文本输出、图片路径、新增数据文件再反馈给大模型由它组织成最终回答。打个比方传统RAG是一个“读过书的图书管理员”能告诉你书里写了什么加入代码执行后这个管理员还变成了“实验室助理”能帮你把书里的数据拿去做实验、画图表并把实验报告交给你。在实际实现中我们不必把这三部分做成微服务。一个Python脚本就足以跑通最小验证。架构上只需要保证数据文件与代码执行环境是隔离的防止论文中的恶意指令污染宿主环境。3. 环境准备与前置条件实现这套方案需要准备以下基础环境Python 3.10 或更高版本一个可用的 OpenAI API Key或任何兼容OpenAI接口的大模型服务如果使用本地模型需要保证机器有足够内存并选择支持函数调用和工具调用的模型操作系统不限Windows、macOS、Linux 均可。需要安装的依赖库如下版本请以实际安装为准本篇文章不锁定具体版本pip install openai pandas matplotlib pdfplumber langchain langchain-openai langchain-community faiss-cpu python-dotenv说明一点langchain-openai用于向量嵌入接口faiss-cpu用于向量检索。如果你更习惯使用Chroma或Elasticsearch也可以替换这里我们选择FAISS是因为它轻量、适合本地快速验证。项目目录结构建议这样组织paper_ai/ ├── input/ │ └── paper.pdf ├── data_tables/ │ └── (代码自动生成 CSV) ├── paper_index/ │ └── (FAISS 向量索引) ├── outputs/ │ └── (图表和分析结果) ├── .env └── paper_ai.py.env文件存放API密钥OPENAI_API_KEYsk-xxxxxxxx4. 论文解析把PDF变成可计算的数据解析论文是容易被低估的一步。很多人以为PDF解析就是把文本抽出来真正做起来会发现两个难点文本提取顺序错乱、表格提取困难。对于文本部分pypdf或pdfplumber都可以。既然我们要提取表格直接使用pdfplumber更方便。下面的代码会遍历PDF每一页分别提取文本和表格表格数据保存为CSV文件文本拼接后返回。# 文件路径parse_paper.py import pdfplumber import pandas as pd import os def parse_paper(pdf_path: str, output_dir: str data_tables) - str: os.makedirs(output_dir, exist_okTrue) full_text [] table_count 0 with pdfplumber.open(pdf_path) as pdf: for page_index, page in enumerate(pdf.pages): # 提取文本 page_text page.extract_text() or full_text.append(f### Page {page_index 1}\n{page_text}) # 提取表格 for table in page.extract_tables(): table_count 1 # 第一行作为表头其余作为数据行 header [str(col) if col else col for col in table[0]] rows table[1:] df pd.DataFrame(rows, columnsheader) # 清理空值和类型 df df.apply(lambda col: pd.to_numeric(col, errorsignore)) out_path os.path.join(output_dir, ftable_{table_count}.csv) df.to_csv(out_path, indexFalse) full_text.append(f\n### Table {table_count} located at Page {page_index 1}\n) full_text_content \n.join(full_text) return full_text_content if __name__ __main__: text parse_paper(input/paper.pdf) with open(paper_text.txt, w, encodingutf-8) as f: f.write(text) print(解析完成表格和文本已保存)这段代码会把PDF中的文本按页保存同时把提取到的表格写入data_tables/table_*.csv。注意PDF表格的格式千差万别extract_tables可能返回不完整的数据后续需要人工抽查和清洗。如果某篇论文的表格特别复杂更稳妥的办法是直接用Excel手动补充一份CSV把论文中的原始数据录进去。AI助手不介意数据来自PDF还是手动录入关键是数据要准确。5. 构建向量索引与基础问答论文文本准备好后接下来的任务是把文本切块、向量化存入FAISS索引。切块大小一般选择500到1000字符重叠100到200字符。这样既能保留上下文又不会让检索粒度太粗。# 文件路径build_index.py from langchain_openai import OpenAIEmbeddings from langchain_community.vectorstores import FAISS from langchain.text_splitter import RecursiveCharacterTextSplitter def build_index(text: str, index_path: str paper_index): splitter RecursiveCharacterTextSplitter( chunk_size800, chunk_overlap150, separators[\n\n, \n, 。, , , ] ) chunks splitter.split_text(text) embeddings OpenAIEmbeddings(modeltext-embedding-3-small) vectorstore FAISS.from_texts(chunks, embeddings) vectorstore.save_local(index_path) return len(chunks) if __name__ __main__: text open(paper_text.txt, encodingutf-8).read() count build_index(text) print(f已索引 {count} 个文本块)基于这个索引就可以写一个最基础的问答函数了。先检索相关文本片段再把它们和问题一起传给大模型。# 文件路径rag_qa.py from openai import OpenAI from langchain_openai import OpenAIEmbeddings from langchain_community.vectorstores import FAISS import os client OpenAI(api_keyos.getenv(OPENAI_API_KEY)) embeddings OpenAIEmbeddings(modeltext-embedding-3-small) vectorstore FAISS.load_local(paper_index, embeddings) def ask_question(question: str) - str: docs vectorstore.similarity_search(question, k4) context \n\n.join([doc.page_content for doc in docs]) response client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 你是论文阅读助手请基于提供的论文片段回答用户问题。如果片段不足以回答请明确说明。}, {role: user, content: f论文片段\n{context}\n\n用户问题{question}} ] ) return response.choices[0].message.content这个函数已经可以满足“论文在讲什么”“实验条件是什么”“结论是什么”这类问题。但距离“跑分析”还差关键一步。6. 给AI加上“跑分析”能力函数调用与代码执行基础RAG只能输出文本而我们的目标是在回答中输出真实的数据分析结果。实现方式是用大模型的函数调用能力让模型在需要时生成Python代码然后由我们的程序去执行。先定义一个可安全执行的代码运行函数。这里使用的是Python内置的exec但必须明确它的边界它只能在受信任的本地环境中使用不能用于处理不可信来源的论文。生产环境推荐用Docker容器或云沙箱隔离。# 文件路径executor.py import os import pandas as pd import matplotlib matplotlib.use(Agg) import matplotlib.pyplot as plt def execute_python_code(code: str, data_dir: str data_tables, output_dir: str outputs) - dict: 执行模型生成的Python代码并返回文本结果和生成的图片路径。 代码运行前会统一把数据目录和输出目录注入环境。 os.makedirs(output_dir, exist_okTrue) global_env { pd: pd, plt: plt, os: os, data_dir: data_dir, output_dir: output_dir, __name__: __main__, } captured_output [] def print_wrapper(*args, **kwargs): captured_output.append( .join(str(arg) for arg in args)) global_env[print] print_wrapper try: exec(code, global_env) # 找出output目录下新增的图片 images [f for f in os.listdir(output_dir) if f.endswith(.png)] return { status: success, stdout: \n.join(captured_output), images: [os.path.join(output_dir, img) for img in images], } except Exception as e: return { status: error, stdout: \n.join(captured_output), error: f{type(e).__name__}: {e}, }函数本身很简单关键在于让大模型知道可以调用它。下面定义工具Schema# 文件路径agent_tools.py tools [ { type: function, function: { name: execute_python_code, description: 在本地Python环境中运行代码可读取data_tables/下的CSV数据文件进行统计分析并生成图片到outputs/目录。, parameters: { type: object, properties: { code: { type: string, description: 要执行的Python代码。示例df pd.read_csv(data_tables/table_1.csv); print(df.columns) } }, required: [code] } } } ]接下来是Agent循环。流程是把可用数据表的信息注入System Prompt让模型知道有哪些数据文件用户提问后如果模型返回工具调用我们就执行代码并把结果回传给模型直到模型给出最终回答。# 文件路径run_agent.py from openai import OpenAI import os import glob import json from executor import execute_python_code client OpenAI(api_keyos.getenv(OPENAI_API_KEY)) def list_available_tables(): tables [] for path in glob.glob(data_tables/*.csv): df pd.read_csv(path) tables.append({ path: path, columns: list(df.columns), shape: df.shape, }) return tables def run_agent(question: str, max_steps: int 5) - str: tables_info list_available_tables() system_prompt ( 你是一篇论文的AI分析助手。你可以阅读论文内容也可以调用execute_python_code工具对论文中的实验数据执行分析。 数据表位于data_tables目录下。当前可用数据表\n json.dumps(tables_info, ensure_asciiFalse, indent2) \n当你需要统计数据、计算指标、画图时请使用execute_python_code工具。 ) messages [ {role: system, content: system_prompt}, {role: user, content: question}, ] for step in range(max_steps): response client.chat.completions.create( modelgpt-4o, messagesmessages, toolstools, tool_choiceauto, ) message response.choices[0].message if not message.tool_calls: return message.content messages.append({ role: assistant, content: message.content, tool_calls: message.tool_calls, }) for tool_call in message.tool_calls: args json.loads(tool_call.function.arguments) result execute_python_code(args[code]) messages.append({ role: tool, tool_call_id: tool_call.id, content: json.dumps(result, ensure_asciiFalse), }) return 达到最大步骤限制未获得最终答案。 if __name__ __main__: question 帮我读取data_tables/table_1.csv统计不同方法在测试集上的F1分数并绘制柱状图保存到outputs目录。 answer run_agent(question) print(answer)这个Agent流程看起来不复杂但已经具备“跑分析”的核心能力大模型会根据问题生成代码代码在受控环境中执行结果返回后再由大模型归纳总结。用户可以继续追问“那个图里方法A比方法B高多少”系统会继续检索论文上下文并调用工具。7. 运行与效果验证按顺序运行脚本即可体验完整流程。首先解析论文python parse_paper.py解析完成后检查data_tables/目录下是否生成了CSV文件同时打开paper_text.txt确认文本没有乱码。然后构建向量索引python build_index.py最后启动Agentpython run_agent.py正常情况下你会在终端看到类似这样的过程模型先请求调用execute_python_code参数里包含一行读取CSV和绘图的代码工具返回执行结果例如{status: success, stdout: ..., images: [outputs/f1_bar.png]}模型根据工具结果生成最终回答说明图表已保存并简单解读柱状图中的关键对比。判断成功的标准有三个问题能得到基于论文上下文的回答数据分析结果有实际输出文件回答中的数字能够和论文原始表格对应上。如果模型生成的结果和论文表格不一致多半是CSV解析出错或代码读取了错误的列需要检查data_tables目录下的数据是否准确。8. 常见问题与排查思路问题现象可能原因排查方式解决方案PDF解析后文本乱码PDF是扫描版没有文本层用OCR工具识别或从数据库获取原始论文文本接入OCR管线人工校对关键段落表格提取为空或内容错位pdfplumber对复杂合并单元格支持有限打开PDF对应页检查表格结构提取后人工修正CSV或手动录入数据向量索引回答偏差大文本切块过大或过小检索召回不准确打印检索到的chunk内容调整splitter参数增加召回数量或加入摘要索引OpenAI API报错API Key无效、网络不通、余额不足检查.env配置和请求返回的错误码更换接口地址或重新配置密钥工具执行报NameError代码中使用了未导入的库或变量查看execute_python_code返回的error信息在System Prompt中补充可用库列表或扩充global_env模型不调用工具直接给泛泛回答模型版本不支持函数调用或工具描述不清晰检查模型参数和tool schema使用支持函数调用的模型完善工具描述生成代码包含危险操作Prompt注入或恶意论文指令检查代码内容与执行环境隔离在容器中运行限制文件系统访问禁用网络9. 最佳实践与工程建议把这套原型放到真实生产环境之前有几个问题值得提前思考。第一是数据可信度。论文PDF解析出的表格往往有误差尤其是跨页表格、合并单元格、小数点被截断的情况。一定要在构建索引前建立数据审计流程至少核对每张表的行数和关键统计量。宁可让助手的数据来源是人工整理的CSV也不能用来源不明的脏数据。第二是代码执行安全。exec是一把双刃剑。如果论文文本中存在恶意指令例如要求代码读取本地文件或联网模型可能在生成代码时被误导。生产环境中应该把代码执行放在Docker容器、云函数或专门的沙箱服务中并限制网络、文件系统访问权限。即使是本机调试也要确保运行环境中没有敏感数据。第三是函数调用设计。工具的名字和描述一定要具体不要只写“执行代码”。要把可用的数据表路径、列名、输出目录规则都写进System Prompt否则模型会反复生成错误的文件读取路径。第四是评估与回归。论文AI助手和普通聊天机器人一样需要一套评估集。准备10到20个固定问题覆盖事实问答、数据提取、统计计算、可视化四类每次改动解析逻辑或者Prompt后都跑一遍防止“修好一个功能搞坏另一个分析”。第五是版本锁定。langchain、openai、pdfplumber这些库的接口更新很快项目上线时建议把依赖版本锁定在requirements.txt中否则半年后代码可能完全跑不起来。10. 总结与后续学习方向从“能答问题”到“能跑分析”这套论文AI助手的核心改动其实只有两步把论文中的表格独立成结构化数据再为模型增加一个代码执行工具。如果你已经跑通过上面的流程下一步可以尝试把向量库从FAISS换成Chroma或Elasticsearch支持更大规模的论文库加入多篇论文对比功能让助手可以横向比较不同论文的实验数据将代码执行环境切换到Docker增加安全边界用LangSmith或自建日志来评估提示词和工具调用效果把助手封装成FastAPI服务供Web前端或Jupyter Notebook调用。真正值得投入的是数据解析和数据清洗部分。大模型能力的下限被工具决定但工具效果的上限被数据质量决定。一篇论文的PDF解析得好不好直接决定了这个AI助手是能解决科研问题还是只会在Token里消耗你的耐心。建议收藏这篇文章自己找一篇有数据表的论文试一次。只有跑通从PDF到图表的完整链路你才会真正体会到“论文AI助手”和“论文聊天机器人”之间的差别。

相关新闻

MSComm32.ocx注册全攻略:ActiveX原理、regsvr32命令与批处理方案

MSComm32.ocx注册全攻略:ActiveX原理、regsvr32命令与批处理方案

简介:MSComm32.ocx是Windows平台上串口通信编程的核心控件,常用于VB6、VB.NET、Delphi等环境中实现串口参数配置、数据收发与设备联动。针对程序运行时提示“控件未注册”的典型故障,这份资源打包了从控件获取、系统目录放置、注册命令执行到…

2026/10/13 11:55:44 阅读更多 →
AI智能体重塑WebCAD:从自然语言到图纸操作的架构与实践

AI智能体重塑WebCAD:从自然语言到图纸操作的架构与实践

今年圈子里聊得最多的,已经不是“AI能不能画图”,而是“AI能不能帮我把这半张图画完、把五十处标注一次性改掉”。我前阵子把唯杰WebCAD的新版本从里到外跑了一遍,发现它已经不再是一个“长得像CAD的网页画图工具”,而是把AI智能体…

2026/10/13 11:55:44 阅读更多 →
Spring Boot后台动态路由菜单编辑:权限管理与缓存同步

Spring Boot后台动态路由菜单编辑:权限管理与缓存同步

第28章 SpringBoot编辑Admin路由菜单真正动手做Admin后台管理系统的朋友应该都懂,路由菜单这块看起来简单,实际上坑多得很。菜单不只是侧边栏那几行字,它是整个后台权限体系的地基——用户能进哪些页面、按钮能不能点、接口能否被访问&#x…

2026/10/13 11:54:42 阅读更多 →

最新新闻

AxonHub 集成测试指南:基于 Anthropic Go SDK 的流式(Streaming)功能全解析

AxonHub 集成测试指南:基于 Anthropic Go SDK 的流式(Streaming)功能全解析

AI 应用API网关LLM 网关后端前端 【免费下载链接】axonhub ⚡️ Open-source AI Gateway — Use any SDK to call 100 LLMs. Built-in failover, load balancing, cost control & end-to-end tracing. 项目地址: https://gitcode.com/gh_mirrors/ax/axonhub 点击…

2026/10/13 12:42:45 阅读更多 →
Wing 语言 cloud.Api 的 OPTIONS/HEAD/CONNECT 路由:从测试用例到 tf-aws Terraform 编译产物全解析

Wing 语言 cloud.Api 的 OPTIONS/HEAD/CONNECT 路由:从测试用例到 tf-aws Terraform 编译产物全解析

编程语言编译器云原生语言运行时 【免费下载链接】wing A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡ 项目地址: https://gitcode.com/gh_mirrors/wi/wing 点击查看 免…

2026/10/13 12:42:45 阅读更多 →
EfficientNet-CondConv 实战指南:条件参数化卷积的原理、源码实现与 Cloud TPU 训练推理

EfficientNet-CondConv 实战指南:条件参数化卷积的原理、源码实现与 Cloud TPU 训练推理

深度学习后端开发工具 【免费下载链接】tpu Reference models and tools for Cloud TPUs. 项目地址: https://gitcode.com/gh_mirrors/tpu/tpu 点击查看 免费下载 本篇技术指南围绕本仓库 models/official/efficientnet/condconv 目录展开,系统讲解条件…

2026/10/13 12:42:45 阅读更多 →
Oracle SQL Developer 18.4.0安装配置与数据库连接避坑指南

Oracle SQL Developer 18.4.0安装配置与数据库连接避坑指南

简介:SQL Developer 18.4.0 是甲骨文公司出品的免费可视化数据库管理工具,面向需要同时操作 Oracle 和 MySQL 等主流数据库的开发人员、数据库管理员及数据分析师,用于解决 SQL 编写繁琐、对象管理低效等问题。压缩包内有约两千个文件&#x…

2026/10/13 12:42:45 阅读更多 →
JMeter入门:从JDK安装到跑通第一个HTTP请求

JMeter入门:从JDK安装到跑通第一个HTTP请求

准备学JMeter的朋友,我劝你先放下那些厚厚的教程,别一上来就背“线程组”“断言”“关联”这些概念。学这工具最快的方式只有一个:先把它装起来,跑通一个最简单的请求,看到真实的响应数据,心里那块石头落地…

2026/10/13 12:42:45 阅读更多 →
打破园区数据孤岛:统一数字平台与智慧园区落地实践

打破园区数据孤岛:统一数字平台与智慧园区落地实践

简介:面向园区管理者、物业运营方与智慧城市方案设计人员,这份《华为智慧园区通用场景解决方案》以“平台生态”为主线,针对管理对象多、运营成本高、服务体验差、应用重复建设等痛点,给出分层分场景的数字化转型路径,…

2026/10/13 12:41:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →