注意:

通过 OpenSearch 使用 Oracle Cloud Infrastructure Search 创建基于 RAG 的聊天机器人

简介

在本教程中,我们将指导您使用 OCI OpenSearch 作为向量数据库和 OCI Generative AI 服务模型(例如 Cohere 和 Llama)来创建基于检索增强生成 (RAG) 的聊天机器人。在本教程结束时,您将构建一个能够处理文档的聊天机器人解决方案,将其存储为 OpenSearch 中的向量嵌入,并在对话期间检索相关信息。

此外,我们将使用 Streamlit 创建直观的用户界面,让您能够上传文档、与聊天机器人交互以及轻松访问相关信息。本教程涵盖了从设置环境到使用您自己的 PDF 文件测试聊天机器人的所有内容。

目标

先决条件

任务 1:使用 OCI 使用 OpenSearch 设置 OpenSearch 集群

  1. 创建集群。有关详细信息,请参阅使用 OCI Search 使用 OpenSearch 创建 OpenSearch 集群

  2. 创建集群后,复制 API 端点以及用户身份证明以在应用程序中配置它们。

    OpenSearch 集群 API EndPoint

    OpenSearch 集群用户和 pwd

任务 2:配置 Python 环境

  1. 在 OCI 中启动具有 Oracle Linux 映像和基本配置的实例。有关更多信息,请参见 Launching a Linux Instance

  2. 在 Oracle Linux 上安装 Python 3。11。有关详细信息,请参见安装 Python

  3. 运行以下命令以更新 Python 版本。

    sudo update-alternatives  --set python /usr/bin/python3.11
    
  4. 创建名为 opensearch_rag_chatbot 的项目文件夹。

  5. 通过在文件夹中创建名为 requirements.txt 的文件来转到已创建的文件夹并安装相关项。

    python -m venv venv
    source ./venv/bin/activate
    pip install -r requirements.txt
    
  6. 运行以下命令以测试 Streamlit 安装。

    streamlit hello
    
  7. 如果 Streamlit 和 OpenSearch 端口 (8501/9200) 未在防火墙中打开,请使用以下命令添加它们。

    sudo firewall-cmd --list-all
    sudo firewall-cmd --permanent --add-port=8501/tcp
    sudo firewall-cmd --permanent --add-port=9200/tcp
    sudo firewall-cmd --reload
    

任务 3:设置 OCI 验证

  1. 在主目录中创建 .oci 文件夹并设置 config 文件。

    [DEFAULT]
    user=ocid1.user.oc1..
    fingerprint=40:02:56:
    key_file=/path/to/oci_api_key.pem
    tenancy=ocid1.tenancy.oc1..
    region=us-region-1
    

    注:有关详情,请参阅:为 Oracle Date a Science 创建配置文件

任务 4:编写聊天机器人引擎代码

任务 5:上载文档并测试聊天机器人

  1. 请运行以下命令以运行应用程序。

    cd opensearch_rag_chatbot
    python -m venv venv
    source ./venv/bin/activate
    streamlit run app.py
    
  2. 复制生成的 URL 以访问 Streamlit 应用程序。开始上载 PDF 并测试聊天机器人的功能。

    上载和测试

故障排除和技巧

注: Streamlit 控制台输出中提供了日志,其中提供了有关操作和错误的详细信息。

后续步骤

接下来,请考虑通过添加对更多文档格式(如 Word 或 HTML 文件)的支持来扩展聊天机器人,并尝试使用不同的嵌入模型来提高聊天机器人在特定领域的响应准确性。您还可以通过其他功能来增强 Streamlit UI,例如支持多个文档上载、查询历史记录或长期流程的实时反馈。

致谢

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心