5行代码搞定文本摘要:Gemini API JSON结构化提取实战指南
【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook
用 Gemini API 的 JSON 结构化提取能力,一次调用就能把长文本拆成带角色、地点、情节的摘要 JSON,文本摘要不用再靠人工通读,结果直接进数据库。
🎯 痛点:长文本摘要,人工慢、正则脆
过去处理一篇长文,要么人工通读再手写摘要,要么用正则和关键词脚本硬抽,遇到换了句式的文本就失效。用 Gemini API 的 JSON 输出能力后,你只需把「要哪些字段」写成一份结构定义,模型就按这个结构返回摘要——新闻速览、会议纪要、小说人物提取,都是同一条流水线,换个 schema 就行。
🛠️ 准备工作:装包并配好密钥
一行命令装好 SDK:
pip install -U -q "google-genai>=1.0.0"API 密钥的获取与配置不用手写,跟着 quickstarts/Authentication.ipynb 走一遍即可,配好后用它初始化client,后文所有调用都基于这个客户端。
🧩 核心实战
先用 TypedDict 定义 JSON 输出结构
schema 的作用相当于给模型一张「答卷模板」:每个字段叫什么、是什么类型,都由你说了算,返回的 JSON 保证符合这份结构。最小示例只需一个类、三四个字段:
from typing import TypedDict class TextSummary(TypedDict): synopsis: str # 一句话情节概括 genres: list[str] # 题材标签 characters: list[str] # 角色名 locations: list[str] # 地名真实项目里可以给字段继续嵌套子结构(比如角色带简介、立场),仓库示例里的完整版就是这么做的。
一次调用生成结构化摘要
关键在于config里的两个参数:response_mime_type设为application/json锁定输出格式,response_schema传入上面定义的类,模型就会按它组织结果:
response = client.models.generate_content( model="gemini-2.0-flash", contents=prompt, config={ "response_mime_type": "application/json", "response_schema": TextSummary, }, )prompt里说明任务并附上要摘要的原文即可,其余字段含义见 examples/json_capabilities/Text_Summarization.ipynb。
用 response.parsed 取结果、按字段解析
不用自己json.loads:response.parsed已把返回内容解析成 Python 字典,直接response.parsed["synopsis"]取摘要、response.parsed["characters"]取角色列表,赋值给变量或写库都按普通字典操作。
📦 结果长什么样,还能用在哪
拿仓库示例中的奇幻故事跑一遍,摘两个关键字段看看:
synopsis:Elara, a cartographer and adventurer, seeks the lost city of Eldoria, following an ancient map through the Dragon's Tooth mountains...characters[0].name:Elara
同样的写法换个 schema 就能迁移到其他文本:
- 新闻速览:schema 定义「标题、时间、涉及主体、要点列表」,把当日新闻批量转成结构化条目。
- 研究报告:定义「结论、方法、数据支撑、局限」字段,直接生成可检索的报告卡片。
- 产品描述:抽取「规格参数、卖点、适用人群」,喂给电商详情页或推荐系统。
🧭 资源导航
| 资源名 | 路径与说明 |
|---|---|
| 文本摘要完整示例 | examples/json_capabilities/Text_Summarization.ipynb,含故事生成、schema 定义到解析的完整流程 |
| API 认证指南 | quickstarts/Authentication.ipynb,密钥申请与配置 |
| 更多 JSON 任务示例 | examples/json_capabilities/,实体抽取、情感分析、文本分类 |
把非结构化文本变成可编程的 JSON,这一步走通后,后面的信息抽取和数据分析都有了干净的输入。
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),仅供参考