news 2026/9/9 16:24:07

用 Gemini API 做 JSON 文本摘要,把长文变成结构化数据:3 步跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 Gemini API 做 JSON 文本摘要,把长文变成结构化数据:3 步跑通

用 Gemini API 做 JSON 文本摘要,把长文变成结构化数据:3 步跑通

【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook

拿到一大段文字,你只想把里面的角色、地点和主线剧情抓出来。这篇教程用 Gemini API 的 JSON 文本摘要能力,让模型直接把要点按结构化 JSON 吐出来,完整代码在 cookbook 项目的 examples 目录里。

你大概试过"偷懒版":直接让模型"输出 JSON"。结果有时包着 markdown 代码块,有时结尾多一句话,脚本一解析就报错。这里的做法不一样:先给模型一份结构定义,再让它照着结构填值,输出稳定、解析省心。

cookbook 一句话定位:Gemini API 的官方示例与教程库,从入门到进阶都有覆盖。这篇文章只挑其中最实用的"文本摘要"一个例子,陪你完整跑一遍,边看边能动手。

装好依赖、配好密钥,五分钟搞定准备

依赖只有一个,一条命令装完:

pip install -U -q "google-genai>=2.9.0"

然后去 Gemini 平台申请一个 API 密钥,放进环境变量 GEMINI_API_KEY(在 Colab 里存成 Secret)。密钥怎么创建,仓库里的 quickstarts/Authentication.ipynb 有完整演示,这里不展开。

本地跑的话,拿到密钥后先初始化客户端:client = genai.Client(api_key=GEMINI_API_KEY)。Colab 里换成userdata.get('GEMINI_API_KEY')读取即可,后面示例都默认 client 已就绪。

🛠️ 三步发起调用:先定格式,再让它填值

下面的代码都来自仓库 json_capabilities 目录下的 Text_Summarization.ipynb 笔记本。我只贴关键几行,其余样板你可以对着原文件补全。

第一步:先说清楚要回什么格式

模型默认放飞自由文本,要拿到稳定格式就得先写结构。我们用 TypedDict 定义(就是告诉 Python"这个字典有哪些键、每个键是什么类型"):

from typing_extensions import TypedDict class Character(TypedDict): name: str description: str alignment: str class Location(TypedDict): name: str description: str

外层再包一个 TextSummary,共四个字段:synopsis(一段话剧情摘要)、genres(类型列表)、locations(地点列表)、characters(角色列表)。角色和地点就分别用上面两个小结构装。

第二步:发起调用,用两行配置锁住输出

response = client.models.generate_content( model="gemini-3.7-flash", contents=prompt, # 完整故事文本 config={ "response_mime_type": "application/json", "response_schema": TextSummary, } )

config 里就两行是关键:response_mime_type 声明用 JSON 返回;response_schema 把你刚定义的 TextSummary 交给模型,它会照着字段名逐项填值,不多给、不少给。

第三步:拿到手就是现成的字典

不用再写解析逻辑。response.parsed直接就是 Python 字典,笔记本里用pprint(response.parsed)把它打出来看一眼。

👀 看效果:故事变成了字典

实际输出截一段(英文原文已译成中文,仅展示关键部分):

{ "synopsis": "Elara 循着古图前往失落的 Eldoria 城,途中遭遇石影守护者,最终选择让它继续沉睡……(节选)", "genres": ["Fantasy", "Adventure"], "characters": [{"name": "Elara", "alignment": "Good", "description": "寻找失落之城 Eldoria 的制图师兼冒险者。"}], "locations": [{"name": "Dragon's Tooth Mountains", "description": "高峰嶙峋、藏有隐秘通道的险峻山脉。"}] }

好在哪?字段名是稳定的:角色就是 characters,地点就是 locations。你直接写代码入库、喂给下游任务就行,不用再猜文字落在哪个位置。

换个场景:套路完全一样

故事只是入门。同一套"定结构 → 传 response_schema"的玩法,换成新闻可以抽事件要素(谁、何时、何地、影响),换研究报告可以抽结论、关键数据与置信度,换商品描述可以抽规格、卖点和适用人群——把 TypedDict 里的字段换掉,调用一行不用动。

仓库的 examples/json_capabilities/ 目录里还有现成的同类示例可以照着改:实体抽取、情感分析、文本分类,每个都是同一个思路的变体。

🚪 入口在这

  • 完整代码:examples/json_capabilities/Text_Summarization.ipynb
  • 更多 JSON 任务示例:examples/json_capabilities/

想本地跑起来,把仓库整个克隆下来:

git clone https://gitcode.com/GitHub_Trending/coo/cookbook

【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 16:24:07

CUDA Samples 13.3源码级评测:架构、优化与工程迁移全解析

1. CUDA Samples 13.3:不只是学习示例,更是一份可读的GPU工程手册我折腾CUDA有些年头了,从上大学那会儿用9800GT跑第一个带宽测试,到现在用H100调内核,每次NVIDIA发布新版CUDA Toolkit,我都会第一时间打开随…

作者头像 李华
网站建设 2026/9/9 16:23:12

LabVIEW视觉缺陷检测案例解析:从图像采集到结果输出全流程

简介:这份基于 LABVIEW 的视觉缺陷检测案例,面向自动化检测领域初学者与工业视觉开发者,以图形化编程完整展示从图像采集、预处理到缺陷识别的实现流程。资源共 200 个文件,以 109 个 vi 程序为核心,配合源图与对比图等…

作者头像 李华
网站建设 2026/9/9 16:20:31

学生党降ai保姆级教程,附3个手改降AIGC技巧和5个实用工具

临近毕业季,知网、维普、万方等主流检测系统的 AIGC 算法再次升级,很多同学发现辛苦写的论文竟然被判定为“机器生成”,论文 AI 疑似度爆表确实让人崩溃。为了帮大家有效降低 AI 率,我从 AI 检测的底层逻辑出发,总结了…

作者头像 李华
网站建设 2026/9/9 16:19:38

darwin-vm:在QEMU上搭建可调试的Darwin/XNU内核实验床

第一次看到darwin-vm这个项目冲上GitHub周榜前列时,我愣了几秒——它的定位实在太精准了:基于QEMU仿真Apple A系列/M系列芯片,搭建可调试的Darwin(XNU)内核实验床。对很多研究ARM64内核、又苦于买不起Apple开发机的人来说,这几乎就…

作者头像 李华
网站建设 2026/9/9 16:18:06

低压配电网电能质量分析:基于Matlab Simulink的48节点台区仿真建模实践

做低压配电网电能质量分析,最怕的就是空谈理论。电压偏低、三相不平衡、谐波超标,这些事在真实台区里天天发生,但你想靠一摞公式让现场的人信服,基本行不通。我的做法是直接上Matlab Simulink,搭一个看得见摸得着的台区…

作者头像 李华
网站建设 2026/9/9 16:17:58

Win11部署经典ASP多媒体课程答疑系统:从解压到IIS配置实战

简介:面向ASP.NET学习者的多媒体课程答疑系统源码包,整合了多个基于ASP.NET框架的项目设计与实现,覆盖在线作业提交与审阅、ERP客户管理、IT产品物流、教学网站、电子论坛、电子商务、电子政务档案管理等场景,可作为课程设计、毕业…

作者头像 李华