用 Gemini API 把长文变 JSON 摘要:三步跑通的完整指南
【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook
每读完一份三十页的报告,还得回头手动扒要点,慢还容易漏。这篇用 GitHub_Trending/coo/cookbook 项目演示一个办法。用 Gemini API 的 JSON 能力,把长文直接输出成 JSON 文本摘要,角色、地点、情节、题材都落在一个结构化字典里。
📌 能力速览:看看 JSON 文本摘要长什么样
一句话:喂一段长文,还你一个字典。官方示例把一篇十段奇幻故事丢进去,模型返回 synopsis 剧情梗概、genres 题材列表、characters 角色数组,每个角色带名字、一句话描述和阵营(正派/反派)。字段全部受你预先定义的 schema 约束,没有多余废话,能直接灌进数据库。
🚀 跑通流程:三块代码走通结构化摘要
先装 SDK,确认依赖装好就行:
pip install -U -q "google-genai>=2.9.0"跑完应当没有报错输出。然后配好 GEMINI_API_KEY 环境变量或 Colab Secret,卡住就查 Authentication.ipynb。
接着写下输出的"表格"。TypedDict 就是你要锁定的结构,模型会照着填字段:
from typing_extensions import TypedDict from google import genai client = genai.Client() # 从环境变量读取 GEMINI_API_KEY class Character(TypedDict): name: str description: str alignment: str class TextSummary(TypedDict): synopsis: str genres: list[str] characters: list[Character]最后把文本发出去,要 JSON。story 换成你手头任意长文即可(官方 notebook 里是先让模型现场生成一篇):
prompt = "从下面的文本中提取摘要、题材列表和角色档案\n\n" + story response = client.models.generate_content( model="gemini-3.7-flash", contents=prompt, config={ "response_mime_type": "application/json", "response_schema": TextSummary, }, ) print(response.parsed)跑完你会看到一个现成的字典:synopsis 是一句话剧情,genres 是 ['Fantasy', 'Adventure'],characters 是带名字、描述、阵营的列表。
🔄 换个场景:schema 改改就能抽别的字段
调用代码不动,只改两处:塞进 prompt 的文本、TypedDict 的字段。想抽会议纪要,就把 schema 换成 topics、decisions、owners,文本换成会议记录原文。抽商品评价也一样:rating、pros、cons。schema 是表格,填什么由你定。
⚠️ response_schema 不生效时,先查这里
- 报 401 或 invalid API key→ GEMINI_API_KEY 没设置或 Colab Secret 没配 → 按 Authentication.ipynb 把密钥补上。
- 解析结果缺字段、取值时 KeyError→ 漏传 response_schema,模型自由发挥结构 → config 里同时给 response_mime_type 和 response_schema。
- 提示找不到 typing_extensions→ Python 3.12+ 不再单独安装 → 改从 typing 模块直接导入 TypedDict。
📚 往深里挖 JSON 结构化输出
- Text_Summarization.ipynb — 本文完整 notebook,含故事生成和输出展示,想跑官方原版时看
- examples/json_capabilities/ — 实体抽取、情感分析、文本分类等 JSON 任务,要换抽取对象时看
- JSON_mode.ipynb — 最基础的 JSON 输出模式,想分清它和 response_schema 区别时看
- Authentication.ipynb — API 密钥配置详解,遇 401 时看
🎬 下一步
手动扒长文的活,交给模型填 JSON 就行。本地执行git clone https://gitcode.com/GitHub_Trending/coo/cookbook,打开examples/json_capabilities/Text_Summarization.ipynb从头跑一遍。
【免费下载链接】cookbookExamples and guides for using the Gemini API项目地址: https://gitcode.com/GitHub_Trending/coo/cookbook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考