Hippo+Azure&OpenAI搭建知识库demo

前情提要
本案例可以手动选择azure的模型和openai的模型。
问答效果演示

前置条件

1.python3.8及以上;
2.安装如下python包:
  • pip install hippo-api==1.0.0.rc4
  • pip install langchain==0.0.220
  • pip install unstructured==0.9.1
  • pip install markdown==3.4.4
  • pip install tiktoken==0.4.0
  • pip install openai==0.27.8
3.社区版hippo部署完毕且可以访问;
(ps.安装教程、产品包及其他Hippo资源获取详见:https://community.transwarp.cn/article/detail?id=405

所涉及的代码及配置文件

代码脚本及配置文件.zip
Note:
  • 需要创建一个文件夹并保存这些代码和配置文件;
  • 文件包中的config.yaml配置文件需要上传后自行修改内容,参数说明如下:

如果您正在试用或使用Azure或OpenAI,这些参数在模型文档中也会提供,具体也可以查看对应的文档。

注意事项
本篇内容及示例视频均采用的方式是基于服务器安装Anaconda软件来管理Python环境以及安装所需的Python包。
如果您已经部署好Hippo后,您也可以考虑直接下载Anaconda软件,在anaconda中的Python环境直接运行demo脚本,然后链接部署好的Hippo即可,具体示例如下:
在这个例子中,我将环境命名为 myenv,但你可以使用任何你喜欢的名称。python=3.8 告诉
1. Anaconda 我们要在这个环境中安装 Python 3.8:
//
conda create --name myenv python=3.8
2. 创建环境后,你需要使用以下命令来激活环境
//conda activate myenv
3. 
现在,你就在名为 myenv 的 Python 3.8 环境中了。你可以使用 python --version 命令来确认你的 Python 版本。
请注意,你需要用 conda deactivate 命令来退出虚拟环境,回到你的基础环境。

下面将介绍如何基于Hippo的安装环境来运行此Demo。

实操步骤

为了方便您使用此Demo,您也可以同时参考该视频进行操作:
步骤一 环境准备
本教程采用的是Anaconda软件来管理Python环境以及安装所需的Python包。
1.下载Anaconda安装文件
//wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
2.等待下载完成后,运行以下命令以安装Anaconda:
//bash Anaconda3-2021.05-Linux-x86_64.sh
3.接下来就可以按照安装向导的指示进行操作了。安装过程中,可选择安装Anaconda的路径和其他选项。
4.安装完成后,启动Anaconda:
//source ~/anaconda3/bin/activate
步骤二 检查Python版本以及所需的python包
1.执行以下指令确保Python版本为3.8及以上
//python --version
2.分别执行以下指令安装所需的python包
//pip install hippo-api==1.0.0.rc4
//pip install langchain==0.0.220
//pip install unstructured==0.9.1
//pip install markdown==3.4.4
//pip install tiktoken==0.4.0
//pip install openai==0.27.8
3.完毕后可执行下方指令做最后检查
//pip list
4.检查无误后即可开始正式基于Hippo搭建知识库
步骤三 创建一个文件夹将所需的代码文件及配置文件上传至运行环境
步骤四 修改config.yaml配置文件,修改对应的参数
步骤五 知识入库
涉及的脚本:
init_from_md.py
芯片战争简介.md
执行以下指令:
//python init_from_md.py --ip xxx --port xxx --table_name xxx --database_name xxx --embedding_model xxx --file_path xx/芯片战争简介.md
参数说明:
--ip:hippo向量数据库的ip
--port:hippo向量数据库的port
--table_name:要插入数据的表名
--database_name:要插入数据的库名
--embedding_model:embedding模型的名称(目前可选 azure和openai)
--file_path:markdown文件的绝对路径
可通过--h命令查看该脚本的使用方法:python init_from_md.py --h 
注意事项:
该demo体验版仅支持导入markdown格式的知识文档;
代码脚本中已经封装了建表语句,因此参数--table_name对应的表可以是新表也可以是已经存在的表,新表直接设置一个新的表名称即可,如果是已经存在的表在语句最后需要新加一个参数:--is_delete
  • --is_delete true:重置表中的所有数据(相当于删表重建)
  • --is_delete false:继续向表中追加数据 (默认为false,不需要填写)
步骤六 开启问答
涉及的脚本:knowledge_demo.py
执行以下指令:
//python knowledge_demo.py --ip xxx --port xxx --table_name xxx --database_name xxx --embedding_model xxx --llm_name xxx
参数说明:
--ip:hippo向量数据库的ip
--port:hippo向量数据库的port
--table_name: 要插入数据的表名
--database_name: 要插入数据的库名
--embedding_model: embedding模型的名称(目前可选 azure和openai)
--llm_name: 大模型的名称(目前可选 azure和openai)
可通过--h命令查看该脚本的使用方法:python transwarp_knowledge_demo.py --h
Note:知识入库时使用的模型需要与问答使用的模型一致,比如知识入库时使用了 azure模型,那么在问答的时候也需要选用azure的模型。
步骤七 验证效果
在这个demo实验中,我向知识库中导入了一些关于《芯片战争》这本书籍的简单信息。这本书是在2022年10月份出版的,所以本模型是不具有这本书的知识的,以下的回答是模型结合知识库来生成的回答。
输入exit可以退出会话。


您也可以输入下方问题进行验证:
  • 《芯片战争:世界最关键技术的争夺战》的作者是谁
  • 《芯片战争:世界最关键技术的争夺战》的出版日期是什么时候
  •  芯片之争中国怎么破局
  •  按时间总结一下芯片战争的大事记
  • ...

评论
登录后可评论
发布者
星小环分享号
文章
180
问答
205
关注者
27
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入