ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Meeting Notes Agent 实战:基于 LangChain 与 GPT-4o-mini 将会议转录文本一键转成结构化会议纪要

Meeting Notes Agent 实战:基于 LangChain 与 GPT-4o-mini 将会议转录文本一键转成结构化会议纪要 示例工程人工智能【免费下载链接】500-AI-Agents-ProjectsThe 500 AI Agents Projects is a curated collection of AI agent use cases across various industries. It showcases practical applications and provides links to open-source projects for implementation, illustrating how AI agents are transforming sectors such as healthcare, finance, education, retail, and more.项目地址https://gitcode.com/GitHub_Trending/50/500-AI-Agents-Projects点击查看免费下载本篇文章以开源仓库 500-AI-Agents-Projects 中 agents/10-meeting-notes-agent 为对象完整讲解 Meeting Notes Agent 的安装配置、命令行用法、输出格式以及其基于 LangChain 调用 GPT-4o-mini 将自由会议转录文本转化为结构化纪要摘要、决策、行动项、阻塞项、后续会议的实现原理。读完本文你将掌握一个可直接运行的会议纪要自动化方案并理解其提示词设计、JSON 解析、Markdown 渲染与文件落盘的关键实现细节。一、项目定位与整体架构Meeting Notes Agent 是 500-AI-Agents-Projects 仓库中 agents 目录下 21 个可独立运行 AI Agent 中的第 10 号在 agents/README.md 的 Agent 索引中被标注为 Productivity生产力行业、难度两星⭐⭐。它的核心任务在 README.md 中一句话概括Converts meeting transcripts into structured notes with summary, action items, decisions, and follow-ups.即把一段自由口语化的会议转录文本自动转换为包含摘要、行动项、决策、后续跟进的结构化会议纪要。其技术选型非常轻量维度取值框架LangChain配合 langchain-openai模型GPT-4o-minitemperature0语言Python入口文件agent.py难度Beginner入门级整个 Agent 是单文件实现agent.py约 150 行采用提示词约束输出 JSON → 解析 JSON → 渲染 Markdown → 写文件的经典流水线不依赖任何额外的编排框架非常适合作为 LangChain 单模型 Agent 的入门范例。从 metadata.yaml 可以看到它的元数据framework: langchain、llm: gpt-4o-mini、tags: [productivity, meetings, summarization, action-items]清晰地标明了其所属行业与功能标签。二、环境准备与安装配置2.1 依赖安装运行环境依赖记录在 requirements.txt 中共四个包langchain0.3.0 langchain-core0.3.0 langchain-openai0.2.0 python-dotenv1.0.1按照 README.md 的 Setup 章节执行安装pip install -r requirements.txt要点说明langchain-core0.3.0提供SystemMessage、HumanMessage等消息抽象供本 Agent 构造对话上下文langchain-openai0.2.0提供ChatOpenAI客户端负责真正调用 GPT-4o-minipython-dotenv1.0.1用于加载.env中的 API Key。2.2 API Key 配置安装完成后复制环境变量模板cp .env.example .env.env.example 内容只有一个键OPENAI_API_KEYyour_openai_api_key_here将your_openai_api_key_here替换为你自己的 OpenAI API Key 即可。在 agent.py 中通过load_dotenv()在脚本启动时自动加载.env文件随后ChatOpenAI会从环境中读取该 Key。注意本 Agent 依赖 OpenAI 官方 API运行前需确保网络可达且账户可用这是使用前提。三、运行方式四种命令行用法README.md 的 Run 章节给出了完整的命令行用法全部由 agent.py 的main()函数通过argparse实现。核心参数有两个参数类型默认值说明--transcript路径无指向一个转录文本文件与--text互斥--text字符串无直接内联传入转录文本与--transcript互斥--output路径meeting_notes.md自定义输出 Markdown 文件路径方式一使用内置示例转录文本零参数python agent.py不传任何参数时Agent 自动回退到内置的SAMPLE_TRANSCRIPT一段关于Q4 产品路线图的模拟会议对话见 agent.py适合首次运行快速验证链路是否打通。方式二传入本地转录文件python agent.py --transcript meeting_transcript.txt从meeting_transcript.txt读取会议转录内容并生成纪要这是最常见的真实使用方式。方式三内联文本python agent.py --text Alice: Lets ship by Friday. Bob: I need 2 more days for testing...无需文件直接把带说话人前缀的对话文本作为参数传入适合快速测试或命令行管道场景。方式四自定义输出路径python agent.py --transcript meeting_transcript.txt --output sprint_notes.md将结果写入sprint_notes.md而不是默认的meeting_notes.md便于归档到指定目录。参数互斥逻辑从源码可以看到--transcript与--text被放入argparse的互斥组parser.add_mutually_exclusive_group()见 agent.py两者不可同时使用。三路输入优先级为--transcript文件 --text内联 内置示例见 agent.py。四、输出内容与文件落盘规则4.1 生成的纪要包含什么README 的 Output 章节明确列出了输出 Markdown 的结构同时 format_notes() 给出了字段级实现。一份典型的meeting_notes.md长这样# Q4 Product Roadmap Planning **Date:** 2026-09-29 | **Duration:** 30 minutes **Participants:** Sarah, John, Mike, Lisa ## Summary …… ## Key Decisions - Freeze feature set by November 15th - Cut social login from this release, move to Q1 backlog ## Action Items - [ ] **Escalate PaymentCo API docs** — Owner: John | Due: end of today - [ ] **Continue payment integration** — Owner: Lisa | Due: November 10th - [ ] **Start testing** — Owner: Mike | Due: November 11th ## Blockers - Payment provider API docs not yet received **Next Meeting:** Same time next week, November 10th对应 README.md 列出的五大要素Executive summary执行摘要23 句会议核心总结Key decisions关键决策会议中拍板的事项清单Action items with owners and due dates带负责人与截止日期的行动项以- [ ]任务清单task/owner/due形式呈现Blockers阻塞项阻碍进展的问题Next meeting time下次会议时间。此外源码还渲染了标题、日期、时长与参与者行形成完整的纪要头信息。4.2 文件命名与防覆盖机制一个值得注意的设计细节在 agent.py默认输出文件为meeting_notes.md若该文件已经存在且本次使用的是默认输出路径Agent 会自动生成带时间戳的新文件meeting_notes_YYYYMMDD_HHMMSS.md避免覆盖历史纪要若用户通过--output显式指定了其他路径则直接写入该路径不做时间戳处理。这与 README 中 If that file already exists, the agent writes a timestamped file instead 的描述完全一致。运行结束后终端会同时打印格式化纪要全文以分隔线包裹和✅ Saved to: 路径的落盘提示。五、源码级原理提示词、JSON 解析与渲染5.1 结构化输出的关键NOTES_PROMPTMeeting Notes Agent 的核心技巧是用提示词约束模型输出合法 JSON。NOTES_PROMPT 定义了完整的 JSON Schema包含 11 个字段{ meeting_title: inferred title, date: today or mentioned date, participants: [name1, name2], duration_estimate: X minutes, summary: 2-3 sentence executive summary, key_decisions: [decision 1, decision 2], action_items: [ {task: description, owner: person name or TBD, due: date or timeframe or TBD} ], discussion_topics: [topic 1, topic 2], blockers: [blocker 1 or none], next_meeting: scheduled time or TBD, follow_up_questions: [question needing resolution] }设计要点每个字段都附带取值约定如summary限定为 23 句、due允许TBD降低模型自由发挥的空间提示词末尾的Return only valid JSON.是约束纯 JSON 输出的关键指令与 README 列出的五大输出要素相比提示词层还额外要求了meeting_title、participants、duration_estimate、discussion_topics、follow_up_questions等字段——模型一次抽取的字段比最终渲染展示的更多信息冗余设计保证了渲染时可按需取舍。5.2 调用链路零温度推理generate_meeting_notes() 是核心推理函数完整调用链为llm ChatOpenAI(modelgpt-4o-mini, temperature0) messages [ SystemMessage(contentNOTES_PROMPT), HumanMessage(contentfMeeting transcript:\n\n{transcript}), ] response llm.invoke(messages) return parse_json_response(response.content)三个关键工程决策temperature0会议纪要属于确定性任务零温度让模型输出尽可能稳定、可复现避免每次运行摘要措辞漂移System/ Human 双层消息系统消息固定携带 JSON Schema 约束用户消息动态注入转录文本符合 LangChain 的消息模型最佳实践结构化抽取而非自由生成模型只负责抽取结构化数据Markdown 排版完全由本地代码完成保证输出格式 100% 一致。5.3 健壮的 JSON 解析由于 GPT-4o-mini 输出偶尔会带 json 代码围栏parse_json_response() 做了两层防御def parse_json_response(text: str) - dict: cleaned text.strip() if cleaned.startswith(): cleaned re.sub(r^(?:json)?\s*, , cleaned) cleaned re.sub(r\s*$, , cleaned) match re.search(r\{.*\}, cleaned, re.DOTALL) if match: cleaned match.group(0) return json.loads(cleaned)第一层若响应以开头用正则剥掉 Markdown 代码围栏兼容 json与 两种写法第二层用re.search(r\{.*\}, cleaned, re.DOTALL)提取第一个{...}JSON 块容忍模型输出的前后缀杂质最后交给json.loads反序列化为 Python dict供后续渲染使用。这套提示词约束 正则兜底 json.loads的组合是当前 LangChain 生态处理 LLM JSON 输出的常见稳健做法。5.4 Markdown 渲染与容错format_notes() 负责将 dict 渲染为 Markdown包含多处容错各字段缺失时提供默认值标题缺省为Meeting Notes、日期缺省为当天date.today().isoformat()、时长缺省为N/Aaction_items逐条渲染为- [ ] **任务** — Owner: xxx | Due: xxx的任务清单格式blockers与next_meeting仅在该字段有值且next_meeting ! TBD时才渲染对应章节避免输出空标题。六、内置示例与端到端验证为便于零成本体验SAMPLE_TRANSCRIPT 内置了一段 5 人参与的 Q4 产品路线图会议模拟覆盖了典型会议元素参会人介绍、feature freeze 日期决策11 月 15 日、支付集成进度汇报Lisa 60%、阻塞项PaymentCo API 文档未回复、行动项分工John 当天升级、Lisa 11 月 10 日完成、Mike 11 月 11 日开始测试、以及下次会议时间11 月 10 日。运行python agent.py即可完整验证整个流水线示例转录 → LLM 抽取 JSON → 解析 → Markdown 渲染 → 写入meeting_notes.md。这段示例文本的字段设计决策、行动项、阻塞项、下次会议齐备恰好与 NOTES_PROMPT 的 Schema 一一对应是理解转录文本如何映射到结构化字段的最佳教材。七、小结与适用场景Meeting Notes Agent 是一个典型的单模型、提示词驱动的轻量 Agent架构极简LangChain 消息抽象 GPT-4o-mini 本地 JSON/Markdown 处理无外部编排依赖150 行代码即可端到端跑通开箱即用支持内置示例、转录文件、内联文本三种输入默认输出meeting_notes.md且自动防覆盖可扩展方向从源码结构推断可将输出改为其他格式如 JSON 对接工单系统、将转录输入换成实时语音转写STT结果、或把抽取出的 action_items 自动同步到项目管理工具。它适合的典型场景包括每周例会纪要以自动化速记、访谈与客户会议的关键结论沉淀、以及任何口语转录 → 结构化行动清单的流水线前置步骤。作为 500-AI-Agents-Projects 中 Productivity 分类的代表作它为开发者提供了一个可直接复用的会议纪要 Agent 基线实现。赞分享示例工程人工智能【免费下载链接】500-AI-Agents-ProjectsThe 500 AI Agents Projects is a curated collection of AI agent use cases across various industries. It showcases practical applications and provides links to open-source projects for implementation, illustrating how AI agents are transforming sectors such as healthcare, finance, education, retail, and more.项目地址https://gitcode.com/GitHub_Trending/50/500-AI-Agents-Projects点击查看免费下载相关推荐Unlimited-OCR生态全景HuggingFace、ModelScope与百度云模型获取与推理服务一览Unlimited OCR生态全景HuggingFace、ModelScope与百度云模型获取与推理服务一览 Unlimited OCR 是百度开源的长文档解人工智能大模型计算机视觉模型推理服务markmap会议记录实时生成结构化会议纪要markmap会议记录实时生成结构化会议纪要 痛点与解决方案 你是否遇到过以下会议记录困境会议讨论热烈但后续行动模糊、关键决策淹没在冗长文字中、参会者对会议数据可视化前端CLI双 Agent 会议纪要实战MeetingActionAgent 如何把原始记录转成可追溯的结构化纪要双 Agent 会议纪要实战MeetingActionAgent 如何把原始记录转成可追溯的结构化纪要 导读 本篇以 Datawhale hello agen教程人工智能大模型AI Agent上一篇4步出片Wan2.1-I2V让RTX 4060实现专业级视频生成下一篇3步打造专属图表DBeaver数据可视化扩展点实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表