Streamlit

更新时间:

Streamlit是基于Python语言的一个开源框架,可用于快速创建和部署Web应用程序。本文利用Streamlit和云原生数据仓库 AnalyticDB PostgreSQL 版RAG Service构建了一款应用,以便于您在Web界面中体验RAG Service的知识检索增强能力。

版本限制

AnalyticDB for PostgreSQL6.0版实例。

前提条件

  • 已创建阿里云账号或具有AliyunGPDBFullAccessAliyunECSFullAccess权限策略的RAM用户,并为其创建AccessKey ID和AccessKey Secret。详情请参见RAM用户创建AccessKey

  • 已创建云原生数据仓库 AnalyticDB PostgreSQL 版实例并在该实例中创建初始账号,详情请参见创建实例创建初始账号

    重要

    创建实例时必须开启向量引擎优化。

  • 已获取百炼API-KEY,如何获取请参见API-KEY

  • 已创建ECS实例并为其安装3.9及以上版本的Python环境。

步骤一:部署服务依赖

  1. 为方便体验,云原生数据仓库 AnalyticDB PostgreSQL 版已准备好示例代码。您只需下载并部署,即可直接体验知识库文档功能。

    远程连接ECS实例,下载代码。

    git clone https://github.com/aliyun/adbpg-chat-demo.git  # 获取最新的adbpg-chat-demo代码。
    cd adbpg-chat-demo
  2. 使用Python自带的venv模块来创建一个虚拟环境并激活该环境。

    python -m venv $(pwd)/venv
    source $(pwd)/venv/bin/activate    
  3. 安装依赖包。

    pip install -r requirements.txt

步骤二:启动服务

  1. 在启动前,先配置环境变量。

    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。

  2. 启动服务,服务默认启动的端口为8501。

    streamlit run Home.py

步骤三:访问服务

  1. 本地浏览器输入http://<ECS公网IP>:8501,访问服务。

    说明

    您可在当前ECS实例的实例详情 > 配置信息 > 弹性公网IP查看公网IP。

  2. 实例初始化。

    在Home页面输入云原生数据仓库 AnalyticDB PostgreSQL 版实例的初始账号和密码对实例初始化(每次使用前均需初始化实例)。若初始化成功,页面将显示“初始化成功”字样。

    初始化成功后,在左侧栏单击NamespaceKnowledgeBase,您可看到如下界面。

    image

    页面分为三部分。

    1. 最左边为侧边栏,包含Home、Namespace、KnowledgeBase和Chat问答。

      • Namespace:Namespace用于实现多租户隔离,在创建时须设置密码以提高数据的安全性。Namespace支持增删改查。

      • KnowledgeBase:KnowledgeBase用于存储文档,并且属于特定的Namespace。KnowledgeBase支持增删改查。进入某个KnowledgeBase后,您可对文档做上传、下载、查看、召回测试和LLM问答等操作。

      • Chat:问答界面。该功能通过自然语言处理技术,接收和分析用户的输入内容,并生成相应的回答。

    2. 中间区域展示侧边栏中每个功能的详细信息。

    3. 最右边提供调用代码示例,您可以基于此快速编写和调试RAG服务的后端代码。

步骤四:问答功能体验

  1. 单击左侧栏的Namespace,单击中间区域的创建Namespace

  2. 填写项目名称项目空间密码再次确认密码,填写完成后点击确认

  3. 在“创建成功”字样下方单击进入文档库,单击创建文档库,填写名称并选择EmbeddingModel为text-embedding-v2(您可根据实际情况选择其他参数)。

    image.png

  4. 在“创建成功”字样下方找到该文档库(本示例为foo)单击进入,在左侧栏单击上传文档,选择需要上传的文档,单击上传文档

    说明
    • 本示例上传的Dataiku连接.pdf文档格式为PDF,需选择PDFWithImageRefLoader。如果上传文档为其他格式,则无需选择任何值。

    • 文档名称必须带格式后缀,例如.pdf。

    image

  5. 文档上传成功后,在左侧栏单击问答,在最下方的方框输入您的问题(例如:如何在Dataiku中连接云原⽣数据仓库AnalyticDB PostgreSQL版),您可以看到相关的回答。

    image