基于离线大模型ChatGLM3-6B和在线API,langchain以及vllm加速,实现了LLM成为你的助手,快速可以让每一个人听到。
💡使用语音唤醒技术,以及文字转语音,语音转文字,让大模型的回答不只是看,还有听
🤖️ 一种利用 langchain 思想实现的基于本地知识库的问答应用以及agent工具调用,实现助手的知识库化以及智能化。
🤖️ 一种利用 llamaindex 实现的基于本地知识库的问答应用 实现比langchain更加精准
🔥 使用市面上比较流行的vllm框架,对本项目进行模型的加速推理,实现单卡4090可能部署大基座模型
- [2024/11]
我们项目接触了tensorre-llm框架,并将tensorre-llm框架简单接入了项目
- [2024/01]
我们项目接触了vllm框架,并将vllm框架简单接入了项目
- [2023/11]
我们项目受到了ChatGLM3-6B官方仓库的启发开始了langchain的融合
- [2023/10]
我们将我们微调之后的本地模型投入项目的使用
- [2023/07]
我们项目调用api实现了语音对讲的功能,让文字可以进入耳朵
- 后续我们将紧跟LLM的发展进一步,进行功能的完善添加
- 运行环境
python=3.10 cuda=11.8 torch=2.1
- 安装依赖
git clone https://github.com/pangpang-xuan/Private-doctor-bot.git
pip install -r requirements.txt
- 配置api-key与模型路径
语音对讲文件夹中的hey_siri.py
PICOVICE_APIKEY="" #申请方式在https://picovoice.ai/
Rubbish文件夹中的kedatest.py
wsParam = Ws_Param(APPID='',
APIKey='',APISecret='') #可以在科大讯飞的官网进行申请
Rubbish文件夹中的testwordtoyuyin.py
API_KEY = ''
SECRET_KEY = '' #可以在百度官网进行申请
Rubbish文件夹中的chat_all_tasks.py
ZhipuAI_api_key="" #可以去智谱AI官网(https://open.bigmodel.cn/)进行申请
语音对讲文件夹中的hey_siri.py
qwen_api="" #可以去https://account.aliyun.com/ 进行申请
大语言模型以及embedding模型路径,知识库文件路径
语音对讲文件夹中的hey_siri.py
model_path="" #切换成本地大模型路径
embedding_path="" #切换成本地向量模型路径
file_path="data/data.txt" #切换成本地txt知识库路径
- 启动语音对讲里面的主入口hey_siri.py
- 选择调用api还是本地大模型配置不同的LLm初始化
- 在Rubbish文件夹里面kedatest.py选择想要的chat函数
- 实现了用户不说话6s自动关闭 再次使用的话需要重新唤醒大白(若修改,到kedatest.py进行适合自己的参数修改)
cd 语音对讲
python hey_siri.py
- data文件夹存放着本地知识库,本项目本地知识库只支持txt文件
- data文件夹中提供各种格式转txt的代码,请根据自己的文件格式自行进行转换
- samples 为转换样例
- 在server文件提供Qwen和ChatGLM3-6B本地两种使用方式为例
- 自行更换hey_siri.py文件中的LLM加载方式以及kedatest文件中的chat函数
- 在Agent_Tools子文件夹Tools加入自定义的功能函数
- 一定要在函数中实现 _run 函数
- 调用函数时候可以进行单工具和多工具,自定义工具和系统工具的加载
- 自行更换hey_siri.py文件中的LLM加载方式以及kedatest文件中的chat函数
关于vllm的注意事项请移步:vllm加速模型
- import时候,自行删除semantic_kernel
- 文字转语音的时候输出字数如果过长的话,将无法转为语音进行播放
- langchain_agent有可能模型有的时候不能很好的进行理解,有的时候无法进行function calling
- vllm对于模型的加速本项目测试阶段只在服务器上面运行,不知道对于电脑的Linux效果如何