Streamlit
Streamlit是基于Python语言的一个开源框架,可用于快速创建和部署Web应用程序。本文利用Streamlit和云原生数据仓库 AnalyticDB PostgreSQL 版RAG Service构建了一款应用,以便于您在Web界面中体验RAG Service的知识检索增强能力。
版本限制
AnalyticDB for PostgreSQL6.0版实例。
前提条件
已创建阿里云账号或具有
AliyunGPDBFullAccess
和AliyunECSFullAccess
权限策略的RAM用户,并为其创建AccessKey ID和AccessKey Secret。详情请参见RAM用户、创建AccessKey。已创建云原生数据仓库 AnalyticDB PostgreSQL 版实例并在该实例中创建初始账号,详情请参见创建实例、创建初始账号。
重要创建实例时必须开启向量引擎优化。
已获取百炼API-KEY,如何获取请参见API-KEY。
已创建ECS实例并为其安装3.9及以上版本的Python环境。
步骤一:部署服务依赖
为方便体验,云原生数据仓库 AnalyticDB PostgreSQL 版已准备好示例代码。您只需下载并部署,即可直接体验知识库文档功能。
远程连接ECS实例,下载代码。
git clone https://github.com/aliyun/adbpg-chat-demo.git # 获取最新的adbpg-chat-demo代码。 cd adbpg-chat-demo
使用Python自带的venv模块来创建一个虚拟环境并激活该环境。
python -m venv $(pwd)/venv source $(pwd)/venv/bin/activate
安装依赖包。
pip install -r requirements.txt
步骤二:启动服务
在启动前,先配置环境变量。
export ADBPG_INSTANCE_ID=gp-bp1q203vj895g**** export ADBPG_INSTANCE_REGION=cn-hangzhou export DASHSCOPE_API_KEY='sk-ac7b88c2758142889c88417962ee****' export ALI_CLOUD_ACCESS_KEY_ID='LTAI5t5uGDuSBRXd6GLu****' export ALI_CLOUD_ACCESS_KEY_SECRET='qlPCnIB2g8c3YbPWpHvMyNC5PX****' export DASHSCOPE_LLM_NAME=qwen-max
参数说明
参数
描述
ADBPG_INSTANCE_ID
云原生数据仓库 AnalyticDB PostgreSQL 版的实例ID。
ADBPG_INSTANCE_REGION
云原生数据仓库 AnalyticDB PostgreSQL 版的实例所在地域。
DASHSCOPE_API_KEY
百炼的API-KEY。
ALI_CLOUD_ACCESS_KEY_ID
阿里云账号或RAM用户的AccessKey ID。
ALI_CLOUD_ACCESS_KEY_SECRET
阿里云账号或RAM用户的AccessKey Secret。
DASHSCOPE_LLM_NAME
LLM模型名称,取值如下。
qwen-max。
qwen-plus。
qwen-turbo。
qwen-long。
启动服务,服务默认启动的端口为8501。
streamlit run Home.py
步骤三:访问服务
本地浏览器输入http://<ECS公网IP>:8501,访问服务。
说明您可在当前ECS实例的
查看公网IP。实例初始化。
在Home页面输入云原生数据仓库 AnalyticDB PostgreSQL 版实例的初始账号和密码对实例初始化(每次使用前均需初始化实例)。若初始化成功,页面将显示“初始化成功”字样。
初始化成功后,在左侧栏单击Namespace或KnowledgeBase,您可看到如下界面。
页面分为三部分。
最左边为侧边栏,包含Home、Namespace、KnowledgeBase和Chat问答。
Namespace:Namespace用于实现多租户隔离,在创建时须设置密码以提高数据的安全性。Namespace支持增删改查。
KnowledgeBase:KnowledgeBase用于存储文档,并且属于特定的Namespace。KnowledgeBase支持增删改查。进入某个KnowledgeBase后,您可对文档做上传、下载、查看、召回测试和LLM问答等操作。
Chat:问答界面。该功能通过自然语言处理技术,接收和分析用户的输入内容,并生成相应的回答。
中间区域展示侧边栏中每个功能的详细信息。
最右边提供调用代码示例,您可以基于此快速编写和调试RAG服务的后端代码。
步骤四:问答功能体验
单击左侧栏的Namespace,单击中间区域的创建Namespace。
填写项目名称、项目空间密码、再次确认密码,填写完成后点击确认。
在“创建成功”字样下方单击进入文档库,单击创建文档库,填写名称并选择EmbeddingModel为text-embedding-v2(您可根据实际情况选择其他参数)。
在“创建成功”字样下方找到该文档库(本示例为foo)单击进入,在左侧栏单击上传文档,选择需要上传的文档,单击上传文档。
说明本示例上传的Dataiku连接.pdf文档格式为PDF,需选择PDFWithImageRefLoader。如果上传文档为其他格式,则无需选择任何值。
文档名称必须带格式后缀,例如.pdf。
文档上传成功后,在左侧栏单击问答,在最下方的方框输入您的问题(例如:如何在Dataiku中连接云原⽣数据仓库AnalyticDB PostgreSQL版),您可以看到相关的回答。