【AI+教学】让课堂实时讲解语音知识库沉淀下来

今天给大家分享一个教学的 AI 使用场景,主要用来解决课堂老师实时讲解的内容如何让学生快速了解学习。

一、教学场景说明:

课堂上老师上完课后,课堂实时讲解的内容,部分与教材或者课件有偏差(临场发挥),希望通过AI小助手将这部分知识沉淀总结下来。方便学生了解回顾。

二、AI 流程设计说明:

该 AI 小助手同时被老师和学生使用,然后进入小助手之后先选择

三、使用的 AI 应用平台

MaxKB:强大易用的企业级 AI 助手(开源)

更多信息:https://maxkb.cn/

四、涉及模型及组件

4.1大语言模型:

本次使用的是阿里云百炼大语言模型,实现 AI 问答;对接说明参见:https://maxkb.cn/docs/user_manual/model/bailian_model/

4.2语音识别模型

阿里云百炼语音识别模型,实现语音转文本;

对接说明:https://maxkb.cn/docs/user_manual/model/bailian_model/

4.3文档内容提取

实现将文档内容提取文本信息,详细操作说明参见:https://maxkb.cn/docs/user_manual/app/workflow_app/#112

4.4语音转文本

将音频文件通过模型转换为文本文件。具体操作说明参见:https://maxkb.cn/docs/user_manual/app/workflow_app/#113

4.5文档生成函数:

负责将语音识别到的文本和文档内容提取到的文本信息转换成word 文档。

详细函数代码如下所示:

复制代码
import requests

def convert_markdown_to_word(markdown_text):
    """
    发送 Markdown 文本到指定的 API,并获取生成的 Word 文件的下载链接

    :param markdown_text: Markdown 格式的文本
    :param api_url: API 的 URL
    :return: Word 文件的下载链接
    """
    # pandoc-api 部署 pandoc-api 的服务器的URL地址
    api_url = "http://ip:5000/convert"
    # 构造请求数据
    data = {
        "markdown": markdown_text
    }

    # 发送 POST 请求
    response = requests.post(api_url, json=data)

    # 检查响应状态
    if response.status_code == 200:
        # 解析 JSON 响应
        response_data = response.json()
        if 'download_url' in response_data:
            # 返回下载链接
            return response_data['download_url']
        else:
            return "Error: 'download_url' not found in the response"
    else:
        # 返回错误信息
        return f"Error: {response.status_code}, {response.text}"

其中将markdown_test设置成输入参数,具体参见如下:

4.6知识库导入 API 调用函数:

将文档生成函数生成word文档通过Python函数调用 API 接口导入到MaxKB的知识库中。

详细函数代码如下所示:

复制代码
import requests
import json
def main(user_key,dataset_id,file_name,audio_name):

    # 使用字符串的 split 方法截取 /download/ 后面的内容
    file_name = file_name.split("/download/")[1]

    # 定义下载链接(文档生产函数中的文档上传地址)和目标路径
    url = "http://IP:5000/download/"+file_name
    maxkb_filename = audio_name[0].get('name')+"-"+file_name;
    # 从pan-doc下载的文件,重新命名为录音文件的原名
    target_path = "/opt/maxkb/app/sandbox/python-packages/"+ maxkb_filename
    
    try:
        # 发送 GET 请求下载文件
        response = requests.get(url)
        response.raise_for_status()  # 检查请求是否成功
    
        # 将文件内容写入目标路径
        with open(target_path, "wb") as file:
            file.write(response.content)
        print(f"文件已成功下载到 {target_path}")
    except requests.exceptions.RequestException as e:
        print(f"下载失败:{e}")
        print("请检查链接的合法性或网络连接,并稍后重试。")
        
    # 目标 MaxKB URL访问地址
    url = "https://域名/api/dataset/document/split"
    
    # 请求头
    headers = {
        "accept": "application/json",
        "AUTHORIZATION": user_key
    }
    
    # 要上传的文件
    files = {
        "file": (maxkb_filename, open(target_path, "rb"), "text/plain")
    }
    
    # 发送 POST 请求
    response = requests.post(url, headers=headers, files=files)
    
    # 打印响应内容
    print("Response Status Code:", response.status_code)
    print("Response Content:", response.json())
    
    #根据指定知识库id,开始创建分段
    # 目标 MaxKB URL访问地址
    url = "https://域名/api/dataset/"+dataset_id+"/document/_bach"
    
    # 请求头
    headers = {
        "accept": "application/json",
        "AUTHORIZATION": user_key,
        "Content-Type": "application/json"
    }


    # 请求数据
    data = response.json().get("data")
    # 将第一个content重命名为paragraphs
    data[0]["paragraphs"] = data[0].pop("content")  
    
    # 发送 POST 请求
    response = requests.post(url, headers=headers, data=json.dumps(data))
    
    # 打印响应内容
    print("Response Status Code:", response.status_code)
    print("Response Content:", response.text)
    return response.text

添加函数输入参数,如下图所示:

其中user_id和dataset_id的含义以及获取方式如下所示:

1、user_key 为调用 MaxKB 的key,参见如下截图到MaxKB中获取:

  • 第一步:进入 api key 管理
  • 第二步:创建专属于自己的user_key

2、dataset_id 是语音知识库需要上传的指定 MaxKB 知识库,参照以下步骤完成。

  • 第一步:基于 MaxKB 创建一个通用型知识库,里面内容为空即可。参见如下截图:
  • 第二步:进入 MaxKB 的 Swagger API 文档,如下图获取访问地址以及user_key
  • 第三步:进入 Swagger API 文档,进入授权输入user_key。

  • 第四步:找到知识库查询的API接口,/api/dataset/ (获取知识库列表)

    参照以下截图获取到 dataset_id 即可。

五、AI 工作流编排

本次涉及两个工作流编排,其中一个 AI 工作流实现知识库入库,另一个 AI 工作流实现问答,两者相互引用满足不通角色的小助手使用。

AI 工作流一:音频知识库入库小助手

如下图所示将相关节点创建完成即可。

AI 工作流二:TCIP-T-AIGK

根据以下流程图编排相关 AI 工作流

其中 AI 工作流的基本信息中需要打开文件上传和设置用户输入参数,如下图所示:

  • 1、基本信息中需要打开文件上传,并同时支持文档和音频文件上传
  • 2、用户输入点击添加用户角色参数,如下图所示:

    同时需要将用户输入的名称信息改为请选择你的身份。

六、AI 教学助手演示

选择角色:进入 AI 教学助手页面,选择角色。

角色一:我是老师,点击上传文档或者音频文件,输入开始,点击发送,如下图所示知识库创建。

角色二:我是学生,提出问题,然后点击发送。

相关推荐
美酒没故事°18 小时前
Open WebUI安装指南。搭建自己的自托管 AI 平台
人工智能·windows·ai
鸿乃江边鸟18 小时前
Nanobot 从onboard启动命令来看个人助理Agent的实现
人工智能·ai
本旺18 小时前
【Openclaw 】完美解决 Codex 认证失败
ai·codex·openclaw·小龙虾·gpt5.4
张張40819 小时前
(域格)环境搭建和编译
c语言·开发语言·python·ai
乐鑫科技 Espressif19 小时前
使用 MCP 服务器,把乐鑫文档接入 AI 工作流
人工智能·ai·esp32·乐鑫科技
语戚19 小时前
Stable Diffusion 入门:架构、空间与生成流程概览
人工智能·ai·stable diffusion·aigc·模型
俊哥V19 小时前
每日 AI 研究简报 · 2026-04-08
人工智能·ai
rrrjqy20 小时前
什么是RAG?
ai
deephub20 小时前
向量数据库对比:Pinecone、Chroma、Weaviate 的架构与适用场景
人工智能·python·大语言模型·embedding·向量检索
Flittly20 小时前
【SpringAIAlibaba新手村系列】(15)MCP Client 调用本地服务
java·笔记·spring·ai·springboot