AI会议系统简述
idSERIAL摘要唯一标识meeting_idINTEGER会议IDTEXTNULL摘要文本key_pointsJSONBNULL关键点JSONJSONBNULL行动项JSONNULL'AI'生成来源created_atTIMESTAMPNULLNOW()创建时间。
一项目概述
1、项目背景
在大多数公司,开会仍是“人力活”:会前约时间、发邀请、准备资料;会中手动记笔记、抢话记录要点;会后整理纪要、追行动项、翻邮箱找结论。一小时的会,往往要花同等甚至更多时间“伺候”会议本身
“智汇通智能会议”把 AI 直接塞进会议全流程:
1、会前一句话就能预约,日程冲突自动提醒,资料提前推送;
2、会中语音刚落,文字已生成,关键结论和行动项实时高亮,谁负责、何时完成一目了然;
3、会后即刻产出结构化纪要,扫码即可分派任务,历史讨论秒级搜索,让每次讨论都沉淀为可复用的团队记忆。
从此,员工只需专注思考和决策,其余交给系统,把会议从“成本中心”变成“价值中心”
2、项目目标
构建一个基于AI技术的智能会议系统,实现会议全流程的智能化管理,包括智能预约、实时转录、AI总结、智能分析等功能,为企业提供高效、智能的会议解决方案
3、核心价值
把“会议”从成本中心升级为价值中心:对普通员工,意味着告别繁琐纪要、资料搜索和重复沟通,专注高价值思考;对管理层,意味着决策链路透明、任务节点可量化,战略执行不再“层层衰减”;对 IT 与行政团队,意味着一套系统即可替代多工具组合,降低 40% 采购与运维成本;对企业整体,意味着每一次讨论都能沉淀为结构化数据,驱动业务流程持续优化,最终形成“会议即数据、数据即资产”的数字化飞轮,真正让 AI 成为组织竞争力的放大器
二、技术架构
项目启用采用前后端的现代化架构设计
1、前端技术栈
- Vue 3.0 + TypeScript
- Element Plus UI框架
- Vite构建工具
- Axios HTTP客户端
- Pinia状态管理
2、后端技术栈
- Django 4.0 + Python 3.11
- Django REST Framework
- Mysql数据库
3、系统架构图
本系统通过前后端协同工作,系统实现了从会议预约、实时音频沟通到会后自动摘要的全流程智能化管理。其核心作用在于利用AI技术自动完成语音转写、内容摘要和会议分析,显著减轻人工负担,确保信息完整可追溯
三、功能设计
1、会议管理模块
功能特性:
1、智能会议预约与调度
2、 会议信息管理与编辑
3、 参会人员邀请与管理
4、 会议室资源分配
5、 会议状态实时跟踪
技术实现:
1、 使用Django ORM管理会议数据
2、 RESTful API提供标准化接口
3、 WebSocket实现实时状态同步
2、ai智能模块
功能特性:
1、 语音转文字:实时会议转录
2、 智能摘要:自动生成会议纪要
3、 关键词提取:识别重要讨论点
4、 情感分析:分析会议氛围
技术实现:
1、 集成第三方AI语音识别API
2、 使用自然语言处理技术
3、 异步任务队列处理AI分析
3、系统流程图
四、数据库设计
数据库中设计了许多表格,在此展示两个核心的表
会议表(meetings)
字段名 |
数据类型 |
约束条件 |
默认值 |
描述 |
id |
SERIAL |
PRIMARY KEY |
- |
会议唯一标识 |
title |
VARCHAR(255) |
NOT NULL |
- |
会议标题 |
description |
TEXT |
NULL |
- |
会议描述 |
start_time |
TIMESTAMP |
NULL |
- |
开始时间 |
end_time |
TIMESTAMP |
NULL |
- |
结束时间 |
status |
VARCHAR(20) |
NULL |
'scheduled' |
会议状态 |
created_by |
INTEGER |
FOREIGN KEY (users.id) |
- |
创建者ID |
meeting_room |
VARCHAR(100) |
NULL |
- |
会议室 |
recording_url |
VARCHAR(500) |
NULL |
- |
录制文件URL |
summary |
TEXT |
NULL |
- |
会议总结 |
created_at |
TIMESTAMP |
NULL |
NOW() |
创建时间 |
updated_at |
TIMESTAMP |
NULL |
NOW() |
更新时间 |
会议摘要表(meetings_summaries)
字段名 |
数据类型 |
约束条件 |
默认值 |
描述 |
id |
SERIAL |
PRIMARY KEY |
- |
摘要唯一标识 |
meeting_id |
INTEGER |
FOREIGN KEY (meetings.id) |
- |
会议ID |
summary_text |
TEXT |
NULL |
- |
摘要文本 |
key_points |
JSONB |
NULL |
- |
关键点JSON |
action_items |
JSONB |
NULL |
- |
行动项JSON |
generated_by |
VARCHAR(50) |
NULL |
'AI' |
生成来源 |
created_at |
TIMESTAMP |
NULL |
NOW() |
创建时间 |
五、关键代码展示
1、语音识别
该项目运用的是腾讯云中的语音识别
导入腾讯云的SDK以及其他的工具
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.asr.v20190614 import asr_client, models
import json
创建认证和客户端
cred = credential.Credential(secret_id, secret_key)
httpProfile = HttpProfile()
httpProfile.endpoint = "asr.tencentcloudapi.com"
httpProfile.reqTimeout = 30
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = asr_client.AsrClient(cred, "ap-beijing", clientProfile)
2、调用coze工作流
从Django的settings中获取Coze API 的基础URL,如果没有设置则使用'https://api.coze.com'获取API访问令牌,用户身份验证获取工作流id,用于执行id对应的工作流获取智能体id,用于与特定的智能体交互
def __init__(self):
self.api_base_url = getattr(settings, 'COZE_API_BASE_URL', 'https://api.coze.com')
self.api_token = getattr(settings, 'COZE_API_TOKEN', '')
self.workflow_id = getattr(settings, 'COZE_WORKFLOW_ID', '')
self.agent_id = getattr(settings, 'COZE_AGENT_ID', '')
self.coze = Coze(auth=TokenAuth(token=self.api_token), base_url=COZE_CN_BASE_URL)
3、运行工作流
def _run_workflow(self, text: str) -> List[str]:
"""
运行工作流并处理事件流
Args:
text (str): 输入到工作流的文本参数
Returns:
List[str]: 包含工作流执行过程中产生的所有消息的列表,包括普通消息、错误信息等
"""
messages: List[str] = []
def handle_stream(stream: Stream[WorkflowEvent]):
# 遍历事件流并根据事件类型进行相应处理
for event in stream:
if event.event == WorkflowEventType.MESSAGE:
# 处理普通消息事件,将消息内容添加到消息列表中
messages.append(event.message.content)
elif event.event == WorkflowEventType.ERROR:
# 处理错误事件,将错误信息格式化后添加到消息列表中
messages.append(f"[ERROR] {event.error}")
elif event.event == WorkflowEventType.INTERRUPT:
# 处理中断事件,恢复工作流执行并递归处理新的事件流
handle_stream(
self.coze.workflows.runs.resume(
workflow_id=self.workflow_id,
event_id=event.interrupt.interrupt_data.event_id,
resume_data="continue",
interrupt_type=event.interrupt.interrupt_data.type,
)
)
# 启动工作流并获取事件流,然后调用处理函数处理事件
handle_stream(
self.coze.workflows.runs.stream(
workflow_id=self.workflow_id,
parameters={"input": text}
)
)
return messages
该方法是一个私有方法,专门用于处理执行Coze平台上的工作流,接收文本输入(字符串参数为text),运行指定的工作流,并处理工作流执行过程中产生的各种事件,返回的是一个字符串列表,工作流的大致逻辑如下
4、日期时间格式化
const formatDateTime = (dateString: string) => {
if (!dateString) return ''
return new Date(dateString).toLocaleString('zh-CN')
}
- 检查输入的日期字符串是否存在。
- 如果不存在,则返回空字符串。
- 如果存在,则创建 Date 对象,并使用 toLocaleString('zh-CN') 转换为中文格式的日期时间字符串(如:2023/12/25 14:30:00)
5、检查API响应是否成功
if (data.size > 0 && meetingId.value) {
const response = await meetingApi.cozeOptimizeSpeech(data, meetingId.value)
if (response.success && response.optimized_text) {
addOptimizedTranscript(
currentUser?.username || '我',
response.original_text,
response.optimized_text,
response.confidence
)
调用addOptimizedTranscript函数添加优化后的转写记录
参数1: 当前用户名(如果不存在则默认为'我')
参数2: 原始文本内容
参数3: 经过优化的文本内容
参数4: 置信度分数
6、ELEMENT-PLUS组件
本次项目的前端,也就是设计页面用到最多的组件,关键组件如下
- el-form: 表单容器组件,用于包裹表单项并提供表单验证功能
- el-form-item: 表单项组件,用于构建表单中的每一项内容
- el-input: 输入框组件,用于输入会议标题
- el-date-picker: 日期时间选择器组件,用于选择会议计划时间
- el-input-number: 数字输入框组件,用于设置会议时长
- el-checkbox: 复选框组件,用于启用AI优化和总结功能
- el-button: 按钮组件,用于提交表单或取消操作
- el-space: 间距组件,用于在元素之间添加间距
六、项目优势以及价值
项目优势
1、前后端分离:Vue3 + Django 架构清晰,便于团队协作
2、类型安全:TypeScript 提升前端代码质量与可维护性
3、⾼性能UI:Element Plus + Sass 实现现代化、响应式界⾯
4、可扩展API:RESTful 设计,易于集成第三⽅服务
5、数据可视化:ECharts 提供直观的运营数据看板
业务价值
1、降本增效:替代传统设计流程,节省⼈⼒成本
2、快速迭代:⽤⼾反馈驱动AI模型持续优化
3、提升⽤⼾体验:⼀键⽣成+后期编辑,满⾜多样化需求
4、数据驱动运营:通过统计分析优化模板与功能
5、品牌赋能:帮助企业快速产出⾼质量宣传物料
七、项目界面展示
首页使用element plus实现布局,按时间的降序排列展示所有的会议,会议的状态以及会议号,会议时长和会议开始时间分别详细的展示,便于用户操作和阅读,右上角的快速会议和预定会议清晰可见,非常好上手
当前会议创建时,填入你的会议标题,会议描述和计划时间以及计划时长
进入会议之后,点击开始转写之后,就会实时展示客户所说话的内容,如果需要离开会议,可以点击右上角的离开会议
当前的会议总结也是展示了所有的会议详情,包括之前的创建时所填入的主题,描述和时间,时长等,总结内容也按照重点,参与人员,会议议程等形式展示出来
下载会议总结时可以选择txt格式化或者word文档下载,便于保存收藏
更多推荐
所有评论(0)