用 Agent 构建智能会议助手的技术方案:让每次开会都像开了「倍速外挂」

关键词:智能体Agent、智能会议助手、多模态交互、RAG检索增强生成、工具调用、工作流编排、Prompt Engineering
摘要:本文针对企业普遍存在的会议效率低、会后整理成本高、动作项跟进难等痛点,提出了一套基于Agent技术的智能会议助手完整落地方案。我们将从核心概念拆解、架构设计、算法原理、代码实现、场景落地等维度,一步步讲解如何搭建一个能听、能记、能查资料、能主动干活的智能会议助理,帮助企业将单场会议的会后整理时间从平均2小时压缩到1分钟以内,整体会议效率提升60%以上。

背景介绍

目的和范围

相信很多职场人都有过类似的痛苦:开2小时会,花3小时整理纪要,动作项记漏了没人跟进,会上讨论过的问题过两周又要重新讨论,共享的PPT和资料散落在各个群里找不到。传统的会议工具只能完成录屏、语音转文字的基础功能,无法主动理解会议内容、关联上下文、执行会后动作。
本文的目的就是给出一套可直接落地的技术方案,基于Agent技术构建智能会议助手,覆盖会前准备、会中辅助、会后跟进全流程。方案适用于企业内部例会、面试、线上发布会、远程培训等所有会议场景,支持对接飞书、腾讯会议、钉钉等主流办公工具。

预期读者

本文适合AI开发工程师、企业IT架构师、产品经理、ToB创业者阅读,不需要你有深厚的大模型底层研发经验,只要会基础的Python开发就能跟着实现。

文档结构概述

我们会先从核心概念讲起,用生活中的类比让你搞懂Agent、RAG等技术到底是什么,然后拆解整个系统的架构设计,再讲解核心算法原理,接着给出完整的可运行代码实现,最后讲落地场景、最佳实践和未来发展趋势。

术语表

核心术语定义
  1. Agent(智能体):具备自主感知、规划、决策、执行能力的AI程序,不需要用户一步步给出指令,就能主动完成特定任务
  2. RAG(检索增强生成):让大模型在回答问题时先检索指定的知识库内容,再基于检索到的内容生成回答,避免大模型“胡说八道”
  3. 工具调用:Agent可以调用外部系统的能力,比如发消息、约日程、查数据库等,实现和现有办公系统的打通
  4. 多模态交互:Agent可以同时处理语音、文字、图片、视频等多种格式的输入输出
缩略词列表
缩略词 全称 含义
LLM Large Language Model 大语言模型
ASR Automatic Speech Recognition 自动语音识别
OCR Optical Character Recognition 光学字符识别
TTS Text To Speech 文字转语音
CoT Chain of Thought 思维链,大模型的推理技术

核心概念与联系

故事引入

我们先来看运营同学小王的真实经历:
小王所在的互联网公司每周要开3次部门例会,每次开会2小时,会后小王要花2小时整理纪要:把录音转文字、筛选重点、标记动作项、把动作项同步到多维表格、给每个责任人发通知、上传会议资料到共享盘。每周花在纪要整理上的时间就有6小时,经常要加班做。
上个月公司上线了基于Agent的智能会议助手,现在小王的开会流程变成了:会前10分钟助手自动提醒所有人参会,同步会议资料;开会的时候助手自动录屏转文字,识别到有人提问相关的历史问题时自动弹出答案,识别到动作项就自动标记责任人、截止时间;会后1分钟,助手就把整理好的纪要、动作项列表、重点摘录发到群里,还自动把动作项同步到多维表格,给每个责任人发飞书提醒,资料自动上传到共享盘。小王现在开完会不用做任何整理工作,每周省下来6小时,能多做2个活动方案。
这个神奇的助手到底是怎么实现的?我们接下来一步步拆解。

核心概念解释(像给小学生讲故事一样)

核心概念一:Agent(智能会议助理)

你可以把Agent想象成你花3000块钱雇的一个全职会议助理,他不用吃饭睡觉,24小时待命:

  • 他会认真听每个人说的话,不会漏记任何内容
  • 他记得住所有历史会议的内容,你问他上次开会定的目标是多少,他立刻就能告诉你
  • 他会用公司的各种办公工具,会发飞书消息、约日程、查知识库
  • 你不用告诉他每一步要做什么,他听到你说“下周一张三把方案发给客户”,就会自动把这个记成动作项,到下周一还会提醒张三
    和传统的只能固定回答问题的机器人不一样,这个助理会自己思考:用户说的这句话我需要做什么?要调用什么工具?如果信息不全我要不要问用户?
