# llmapp **Repository Path**: tangzhangss/llmapp ## Basic Information - **Project Name**: llmapp - **Description**: 大模型应用|主要使用python实现 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-18 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # llmapp ### 介绍 python 3.11.0 大模型应用|主要使用python实现 ### 依赖安装 建议将项目目录添加进环境变量PYTHONPATH中 pip install -r requirements.txt ### 插件环境安装 #### rerank模型 下载:modelscope download --model BAAI/bge-reranker-large --local_dir D:\modelscope\bge-reranker-large #### 知识图谱数据库neo4j docker pull neo4j docker run -it -d -p 7474:7474 -p 7687:7687 \ -v D:/docker/neo4j/data:/data \ -v D:/docker/neo4j/logs:/logs \ -v D:/docker/neo4j/conf:/var/lib/neo4j/conf \ -v D:/docker/neo4j/import:/var/lib/neo4j/import \ -v D:/docker/neo4j/plugins:/var/lib/neo4j/plugins \ -e NEO4J_AUTH=neo4j/tangzhangss \ --name neo4j neo4j:latest #### 依赖安装 flash_attn window安装失败,whl文件安装lib/flash_attn-2.7.4.post1+cu124torch2.4.0cxx11abiFALSE-cp311-cp311-win_amd64.whl -其他版本下载地址: -windows https://github.com/kingbri1/flash-attention/releases -linux https://github.com/Dao-AILab/flash-attention/releases/ torch gpu版本 pip3 install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 -f https://mirrors.aliyun.com/pytorch-wheels/cu124 pip3 install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 -f https://mirrors.aliyun.com/pytorch-wheels/cu124 ### 实现功能 #### RAG落地实现API 1.文档上传ES向量数据库&查询 2.embedding模型使用bge-m3 文档分段并向量化___用于入库 字符串向量化___用于查询 nomic-embed-text:pdf文件检索效果较差|csv目前还可以|doc也不太行。 bge-m3:效果还可以 3.rerank重排序2种方式实现 权重&模型 4.知识图谱接入方案参考 一、(个人认为此方案性价比不高) 1)利用大模型分析提取文本的实体/关系信息 2)存储在neo4j数据库或者向量数据库中 3)查询时处理query获取实体和关系附加在prompt中 4)实体关系信息+向量数据库召回数据进行调用大模型 #### 自然语言转SQL应用 ##### 获取SQL语句 1.查询数据库中所有表结构 2.将query和表信息都向量化求得余旋相似度 3.取考前的几个表结构嵌入提示词中 4.组装提示词询问大模型 5.正则提取```sql(.*?)```获取SQL语句 ```sql SELECT COUNT(*) AS 入职人数 FROM `cytech_worker` WHERE YEAR(`入职时间`) = 2017 LIMIT 1000; ``` ##### 获取分析图表 1.查询数据库中所有表结构 2.将query和表信息都向量化求得余旋相似度 3.取靠前的几个表结构嵌入提示词中 4.组装提示词询问大模型 5.正则提取```json(.*?)```获取json数据 6.根据json格式中的sql语句查询数据,前端根据echarts类型条件渲染数据 ```json [ { "thoughts": "统计每年的入职人数,分析公司人员增长趋势及招聘策略效果,时间维度分析是基础且重要的观察角度", "showcase": "LineChart", "sql": "SELECT YEAR(`入职时间`) AS `year`, COUNT(*) AS `count` FROM cytech_worker GROUP BY `year` ORDER BY `year`", "title": "年度入职人数趋势分析" }, { "thoughts": "按季度统计入职分布,识别季节性招聘规律,为HR制定招聘计划提供数据支持", "showcase": "BarChart", "sql": "SELECT CONCAT(YEAR(`入职时间`), 'Q', QUARTER(`入职时间`)) AS `quarter`, COUNT(*) AS `count` FROM cytech_worker GROUP BY `quarter` ORDER BY `quarter`", "title": "季度入职分布统计" }, { "thoughts": "分析各部门入职人数占比,识别重点招聘部门,辅助组织结构优化", "showcase": "Table", "sql": "SELECT `一级部门`, `二级部门`, COUNT(*) AS `count` FROM cytech_worker GROUP BY `一级部门`, `二级部门` ORDER BY `count` DESC", "title": "部门维度入职人数统计" }, { "thoughts": "统计每月入职人数分布,识别招聘高峰月份,优化招聘资源分配", "showcase": "BarChart", "sql": "SELECT DATE_FORMAT(`入职时间`, '%Y-%m') AS `month`, COUNT(*) AS `count` FROM cytech_worker GROUP BY `month` ORDER BY `month`", "title": "月度入职人数波动分析" }, { "thoughts": "分析各岗位类别的人员构成,识别核心岗位分布,支持人才梯队建设", "showcase": "PieChart", "sql": "SELECT `岗位名称`, COUNT(*) AS `count` FROM cytech_worker GROUP BY `岗位名称` ORDER BY `count` DESC LIMIT 5", "title": "TOP5岗位人员构成分析" } ] ``` #### 工具 ##### 图片工具 图片提取文字 / 使用 EasyOCR 从图像中检测文本 效果和数据还可以,需要使用模型;200MB左右; ##### 语音工具 语音转文字 / kimi-audio asr 太慢了...巨慢...4060显卡 需要系统本身显卡安装cuda: 下载地址参考(选择低于本身支持的版本nvidia-smi), https://developer.nvidia.cn/cuda-downloads 运行没报错也没出结果,估计环境有问题,放弃了... 语音转文字 / vosk / 服务端大模型 下载模型 https://alphacephei.com/vosk/models/vosk-model-small-cn-0.22.zip 41.87 M https://alphacephei.com/vosk/models/vosk-model-cn-0.15.zip 1.67 G 代码参考 https://github.com/alphacep/vosk-api 需要正确安装flash_attn torch 41MB的准确率和速度都还行,性价比高。 语音转文字 / Web Speech API / 依赖浏览器纯Web端 直接依赖浏览器实现,效果还可以,可直接通过关键字让ai写出demo 语音转文字 / funasr / 完整的服务 / 服务端大模型 docker部署; -使用 websocket 通信; -docker\funasr\docker-compose.yml | docker-compose up -d -docker\funasr\funasr.md 查看说明 代码集成: -需要先安装ffmpeg并加入path中 -非实时语音识别 支持任意格式音频输入,支持任意时长输入 SenseVoiceSmall模型 paraformer-zh 模型 -实时语音直接官方示例