人工智能AI系列 - 问答系统
目录:
http://aias.top/
问答系统
问答系统(Question Answering System, QA)是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户用自然语言提出的问题。其研究兴起的主要原因是人们对快速、准确地获取信息的需求。问答系统是人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向。
文本搜索引擎
本例子基于文本搜索引擎,支持上传csv文件,使用句向量模型提取特征,并基于milvus向量引擎进行后续检索。
主要特性
- 底层使用特征向量相似度搜索
- 单台服务器十亿级数据的毫秒级搜索
- 近实时搜索,支持分布式部署
- 随时对数据进行插入、删除、搜索、更新等操作
句向量模型【支持15种语言】
句向量是指将语句映射至固定维度的实数向量。将不定长的句子用定长的向量表示,为NLP下游任务提供服务。 支持 15 种语言: Arabic, Chinese, Dutch, English, French, German, Italian, Korean, Polish, Portuguese, Russian, Spanish, Turkish.
- 句向量
句向量应用:
- 语义搜索/问答系统,通过句向量相似性,检索语料库中与query最匹配的文本
- 文本聚类,文本转为定长向量,通过聚类模型可无监督聚集相似文本
- 文本分类,表示成句向量,直接用简单分类器即训练文本分类器
1. 前端部署
1.1 安装运行:
# 安装依赖包
npm install
# 运行
npm run dev
1.2 构建dist安装包:
npm run build:prod
1.3 nginx部署运行(mac环境为例):
cd /usr/local/etc/nginx/
vi /usr/local/etc/nginx/nginx.conf
# 编辑nginx.confserver {listen 8080;server_name localhost;location / {root /Users/calvin/Documents/qa_system/dist/;index index.html index.htm;}......# 重新加载配置:
sudo nginx -s reload # 部署应用后,重启:
cd /usr/local/Cellar/nginx/1.19.6/bin# 快速停止
sudo nginx -s stop# 启动
sudo nginx
2. 后端jar部署
2.1 环境要求:
- 系统JDK 1.8+
- application.yml
# 文件存储路径
file:mac:path: ~/file/linux:path: /home/aias/file/windows:path: D:/aias/file/# 文件大小 /MmaxSize: 3000...
2.2 运行程序:
# 运行程序java -jar qa-system-0.1.0.jar
3. 后端向量引擎部署(docker)
3.1 环境要求:
- 需要安装docker运行环境,Mac环境可以使用Docker Desktop
3.2 拉取Milvus向量引擎镜像(用于计算特征值向量相似度)
安装文档
最新版本请参考官网
- Milvus向量引擎参考链接
Milvus向量引擎官网
Milvus向量引擎Github
sudo docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00
3.3 下载配置文件
vector_engine.zip
3.4 启动 Docker 容器
/Users/calvin/vector_engine为主机路径,根据需要修改。conf下为引擎所需的配置文件。
docker run -d --name milvus_cpu_0.10.0 \
-p 19530:19530 \
-p 19121:19121 \
-p 9091:9091 \
-v /Users/calvin/vector_engine/db:/var/lib/milvus/db \
-v /Users/calvin/vector_engine/conf:/var/lib/milvus/conf \
-v /Users/calvin/vector_engine/logs:/var/lib/milvus/logs \
-v /Users/calvin/vector_engine/wal:/var/lib/milvus/wal \
milvusdb/milvus:0.10.0-cpu-d061620-5f3c00
3.5 编辑向量引擎连接配置信息
- application.yml
- 根据需要编辑向量引擎连接ip地址127.0.0.1为容器所在的主机ip
##################### 向量引擎 ###############################
search:host: 127.0.0.1port: 19530indexFileSize: 1024 # maximum size (in MB) of each index filenprobe: 256nlist: 16384faceDimension: 512 #dimension of each vectorfaceCollectionName: questions #collection namecommDimension: 512 #dimension of each vectorcommCollectionName: comm #collection name
4. 打开浏览器
- 输入地址: http://localhost:8090
- 上传CSV数据文件
1). 点击上传按钮上传CSV文件.
测试数据
2). 点击特征提取按钮. 等待CSV文件解析,特征提取,特征存入向量引擎。通过console可以看到进度信息。
- 文本搜索 输入文字,点击查询,可以看到返回的清单,根据相似度排序。
5. 帮助信息
- swagger接口文档:
http://localhost:8089/swagger-ui.html
- 初始化向量引擎(清空数据): me.aias.tools.MilvusInit.java
String host = "127.0.0.1";int port = 19530;final String collectionName = "questions"; // collection nameMilvusClient client = new MilvusGrpcClient();// Connect to Milvus serverConnectParam connectParam = new ConnectParam.Builder().withHost(host).withPort(port).build();try {Response connectResponse = client.connect(connectParam);} catch (ConnectFailedException e) {e.printStackTrace();}// 检查 collection 是否存在HasCollectionResponse hasCollection = hasCollection(client, collectionName);if (hasCollection.hasCollection()) {dropIndex(client, collectionName);dropCollection(client, collectionName);}...
官网:
官网链接
Git地址:
Github链接
Gitee链接
人工智能AI系列 - 问答系统相关推荐
- 人工智能AI系列 - 人脸识别套件列表,包括人脸检测,人脸识别,人脸关键点,人脸比对,人脸搜索等等。
人脸识别套件列表 打造最好的java开源人脸识别套件,包括人脸检测,人脸识别,人脸关键点,人脸比对,人脸搜索等等. 人脸检测SDK 人脸检测SDK 链接 人脸检测 (含5个人脸关键点) SDK 链接 ...
- 人工智能AI系列 - 以图搜图,以文搜图,以图搜文的跨模态搜索
目录: http://aias.top/ 图像&文本的跨模态相似性比对检索[支持40种语言] 本例子提供了通过文本搜图片的能力展示(模型本身当然也支持图片搜文字,或者混合搜索). 主要特性 底 ...
- 【AI系列文章推送三】人工智能学派简介
目前人工智能的主要学派有下面三家: (1)符号主义(symbolicism),又称为逻辑主义(logicism).心理学派(psychologism)或计算机学派(computerism),其原理主要 ...
- 言有三文章 - AI系列完整阅读
言有三文章 - AI系列完整阅读 第一期:[AI白身境]深度学习从弃用windows开始 第二期:[AI白身境]Linux干活三板斧,shell.vim和git 第三期:[AI白身境]学AI必备的py ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
- RK3399Pro Android Rock-X 人工智能开发系列(2)
一.什么是Rock-X Rock-X SDK是基于RK3399Pro的一组快捷AI组件库,初始版本包括:人脸检测.人脸识别.活体检测.人脸属性分析.人脸特征点.人头检测.人体骨骼关键点.手指关键点.人 ...
- 组态王bitset用法_宇电AI系列仪表和组态王在产品检测装置中的应用
摘要:在我单位产品试验系统中,大量使用了厦门宇电的AI808型仪表和AI-301ME5型开关量I/O模块以及基于AI-BUS总线的组态王(宇电专用版)组态软件,充分利用了仪表的特性,实现了自动控制和人 ...
- 人工智能AI实训平台
人工智能AI实训平台 目录 产品外观 产品架构 产品特点 技术优势 产品功能 系统组成 操作使用说明 网络结构 教学实训 手写数字识别项目案例WZ-AISZ-V1.0 人脸识别项目案例WZ-AIRL- ...
- 人工智能ai换脸技术_人工智能技术如何帮助企业改善营销
人工智能ai换脸技术 每天都有数十亿人上网. 他们浏览网络,搜索信息并使用社交媒体平台. 精明的企业知道,所有上线的人中也有他们的客户. 但是实际的问题是如何达到目标. 事实证明,在快速发展的数字世界 ...
最新文章
- linux 配置 java 环境变量
- @override怎么加上去_不知道怎么学?java后端5年经验和技术总结(附思维导图)
- 事件响应的优先级、stopProgapation禁止下层组件响应
- 解决Keepalived脚本启动时warning、Unsafe
- 重构授课班时间安排模块代码
- Delphi程序员代码编写标准指南
- 【译】在Android中保护数据-加密大数据
- Apache Mahout:入门
- 映客上云 助力《疫战到底》系列课程吸引数千万用户观看
- java被电脑阻止怎么办_学电脑,一定要记住的6个常用命令,它能让你快速成为电脑达人...
- 有趣的应用 | 使用RNN预测股票价格系列一
- LeetCode-MySQL196. 删除重复的电子邮箱
- GIT提交记录和Revert commit过程分析
- c语言编译软件容错策略,软件容错方法之——软件冗余
- 同一Inputstream的父类和子类对象请维持最具体的子类对象,不要混合使用
- wordpress中文路径出现404错误的解决办法
- emmx文件用什么软件打开电脑_emmx文件怎么打开
- QT 字体家族中的 字体名称中英文名称对应
- 【工业大数据】大数据时代,计量服务将何去何从?
- linux小主机玩法,遗传算法有好多有趣的玩法,不只能用来凑论文