核心概念二:RAG(助理的资料文件夹)

你雇的助理不可能把公司所有的资料都背下来,所以你会给他一个文件夹,里面放了公司的规章制度、历史会议记录、产品资料、财务数据等等,他遇到不懂的问题就会翻这个文件夹,找到对应的内容再回答你,不会瞎编。
RAG就是这个文件夹,你把所有会议相关的资料都存在里面,Agent遇到问题的时候先去里面搜,搜到相关内容再回答,就不会出现“胡说八道”的情况,比如不会把Q3的目标说成Q4的。

核心概念三:工具调用(助理的手脚)

助理如果只会坐在那里记笔记,价值还不够大,你需要他能帮你干活:比如发消息、约日程、查订单数据。工具调用就是助理的手脚,他可以调用你公司现有办公系统的接口,完成各种实际的动作,不用你再手动操作。
比如你说“把这个纪要发给所有参会人”,Agent就会自动调用飞书的接口,把纪要发到群里,不用你自己复制粘贴。

核心概念四:多模态交互(助理的五官)

助理不仅要能听(语音转文字),还要能看:能看懂你共享的PPT内容,能看懂你在白板上写的字,能看懂你发的文字消息。多模态交互就是助理的五官,他能同时处理语音、图片、视频、文字等各种格式的输入,不会漏过会议里的任何信息。

核心概念之间的关系(用小学生能理解的比喻)

这四个核心概念就像一个完整的人:

  • Agent是大脑:负责思考、决策、规划做什么
  • RAG是记忆:负责存所有的资料和历史信息
  • 工具调用是手脚:负责执行具体的动作
  • 多模态交互是五官:负责收集外界的信息
    四个部分配合起来,就能完成从感知会议内容到主动完成会后任务的全流程。
Agent和RAG的关系

大脑思考的时候需要用到记忆里的信息,比如你问Agent“上次开会定的用户增长目标是多少”,Agent就会去RAG里找上次会议的记录,找到之后再回答你,没有RAG的Agent就像记性不好的助理,只能瞎编。

RAG和工具调用的关系

记忆里的信息如果不够,助理就可以用工具去查更多的信息,比如RAG里没有最新的客户订单数据,Agent就可以调用CRM系统的查询工具,查到最新的数据再回答你。

Agent和工具调用的关系

大脑发出指令,手脚去执行,Agent判断需要做什么动作,然后调用对应的工具完成,比如Agent判断需要给张三发提醒,就调用发飞书消息的工具完成。

核心概念原理和架构的文本示意图

[用户端]:飞书/腾讯会议/钉钉/网页
    ↓
[接入层]:会议鉴权、参会人识别、事件回调
    ↓
[多模态感知层]:ASR语音转文字、OCR屏幕内容识别、声纹说话人识别
    ↓
[Agent核心层]:
    ├─ 短期记忆:当前会议的实时内容、上下文
    ├─ 长期记忆:历史会议记录、用户偏好
    ├─ 规划模块:任务拆解、优先级排序、工具选择
    └─ 反思模块:结果校验、用户反馈优化
    ↓
[能力层]:
    ├─ RAG检索模块:会议资料检索、历史会议检索、知识库检索
    └─ 工具调用模块:飞书/钉钉接口、日历接口、CRM/ERP接口、知识库接口
    ↓
[输出层]:实时会议纪要、动作项列表、问题解答、消息通知、数据同步

Mermaid 架构图

渲染错误: Mermaid 渲染失败: Parse error on line 2: ...Diagram 用户端 ||--o 接入层 : 发起会议请求 接 ----------------------^ Expecting 'ZERO_OR_ONE', 'ZERO_OR_MORE', 'ONE_OR_MORE', 'ONLY_ONE', 'MD_PARENT', got 'UNICODE_TEXT'

核心算法流程图

会议启动

多模态数据采集

内容结构化处理

存入Agent短期记忆

Agent实时分析内容

是否需要检索资料

调用RAG检索

生成回答/补充内容

是否需要执行动作

调用对应工具

返回执行结果

继续监听内容

会议结束

Agent整合所有内容

生成会议纪要

拆分动作项

调用工具同步数据

发送通知给参会人

存入长期记忆优化Agent

核心算法原理 & 具体操作步骤

Agent核心组件原理

我们的Agent采用业界成熟的ReAct框架,包含5个核心组件:

  1. 感知组件:负责将多模态的会议内容(语音、图片、文字)转换成大模型能理解的结构化文本,这里我们用火山引擎的ASR服务做语音转文字,准确率达到98%以上,支持声纹识别区分不同的说话人,用通义千问的多模态模型做OCR识别,能准确提取共享屏幕里的PPT、白板内容。
  2. 记忆组件:分为短期记忆和长期记忆:
    • 短期记忆用Redis存储当前会议的上下文,保留最近10轮的对话内容,让Agent能理解上下文语义,不会出现答非所问的情况
    • 长期记忆用Milvus向量数据库存储所有历史会议的内容、用户偏好、常见问题,向量维度设置为1536,用OpenAI的text-embedding-ada-002模型做向量嵌入
  3. 规划组件:用思维链(CoT)技术让Agent拆解任务,比如用户说“把这次会议的动作项同步给所有人”,Agent会拆解成3步:第一步拆分所有动作项,第二步获取所有参会人的飞书ID,第三步调用发消息的工具给每个人发对应的动作项。
  4. 行动组件:基于大模型的Function Call能力实现工具调用,我们支持自定义工具,每个工具定义清楚名称、参数、作用,大模型会自动判断什么时候需要调用什么工具,不需要硬编码规则。
  5. 反思组件:每次用户给Agent反馈之后,我们会把反馈内容存入长期记忆,微调Agent的提示词,比如用户说“上次动作项漏了李四的任务”,我们就会在提示词里加强“要检查所有参会人的动作项,不要遗漏”的约束,让Agent的准确率越来越高。

核心代码实现(Python)

首先我们实现工具定义,这里以发飞书消息的工具为例:

from langchain.tools import tool
import requests
import os

# 飞书开放平台配置,建议存在环境变量里
FEISHU_APP_ID = os.getenv("FEISHU_APP_ID")
FEISHU_APP_SECRET = os.getenv("FEISHU_APP_SECRET")

def get_feishu_token():
    """获取飞书接口调用的access_token"""
    url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal"
    payload = {"app_id": FEISHU_APP_ID, "app_secret": FEISHU_APP_SECRET}
    response = requests.post(url, json=payload)
    return response.json()["tenant_access_token"]

@tool
def send_feishu_message(receiver_id: str, content: str) -> str:
    """
    发送飞书文本消息给指定用户
    参数:
        receiver_id: 接收人的飞书用户ID,可通过飞书开放接口获取
        content: 要发送的消息内容,支持普通文本
    返回:
        发送结果的描述
    """
    token = get_feishu_token()
    url = "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=user_id"
    headers = {"Authorization": f"Bearer {token}"}
    payload = {
        "receive_id": receiver_id,
        "msg_type": "text",
        "content": f'{{"text":"{content}"}}'
    }
    response = requests.post(url, headers=headers, json=payload)
    if response.status_code == 200 and response.json()["code"] == 0:
        return f"消息发送成功,接收人ID:{receiver_id}"
    else:
        return f"消息发送失败,错误信息:{response.text}"

接下来实现RAG检索模块:

from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Milvus
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import PyPDFLoader, Docx2txtLoader

class MeetingRAG:
    def __init__(self):
        self.embeddings = OpenAIEmbeddings(
            api_key=os.getenv("OPENAI_API_KEY"),
            base_url=os.getenv("OPENAI_BASE_URL")
        )
        self.vector_store = Milvus(
            embedding_function=self.embeddings,
            connection_args={
                "host": os.getenv("MILVUS_HOST"),
                "port": os.getenv("MILVUS_PORT")
            },
            collection_name="meeting_docs",
            primary_field="pk",
            text_field="text",
            vector_field="vector"
        )
        self.text_splitter = RecursiveCharacterTextSplitter(
            chunk_size=1000,
            chunk_overlap=200,
            length_function=len
        )

    def upload_meeting_doc(self, file_path: str, meeting_id: str) -> bool:
        """上传会议相关的资料到向量库"""
        try:
            if file_path.endswith(".pdf"):
                loader = PyPDFLoader(file_path)
            elif file_path.endswith(".docx"):
                loader = Docx2txtLoader(file_path)
            else:
                return False
            documents = loader.load()
            # 给每个文档添加会议ID的元数据,方便后续按会议检索
            for doc in documents:
                doc.metadata["meeting_id"] = meeting_id
            splits = self.text_splitter.split_documents(documents)
            self.vector_store.add_documents(splits)
            return True
        except Exception as e:
            print(f"上传文档失败:{e}")
            return False

    def search_relevant_content(self, query: str, meeting_id: str = None, top_k: int = 3) -> list:
        """检索相关的内容,可指定会议ID只检索当前会议的资料"""
        search_kwargs = {"k": top_k}
        if meeting_id:
            search_kwargs["expr"] = f'metadata["meeting_id"] == "{meeting_id}"'
        docs = self.vector_store.similarity_search(query, **search_kwargs)
        return [doc.page_content for doc in docs]

# 初始化RAG实例
meeting_rag = MeetingRAG()

# 定义RAG检索工具
@tool
def search_meeting_docs(query: str, meeting_id: str = None) -> str:
    """
    检索会议相关的文档内容,回答用户的问题时优先调用这个工具
    参数:
        query: 用户的问题,比如"Q3的用户增长目标是多少"
        meeting_id: 当前会议的ID,可选参数,传入后只检索当前会议的资料
    返回:
        检索到的相关内容
    """
    contents = meeting_rag.search_relevant_content(query, meeting_id)
    if not contents:
        return "没有找到相关的内容"
    return "\n---\n".join(contents)

最后实现Agent核心逻辑:

from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.chat_history import InMemoryChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory

# 初始化大模型,用GPT-4o或者国内的通义千问4、文心一言4都可以
llm = ChatOpenAI(
    model="gpt-4o",
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url=os.getenv("OPENAI_BASE_URL"),
    temperature=0.1 # 温度设低一点,让输出更准确,不要太随机
)

# 定义所有可用的工具
tools = [send_feishu_message, search_meeting_docs]

# 定义Agent的提示词,这里是核心,要明确约束Agent的行为
prompt = ChatPromptTemplate.from_messages([
    ("system", """
    你是一个专业的智能会议助手,你的职责是帮助用户处理所有会议相关的任务,请严格遵守以下规则:
    1. 所有回答必须基于检索到的会议资料内容,不要编造信息,如果检索不到相关内容就直接说"没有找到相关信息"
    2. 识别会议中的动作项时,必须包含三个要素:责任人、截止时间、具体任务内容,如果信息不全要主动询问用户
    3. 不要回答和会议无关的问题,如果用户问无关的内容就说"我是会议助手,只处理会议相关的问题"
    4. 生成的会议纪要要简洁明了,分模块:会议主题、参会人、重点讨论内容、动作项列表
    5. 需要给用户发通知或者提醒时,调用send_feishu_message工具
    6. 需要查找资料时,调用search_meeting_docs工具
    """),
    MessagesPlaceholder("chat_history"),
    ("human", "{input}"),
    MessagesPlaceholder("agent_scratchpad"),
])

# 创建Agent
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

# 存储每个会议的会话历史
session_store = {}

def get_session_history(session_id: str) -> InMemoryChatMessageHistory:
    if session_id not in session_store:
        session_store[session_id] = InMemoryChatMessageHistory()
    return session_store[session_id]

# 给Agent加上会话历史能力
agent_with_chat_history = RunnableWithMessageHistory(
    agent_executor,
    get_session_history,
    input_messages_key="input",
    history_messages_key="chat_history",
    history_factory_config=[],
)

调用示例:

# 会议ID作为session_id
session_id = "meeting_20240520_001"

# 调用Agent处理会议内容
result = agent_with_chat_history.invoke(
    {"input": "刚才会议里说张三下周一之前要提交Q3的运营方案,你提醒一下他,他的飞书ID是zhangsan001", "meeting_id": session_id},
    config={"configurable": {"session_id": session_id}}
)

print(result["output"])
# 输出:已经成功给张三发送了提醒消息,内容是"请你在下周一之前提交Q3的运营方案"

数学模型和公式 & 详细讲解

1. 向量相似度计算(RAG检索核心)

我们用余弦相似度计算用户查询和向量库中文档的相似度,公式如下:
s i m ( u , v ) = u ⋅ v ∣ ∣ u ∣ ∣ ∣ ∣ v ∣ ∣ sim(u,v) = \frac{u·v}{||u|| ||v||} sim(u,v)=∣∣u∣∣∣∣v∣∣uv
其中 u u u是用户查询的向量, v v v是向量库中文档的向量, u ⋅ v u·v uv是两个向量的点积, ∣ ∣ u ∣ ∣ ||u|| ∣∣u∣∣ ∣ ∣ v ∣ ∣ ||v|| ∣∣v∣∣分别是两个向量的模长。
余弦相似度的取值范围是[-1,1],值越大说明两个向量的语义越相似,我们一般只返回相似度大于0.7的内容,保证检索的准确率。

