news 2026/10/19 12:05:06

ERNIE-4.5-0.3B-PT实战教程:用Chainlit构建带历史记录的AI会议纪要工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ERNIE-4.5-0.3B-PT实战教程:用Chainlit构建带历史记录的AI会议纪要工具

ERNIE-4.5-0.3B-PT实战教程:用Chainlit构建带历史记录的AI会议纪要工具

本文面向有一定Python基础但希望快速上手AI应用开发的读者,无需深度学习背景,跟着步骤就能搭建一个实用的会议纪要生成工具。

1. 项目介绍与价值

你是不是经常参加各种会议,结束后还要花大量时间整理会议纪要?或者作为团队负责人,需要快速回顾多个会议的关键信息?传统的手工记录方式效率低下,还容易遗漏重要内容。

今天我们要用ERNIE-4.5-0.3B-PT模型和Chainlit框架,构建一个智能会议纪要工具。这个工具不仅能实时生成结构化的会议记录,还能保存完整的对话历史,让你随时回顾之前的会议内容。

这个工具能帮你解决什么问题?

  • 自动将零散的会议讨论整理成结构化纪要
  • 保存所有会议历史,方便后续查阅和追溯
  • 支持中英文会议内容处理
  • 无需复杂部署,几分钟就能上手使用

2. 环境准备与模型部署

2.1 检查模型服务状态

首先确保你的ERNIE-4.5-0.3B-PT模型已经通过vLLM成功部署。打开终端,运行以下命令检查服务状态:

cat /root/workspace/llm.log

如果看到类似下面的输出,说明模型部署成功:

INFO 07-15 14:30:22 vllm.engine.llm_engine: Model loaded in 45.2s INFO 07-15 14:30:23 vllm.entrypoints.api_server: API server started on http://0.0.0.0:8000

2.2 安装必要的Python包

创建一个新的Python环境(推荐),然后安装所需依赖:

pip install chainlit openai requests python-dotenv

这里我们使用Chainlit作为前端界面,通过OpenAI兼容的API方式调用vLLM部署的模型。

3. 构建会议纪要应用

3.1 创建应用主文件

新建一个名为meeting_assistant.py的文件,开始编写我们的核心代码:

import chainlit as cl import requests import json from typing import List, Dict # 配置模型API地址(根据你的实际部署地址修改) MODEL_API_URL = "http://localhost:8000/v1/completions" class MeetingHistory: """会议历史管理类""" def __init__(self): self.sessions = {} def add_session(self, session_id: str, topic: str): """添加新的会议会话""" self.sessions[session_id] = { 'topic': topic, 'messages': [], 'summary': '' } def add_message(self, session_id: str, role: str, content: str): """添加会议消息""" if session_id in self.sessions: self.sessions[session_id]['messages'].append({ 'role': role, 'content': content, 'timestamp': datetime.now().isoformat() }) def generate_summary(self, session_id: str) -> str: """生成会议纪要""" if session_id not in self.sessions: return "会话不存在" messages = self.sessions[session_id]['messages'] # 这里会调用模型生成摘要 return self._call_model_for_summary(messages)

3.2 实现模型调用功能

在同一个文件中继续添加模型调用逻辑:

def _call_model_for_summary(self, messages: List[Dict]) -> str: """调用ERNIE模型生成会议摘要""" # 构建会议对话上下文 conversation = "\n".join([ f"{msg['role']}: {msg['content']}" for msg in messages ]) prompt = f"""请将以下会议对话整理成结构化的会议纪要,包括: 1. 会议主题和主要讨论点 2. 关键决策和行动项 3. 负责人和截止时间(如果有) 4. 待讨论事项 会议对话: {conversation} 会议纪要:""" # 调用vLLM API payload = { "model": "ernie-4.5-0.3b-pt", "prompt": prompt, "max_tokens": 1024, "temperature": 0.3, "stop": ["\n\n"] } try: response = requests.post(MODEL_API_URL, json=payload) response.raise_for_status() result = response.json() return result['choices'][0]['text'].strip() except Exception as e: return f"生成摘要时出错: {str(e)}" # 初始化会议历史管理器 meeting_history = MeetingHistory()

