Canguo Science 的学术 Skills 是怎么把模型输出变成规范 Word / PDF 的?(含代码)
科研工作流的最后一公里是成稿——把一堆分析结果、笔记、引用拼成一份格式规范的 Word 或 PDF。这一步最磨人的不是写内容而是排版、对齐引用、统一格式。Canguo Science 把它封装成了学术 Skills模型负责产出内容Skill 负责把内容变成规范文档。这篇讲讲这条链路在工程上怎么落地用能跑的 Python让模型返回结构化输出 → 用 python-docx 生成规范 Word → 处理字体 / 表格 / 引用 → 导出 PDF。模型这一层在 Canguo Science 里统一走 CanguoAI 的 OpenAI 兼容入口所以下面的代码换任意模型都一样不影响成稿逻辑。代码为便于阅读做了简化。一、先让模型给你结构化的输出直接把模型吐的一大段 Markdown 硬塞进文档格式很难控制。更稳的做法是让模型返回结构化 JSON成稿逻辑只跟固定的数据结构打交道import os, jsonfrom openai import OpenAIclient OpenAI(api_keyos.environ[LLM_API_KEY],base_urlos.environ[LLM_BASE_URL], # OpenAI 兼容入口的 /v1换模型只改 model)SCHEMA_HINT 只输出 JSON结构为{title: 标题,sections: [{heading: 小节标题, body: 正文}],references: [文献1, 文献2]}resp client.chat.completions.create(modelgpt-4o-mini,messages[{role: system, content: 你是科研写作助手。 SCHEMA_HINT},{role: user, content: 写一份关于扩散模型的简短综述},],response_format{type: json_object}, # 保证输出是合法 JSON)data json.loads(resp.choices[0].message.content)一个细节用response_format{type: json_object}时prompt 里必须出现 JSON 字样否则接口会报错——这是 OpenAI 兼容协议的约定。二、用 python-docx 把结构化数据变成 Word拿到规整的data之后生成文档就是照着结构填from docx import Documentdef build_docx(data: dict, outreport.docx):doc Document()doc.add_heading(data[title], level0)for sec in data[sections]:doc.add_heading(sec[heading], level1)doc.add_paragraph(sec[body])if data.get(references):doc.add_heading(参考文献, level1)for i, ref in enumerate(data[references], 1):doc.add_paragraph(f[{i}] {ref})doc.save(out)build_docx(data)结构化的好处在这一步体现得淋漓尽致模型输出一变文档跟着变中间没有脆弱的字符串解析。三、中文字体一个绕不过去的坑python-docx 设中文字体有个经典陷阱——只设font.name对中文不生效中文会回退成默认字体。正确做法是额外通过w:eastAsia设一遍from docx.shared import Ptfrom docx.oxml.ns import qndef set_base_font(doc, latinTimes New Roman, cjk宋体, size12):style doc.styles[Normal]style.font.name latinstyle.font.size Pt(size)# 关键中文字体必须单独通过 w:eastAsia 设置否则不生效style.element.rPr.rFonts.set(qn(w:eastAsia), cjk)这个坑几乎每个用 python-docx 排中文文档的人都会踩一次记住qn(w:eastAsia)就行。四、表格与图表把实验结果放进去科研文档少不了表格和图。表格用add_table图用add_picturefrom docx.shared import Inchesfrom docx.enum.text import WD_ALIGN_PARAGRAPHdef add_table(doc, headers, rows):table doc.add_table(rows1, colslen(headers))table.style Table Grid # 带边框的内置样式最稳for j, h in enumerate(headers):table.rows[0].cells[j].text str(h)for row in rows:cells table.add_row().cellsfor j, v in enumerate(row):cells[j].text str(v)def add_figure(doc, img_path, captionNone):doc.add_picture(img_path, widthInches(5.5))if caption:p doc.add_paragraph(caption)p.alignment WD_ALIGN_PARAGRAPH.CENTERadd_table(docDocument(), headers[方法, 准确率],rows[[A, 0.91], [B, 0.88]])Table Grid是内置样式、任何环境都有比那些花哨样式名稳图的宽度用Inches/Cm控制避免原图过大撑破版面。五、引用与编号让正文和参考文献对得上综述里最容易出错的是引用编号——正文里的[3]得和文末第 3 条对得上。与其手动数不如维护一个引用登记表自动分配编号class Citations:def __init__(self):self._refs []self._index {}def cite(self, ref: str) - str:引用一次返回对应编号同一文献编号固定。if ref not in self._index:self._refs.append(ref)self._index[ref] len(self._refs)return f[{self._index[ref]}]def bibliography(self) - list[str]:return [f[{i}] {r} for i, r in enumerate(self._refs, 1)]cite Citations()para f扩散模型最早由相关工作提出 {cite.cite(Ho et al., 2020)} \f后续被大量改进 {cite.cite(Song et al., 2021)}。print(para) # ...提出 [1]后续被大量改进 [2]。print(cite.bibliography()) # [[1] Ho et al., 2020, [2] Song et al., 2021]正文按出现顺序自动编号文末一次性生成参考文献列表两边永远对得上——这类机械又易错的活正是学术 Skill最该替你干的。六、导出 PDF别指望纯 Python 完美转换很多人以为有个库能把 docx 一键完美转 PDF实际没有那么理想。几条现实路径docx2pdf效果好但依赖本机装了 WordWindows / macOSLibreOffice headless服务器首选命令行批量转无需 Wordreportlab从结构化数据直接另画 PDF排版完全可控但样式得自己写。服务器环境推荐 LibreOffice一行命令搞定import subprocessdef docx_to_pdf(path, outdir.):subprocess.run([soffice, --headless, --convert-to, pdf, --outdir, outdir, path],checkTrue,)选哪条看场景要还原 Word 版式用前两个要完全掌控排版、且不怕多写代码就用 reportlab。七、成稿也要可溯源最后补一句和前面工作流的衔接Canguo Science 里每段内容都能挂上生成它的run_id。成稿时把这个信息留在段落或脚注里读者或审稿人就能顺着它回溯到原始运行——引用不是编出来的而是从真实运行档案里回溯出来的。这是把可溯源一路贯穿到最终文档的关键一步。小结把模型输出变成规范文档工程上就三件事先要结构化输出JSON别让脆弱的字符串解析毁掉排版python-docx 的中文字体要设w:eastAsia表格用Table Grid最稳引用自动编号正文和文末靠登记表对齐PDF 转换按场景选服务器用 LibreOffice headless。这些拼起来就是从模型输出到一份能交付的 Word / PDF这条链路。它跟你用哪个模型无关——在 Canguo Science 里模型走 CanguoAI 的统一入口接进来成稿逻辑一行都不用改。

相关新闻

技术突破:ComfyUI-Manager实现企业级AI绘画工作流自动化管理

技术突破:ComfyUI-Manager实现企业级AI绘画工作流自动化管理

技术突破:ComfyUI-Manager实现企业级AI绘画工作流自动化管理 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various…

2026/8/6 18:05:46 阅读更多 →
D2DX暗黑破坏神2高清补丁:3步实现60fps宽屏的终极指南

D2DX暗黑破坏神2高清补丁:3步实现60fps宽屏的终极指南

D2DX暗黑破坏神2高清补丁:3步实现60fps宽屏的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在忍受暗…

2026/8/6 18:05:46 阅读更多 →
Web Security Academy 第六关: Oracle 数据库 SQL 注入实战详解

Web Security Academy 第六关: Oracle 数据库 SQL 注入实战详解

前言SQL 联合查询注入是渗透测试中最常见的注入手段之一,但不同数据库的语法、系统视图存在明显区别,不能一套 Payload 通吃所有环境。上一篇文章我们完成了 PostgreSQL 靶场的注入实操,本篇带来同系列 Oracle 数据库专项靶场,场景…

2026/8/6 18:05:46 阅读更多 →

最新新闻

3步掌握Waifu2x-Extension-GUI:免费AI图片视频放大神器终极教程

3步掌握Waifu2x-Extension-GUI:免费AI图片视频放大神器终极教程

3步掌握Waifu2x-Extension-GUI:免费AI图片视频放大神器终极教程 【免费下载链接】Waifu2x-Extension-GUI Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, Real-CUGAN, RTX Video Sup…

2026/8/6 19:03:11 阅读更多 →
40秒“闪烧“玉米芯:焦耳热超快策略精准重塑生物质硬碳微结构用于钠离子电池负极

40秒“闪烧“玉米芯:焦耳热超快策略精准重塑生物质硬碳微结构用于钠离子电池负极

通讯作者:徐秉辉、赵修松通讯单位:青岛大学核心导读:本文以农业废弃物玉米芯为前驱体,采用预碳化 焦耳热(Joule Heating)两步法,在仅 40 秒的超短处理时间内制备出系列硬碳(HC&#…

2026/8/6 19:03:11 阅读更多 →
如何快速下载B站4K大会员视频:专业工具全攻略

如何快速下载B站4K大会员视频:专业工具全攻略

如何快速下载B站4K大会员视频:专业工具全攻略 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾想收藏B站上那些精彩…

2026/8/6 19:03:11 阅读更多 →
ADR安全研究:2026年AI威胁检测技术与趋势全景解析

ADR安全研究:2026年AI威胁检测技术与趋势全景解析

ADR安全研究:2026年AI威胁检测技术与趋势全景解析 【免费下载链接】ADR ADR secures enterprise AI agents through observability, security benchmarking, and threat detection. Deployed at Uber. 项目地址: https://gitcode.com/GitHub_Trending/adr10/ADR …

2026/8/6 19:03:11 阅读更多 →
东北大学CEJ:焦耳热驱动化学链干重整甲烷!LaFeO₃/Ti整体式氧载体,CH₄转化81.21%,积碳减少41%!

东北大学CEJ:焦耳热驱动化学链干重整甲烷!LaFeO₃/Ti整体式氧载体,CH₄转化81.21%,积碳减少41%!

核心导读:本研究首次系统提出焦耳热(Joule Heating,JH)驱动化学链干重整甲烷(CLDRM)策略,并专门设计了以钛螺旋丝为导电基底、LaFeO₃为活性涂层的整体式氧载体(LaFeO₃/Ti&#xff…

2026/8/6 19:03:11 阅读更多 →
机器人自动化技术更新换代快吗?

机器人自动化技术更新换代快吗?

行业背景与筛选维度说明 在当今快速发展的科技时代,机器人自动化技术应用至关重要。它不仅能提升生产效率,还能降低人力成本,在众多行业中都有广泛应用。面对众多的机器人自动化技术应用品牌,如何筛选出合适的成为了企业和从业者的…

2026/8/6 19:02:10 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →