今天给大家分享一个教学的 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 教学助手页面,选择角色。

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

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

【AI+教学】让课堂实时讲解语音知识库沉淀下来的更多相关文章

  1. 实时中文语音克隆——开源项目MockingBird体验

    [引子] 在今年大型网络攻防演练前不久,笔者接到一个公司的座机号码来电,上来就问防守准备得怎么样了,哪里还有不足等.等等,这声音不认识,笔者第一反应就是蓝军(Red Team)来进行社会工程攻击,于是 ...

  2. 实时Android语音对讲系统架构

    本文属于Android局域网内的语音对讲项目系列,<通过UDP广播实现Android局域网Peer Discovering>实现了局域网内的广播及多播通信,本文将重点说明系统架构,音频信号 ...

  3. [初识]使用百度AI接口,图灵机器人实现简单语音对话

    一.准备 1.百度ai开放平台提供了优质的接口资源https://ai.baidu.com/  (基本免费) 2.在语音识别的接口中, 对中文来说, 讯飞的接口是很好的选择https://www.xf ...

  4. 基于flask和百度AI接口实现前后端的语音交互

    话不多说,直接怼代码,有不懂的,可以留言 简单的实现,前后端的语音交互. import os from uuid import uuid4 from aip import AipSpeech from ...

  5. 矩池云助力科研算力免费上"云",让 AI 教学简单起来

    矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验,和高性价比的GPU集群资源.而且对同学们比较友好,会经常做一些大折扣的活动,最近双十一,全场所有的RTX 2070.Platin ...

  6. Nature重磅:华裔科学家成功解码脑电波,AI直接从大脑中合成语音

    [导读]Nature发表华裔作者论文:通过解码大脑活动提升语音的清晰度,使用深度学习方法直接从大脑信号中产生口语句子,达到150个单词,接近正常人水平. 大脑活动能够解码成语音了. 说话似乎是一项毫不 ...

  7. 转载 | Python AI 教学│k-means聚类算法及应用

    关注我们的公众号哦!获取更多精彩哦! 1.问题导入 假如有这样一种情况,在一天你想去某个城市旅游,这个城市里你想去的有70个地方,现在你只有每一个地方的地址,这个地址列表很长,有70个位置.事先肯定要 ...

  8. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然

    from:https://36kr.com/p/5103044.html 到2020年,大多数先进的ML袖珍电脑(你仍称之为手机)将有能力执行一整套任务.个人助理将变的更加智能,它是打造这种功能的切入 ...

  9. AliCloudDenoise 语音增强算法:助力实时会议系统进入超清音质时代

    近些年,随着实时通信技术的发展,在线会议逐渐成为人们工作中不可或缺的重要办公工具,据不完全统计,线上会议中约有 75% 为纯语音会议,即无需开启摄像头和屏幕共享功能,此时会议中的语音质量和清晰度对线上 ...

  10. 2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)

    题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI ...

随机推荐

  1. 如何构建多模态AI知识库?

    转载:如何构建多模态AI知识库? 摘要 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量.其中,多模态 AI 知识库作为 AI 领域的重要创新,正引领我们迈向一个全新的智能时代.它 ...

  2. Trae AI 工具使用记录--0手写代码创建桌面代办事项软件

    使用的AI工具是最近字节跳动出品的Trae工具. 第一步 下载IDE,Trae(官网链接 https://www.trae.ai) 安装完成后注册.登录,可以直接使用github账号.第一个坑就是目前 ...

  3. Ubuntu20.04搭建k8s v1.23.3版本集群

    前言 服务器统一版本 Ubuntu 20.04 搭建集群最少要两台服务器 每台服务器都需要 docker.环境配置.安装 kubeadm.kubelet 和 kubectl docker 安装 doc ...

  4. 云服务器下如何部署Django项目详细操作步骤

    前期本人完成了"编写你的第一个 Django 应用程序",有了一个简单的项目代码,在本地window系统自测没问题了,接下来就想办法部署到服务器上,可以通过公网访问我们的Djang ...

  5. 【SqlServer】datetime存储精度问题探究

    最近使用sqlserver 2012的时候注意到datetime类型的毫秒的精度是存在问题的,好奇是怎么回事,特意来研究一下 问题复现 如下的sql执行 UPDATE AlarmItem SET cr ...

  6. Cursor 老改坏代码?六哥这几招超管用!

    大家好,我是六哥!最近不少小伙伴和我吐槽,在使用Cursor时,AI老是把代码改坏,让人头疼不已.我自己也用了大几十个小时Cursor,今天就来给大家分享一些实用小窍门,教大家如何巧妙规避这类问题. ...

  7. Sql语句:数据操作

    数据操作,核心是:增删改查. 其中查与增删改不同,要返回数据集,其他的只要知道是否修改成功即可,所以一般调用时,返回值不同,这点要注意. 一.查询: select sname,sdept,sage f ...

  8. zk基础—1.一致性原理和算法

    大纲 1.分布式系统特点 2.分布式系统的理论 3.两阶段提交Two-Phase Commit(2PC) 4.三阶段提交Three-Phase Commit(3PC) 5.Paxos岛的故事来对应Zo ...

  9. Dify开发必备:分享8个官方文档不曾解释的关键技巧

    Dify 是一个帮助你快速搭建 AI 应用的工具,其定位类似Coze.但相比Coze--Dify是免费的.开源的,人人都可以用.哪怕你不懂编程,也能用它参与到 AI 应用的设计和使用中.总之,如果你是 ...

  10. devops 2024

    What is DevOps? DevOps is a mindset, a culture, and a set of technical practices. It provides commun ...