3.3 实现Chainlit前端界面

现在添加用户界面相关的代码:

@cl.on_chat_start async def start_chat(): """聊天开始时初始化会议会话""" session_id = cl.user_session.get('id') topic = await cl.AskUserMessage( content="请输入本次会议的主题:", timeout=60 ).send() if topic: meeting_history.add_session(session_id, topic['output']) await cl.Message( content=f"会议主题已设置为: {topic['output']}\n\n现在可以开始会议讨论了,我会自动记录并生成纪要。" ).send() @cl.on_message async def handle_message(message: cl.Message): """处理用户消息""" session_id = cl.user_session.get('id') user_input = message.content # 保存用户消息 meeting_history.add_message(session_id, '用户', user_input) # 生成实时响应 response = await generate_meeting_response(session_id, user_input) # 保存AI响应 meeting_history.add_message(session_id, '助理', response) await cl.Message(content=response).send() async def generate_meeting_response(session_id: str, user_input: str) -> str: """生成会议相关的智能响应""" # 这里可以添加更多的对话逻辑 if "总结" in user_input or "纪要" in user_input: summary = meeting_history.generate_summary(session_id) return f"本次会议纪要:\n\n{summary}" else: return "已记录您的发言。继续讨论还是需要生成会议纪要?"

4. 运行和测试应用

4.1 启动应用

在终端中运行以下命令启动应用:

chainlit run meeting_assistant.py -w

这会启动Chainlit服务,通常在http://localhost:8000可以访问。

4.2 测试会议纪要功能

打开浏览器访问应用地址,按照以下步骤测试:

  1. 设置会议主题:输入本次会议的主题,比如"季度产品规划会议"
  2. 开始讨论:输入会议讨论内容,例如:
    • "我们今天主要讨论下一季度的产品路线图"
    • "建议优先开发移动端功能,预计需要3周时间"
    • "张三负责前端开发,李四负责后端API"
  3. 生成纪要:输入"生成会议纪要"来获取结构化摘要

你会看到模型自动将零散的讨论整理成规范的会议纪要格式,包括讨论要点、行动项、负责人等信息。

5. 进阶功能与优化建议

5.1 添加会议历史查看功能

可以扩展功能,让用户查看之前的会议记录:

@cl.on_message async def handle_history_request(message: cl.Message): """处理历史会议查询""" if "历史会议" in message.content: sessions = meeting_history.get_all_sessions() response = "历史会议记录:\n\n" for session_id, data in sessions.items(): response += f"- {data['topic']} ({len(data['messages'])}条消息)\n" await cl.Message(content=response).send()

5.2 优化提示词工程

为了获得更好的会议纪要效果,可以优化提示词:

def create_optimized_prompt(conversation: str, topic: str) -> str: return f"""你是一个专业的会议纪要助手。请将以下关于'{topic}'的会议讨论整理成结构化纪要。 会议讨论内容: {conversation} 请按照以下格式组织会议纪要: # 会议主题:{topic} ## 主要讨论点 - 点1 - 点2 ## 决策与行动项 - [ ] 任务1 - 负责人:XXX - 截止时间:YYYY-MM-DD - [ ] 任务2 - 负责人:XXX - 截止时间:YYYY-MM-DD ## 待决议题 - 议题1 - 议题2 请确保纪要简洁、准确、 actionable。"""

5.3 添加导出功能

还可以添加导出会议纪要的功能:

@cl.on_message async def handle_export_request(message: cl.Message): """处理导出请求""" if "导出" in message.content: session_id = cl.user_session.get('id') summary = meeting_history.generate_summary(session_id) # 提供下载链接 export_content = f"会议纪要导出\n\n{summary}" await cl.Message( content="会议纪要已生成,点击下载:", elements=[cl.File(name="meeting_summary.txt", content=export_content, display="inline")] ).send()