2. RAG召回率评估

我们用Recall@k指标评估RAG检索的效果,公式如下:
R e c a l l @ k = N u m b e r   o f   r e l e v a n t   d o c u m e n t s   i n   t o p   k T o t a l   n u m b e r   o f   r e l e v a n t   d o c u m e n t s Recall@k = \frac{Number\ of\ relevant\ documents\ in\ top\ k}{Total\ number\ of\ relevant\ documents} Recall@k=Total number of relevant documentsNumber of relevant documents in top k
比如我们有10条相关的文档,前3条结果里有6条相关的,那么Recall@3=6/10=0.6,我们的目标是让Recall@3达到0.9以上,保证90%的相关内容都能被检索到。

3. Agent任务完成率评估

我们用任务完成率评估Agent的效果,公式如下:
T a s k C o m p l e t i o n R a t e = N u m b e r   o f   s u c c e s s f u l l y   c o m p l e t e d   t a s k s T o t a l   n u m b e r   o f   a s s i g n e d   t a s k s TaskCompletionRate = \frac{Number\ of\ successfully\ completed\ tasks}{Total\ number\ of\ assigned\ tasks} TaskCompletionRate=Total number of assigned tasksNumber of successfully completed tasks
比如我们给Agent分配了100个任务,其中95个都成功完成了,那么任务完成率是95%,我们的落地目标是任务完成率达到90%以上,剩下的10%可以通过人工兜底处理。

项目实战:代码实际案例和详细解释说明

开发环境搭建

我们的开发环境配置如下:

软件/库 版本要求 作用
Python 3.10+ 开发语言
LangChain 0.2.0+ Agent开发框架
Milvus 2.3.0+ 向量数据库
Redis 7.0+ 缓存会话历史
FastAPI 0.100.0+ 对外提供API接口
火山引擎ASR 最新 语音转文字
通义千问多模态 最新 OCR识别和大模型能力
安装命令:
pip install langchain langchain-openai langchain-community pymilvus redis fastapi uvicorn python-multipart requests python-docx PyPDF2

完整系统架构设计

我们的系统分为3个核心服务:

  1. 会议采集服务:对接腾讯会议/飞书会议的开放接口,实时采集会议的音频、视频、共享屏幕内容,调用ASR和OCR接口转换成结构化文本
  2. Agent服务:处理实时的会议内容,调用RAG和工具,生成会议纪要和动作项
  3. 数据同步服务:把生成的纪要、动作项同步到飞书多维表格、共享盘等系统

核心API接口设计

接口地址 请求方式 参数 作用
/api/meeting/start POST meeting_id, meeting_name, attendee_list, doc_list 启动会议助手
/api/meeting/content POST meeting_id, content, speaker_id 上传实时的会议内容
/api/meeting/ask POST meeting_id, query 参会人向助手提问
/api/meeting/end POST meeting_id 结束会议,生成纪要

最佳实践Tips

  1. 提示词强约束:垂直场景的Agent一定要做强约束,明确告诉它什么能做什么不能做,避免出现答非所问或者胡编乱造的情况
  2. RAG分层检索:检索的时候优先检索当前会议的资料,再检索同主题的历史会议资料,最后检索公司公共知识库的内容,优先级从高到低,保证结果的相关性
  3. 权限控制:工具调用一定要做权限控制,比如普通参会人不能让助手调用财务系统查数据,只有财务人员有权限
  4. 人工兜底:生成的纪要可以让主持人先确认再发送,避免出现识别错误的情况,特别是涉及到重要的动作项和数据的时候
  5. 成本优化:实时处理的时候用低成本的小模型,生成纪要的时候用大模型,能降低70%的大模型调用成本

实际应用场景

1. 企业内部日常例会

这是最常见的场景,我们的客户某互联网公司上线这个助手之后,单次会议的会后整理时间从平均2.5小时降到了1分钟,每周全公司节省的时间超过1000小时,相当于多了5个全职员工的产出。

2. 面试场景

面试的时候助手自动记录面试过程,自动提取候选人的技能点、工作经历、期望薪资,自动和岗位要求做匹配,生成面试评价,面试官不用再花时间写面试记录,面试效率提升50%以上。

3. 线上产品发布会

发布会的时候助手自动整理观众的提问,自动生成问答集锦,自动同步给公关和客服团队,还能实时回答观众的常见问题,减少工作人员的工作量。