6. 常见问题解决

问题1:模型响应慢或超时

  • 检查vLLM服务是否正常运行的llm.log
  • 调整max_tokens参数减少生成长度

问题2:生成的纪要不够准确

  • 优化提示词,提供更明确的格式要求
  • 调整temperature参数(0.3-0.7之间尝试)

问题3:Chainlit界面无法访问

  • 检查端口是否被占用lsof -i :8000
  • 尝试指定其他端口chainlit run app.py -p 8001

问题4:历史记录丢失

  • 实现持久化存储,如保存到文件或数据库
  • 定期备份会议数据

7. 总结与下一步建议

通过这个教程,你已经成功构建了一个功能完整的AI会议纪要工具。这个工具不仅能够实时记录会议内容,还能智能生成结构化的纪要,大大提高了会议效率。

你已经掌握的核心技能:

  • 使用vLLM部署和调用ERNIE大模型
  • 用Chainlit快速构建AI应用前端
  • 实现对话历史管理和会议纪要生成
  • 优化提示词获得更好的生成效果

下一步可以尝试的扩展:

  1. 添加多语言支持,让工具能处理英文会议
  2. 集成日历API,自动关联日程安排
  3. 添加语音识别功能,直接转录语音会议
  4. 实现团队协作功能,共享会议纪要

记得在实际使用中根据你们的会议特点调整提示词和功能,让工具更贴合你们的实际需求。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

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

Fish-Speech-1.5与计算机网络:分布式语音合成系统设计

Fish-Speech-1.5与计算机网络:分布式语音合成系统设计 1. 引言 想象一下这样的场景:一家大型电商平台需要在促销期间为数十万商品生成语音介绍,一个在线教育公司要为百万用户提供个性化的课程朗读服务,或者一个智能客服系统需要…

作者头像 李华
网站建设 2026/10/19 12:04:57

新年福利:免费使用春联生成AI,3步搞定个性化对联

新年福利:免费使用春联生成AI,3步搞定个性化对联 春节将至,家家户户都在为贴春联做准备。传统的春联创作需要一定的文学功底,但现在有了AI技术的加持,任何人都能轻松生成专业水准的个性化春联。今天介绍的这款春联生成…

作者头像 李华
网站建设 2026/10/19 12:04:57

React + Vite + Zustand + Tailwind CSS深度解析

# React Vite Zustand Tailwind CSS:现代前端开发的黄金组合 1. 他是什么 这一技术组合代表了当前前端开发中高效、简洁的解决方案集合。可以把它们想象成建造现代房屋的工具包: React 是房屋的骨架和结构框架,负责构建用户界面的基本单元…

作者头像 李华
网站建设 2026/10/19 12:04:59

Xcode 26.3 引入智能编码代理技术

某机构于周二在 Xcode 26.3 中引入了对智能编码代理的支持,使开发者能够将包括某机构Claude Agent和某机构Codex在内的自主AI代理直接集成到开发环境中。 此更新通过授予第三方AI模型更大的自主权来执行复杂的开发任务,例如修改项目架构和通过视觉预览验…

作者头像 李华
网站建设 2026/10/12 4:40:43

基于Bedrock的自学习生成式AI系统构建

概述 某电商平台的商品目录是每位顾客购物体验的基石——它是产品信息的权威来源,其属性支撑着搜索、推荐和发现功能。当卖家上架新产品时,目录系统必须提取结构化的属性(如尺寸、材质、兼容性和技术规格),同时生成与…

作者头像 李华
网站建设 2026/10/5 18:38:43

AutoGen Studio实战:用Qwen3-4B打造你的第一个AI助手

AutoGen Studio实战:用Qwen3-4B打造你的第一个AI助手 1. 认识AutoGen Studio:你的AI助手搭建平台 AutoGen Studio是一个专门为AI应用开发者设计的低代码平台,它能帮你快速构建智能助手、增强工具能力、组建AI团队并完成各种任务。简单来说&…

作者头像 李华