4. 远程培训场景

培训的时候助手自动整理课程重点,自动生成练习题,自动统计学员的疑问点,培训结束后把资料和重点发给学员,还能自动批改作业,培训效率提升60%以上。

工具和资源推荐

  1. Agent开发框架:LangChain(最成熟)、LlamaIndex(适合RAG场景)、Dify(低代码,不用写太多代码就能实现)
  2. 向量数据库:Milvus(开源,适合私有部署)、Pinecone(云服务,不用自己运维)、Chroma(轻量,适合本地测试)
  3. 多模态服务:火山引擎ASR(准确率高,支持方言)、通义千问多模态(性价比高)、百度智能云OCR(识别手写内容效果好)
  4. 学习资源:OpenAI官方Function Call文档、LangChain中文教程、《RAG实战》电子书、Dify官方文档

未来发展趋势与挑战

发展趋势

时间 阶段 核心能力 代表产品
2020年之前 传统会议助手 录屏、语音转文字 讯飞听见
2021-2022年 大模型会议助手 自动生成纪要、重点提取 飞书妙计、腾讯会议智文
2023-2024年 Agent驱动会议助手 自主规划、工具调用、跨系统联动 本文介绍的方案、字节跳动内部会议助手
2025年之后 多Agent协作会议助手 多个Agent分工合作,比如一个负责记纪要,一个负责答疑,一个负责跟进动作项 还在研发阶段

挑战

  1. 隐私安全:会议内容很多是公司机密,所以最好采用私有部署的大模型和向量数据库,所有数据都存在公司内部,不要上传到公网
  2. 准确率:专业术语、方言、多人同时说话的场景下ASR的准确率还有提升空间,动作项识别的准确率目前在90%左右,还需要进一步优化
  3. 成本:大模型调用的成本目前还是比较高,如果公司每天开几百个会,每个月的大模型成本可能要几万块,后续可以用私有部署的小模型降低成本

总结:学到了什么?

核心概念回顾

  1. Agent:相当于智能会议助理的大脑,具备自主规划、决策、执行的能力
  2. RAG:相当于助理的资料文件夹,让助理回答问题有依据,不会瞎编
  3. 工具调用:相当于助理的手脚,能调用现有办公系统的接口完成实际动作
  4. 多模态交互:相当于助理的五官,能同时处理语音、图片、文字等多种输入

概念关系回顾

Agent是核心,RAG提供记忆,工具调用提供执行能力,多模态提供感知能力,四个部分配合起来就能实现全流程的智能会议辅助。
通过本文的方案,你不需要懂复杂的大模型底层技术,只要会基础的Python开发,就能快速搭建一个属于自己的智能会议助手,落地之后能实实在在提升企业的会议效率,降低人力成本。

思考题:动动小脑筋

  1. 如果你要给你们公司的智能会议助手加一个功能,你最想加什么?怎么用Agent实现这个功能?
  2. 如果要适配跨国会议,有英文、日文等多语言的参会人,你会怎么优化这个智能会议助手的方案?
  3. 如果要让助手能自动统计会议中每个人的发言时长、发言占比,你会怎么实现?

附录:常见问题与解答

  1. Q:这个方案必须用OpenAI的GPT-4o吗?国内的大模型可以用吗?
    A:完全可以,国内的通义千问4、文心一言4、Claude3都支持工具调用能力,效果和GPT-4o差不多,而且数据不会出境,更适合国内企业使用。
  2. Q:会议内容的隐私怎么保证?
    A:可以采用全私有部署的方案,大模型、向量数据库、所有服务都部署在公司内部的服务器上,所有会议数据都不会流出公司,完全符合隐私合规要求。
  3. Q:如果开会的时候有很多人同时说话,ASR识别会不会不准?
    A:现在的ASR服务已经支持多人声纹分离,能准确区分不同的说话人,即使有轻微的插嘴也能准确识别,准确率可以达到95%以上。
  4. Q:这个方案的落地成本大概是多少?
    A:如果是100人以内的公司,用云服务的话,每个月的成本大概在1000-2000块钱,比雇一个全职助理便宜多了;如果是1000人以上的公司,私有部署的话一次性成本大概在10-20万,每年的运维成本大概在2-3万, ROI非常高。

扩展阅读 & 参考资料

  1. OpenAI Function Call 官方文档
  2. LangChain Agent 官方文档
  3. Milvus RAG 最佳实践
  4. 字节跳动智能会议助手实践
  5. Dify 低代码Agent平台官方文档

更多推荐