Project Icon

rag-postgres-openai-python

使用OpenAI与PostgreSQL构建智能聊天应用

创建一个基于Web的聊天应用,利用OpenAI模型回答PostgreSQL数据库中的问题。前端使用React和FluentUI,后端采用Python和FastAPI。该项目支持在Azure上部署,通过Azure Developer CLI工具进行操作。主要功能包括结合向量搜索与全文搜索的混合搜索,以及将用户查询转换为SQL条件等。可通过GitHub Codespaces或VS Code Dev Containers快速启动,本地开发需配置Azure CLI、Node.js、Python、PostgreSQL和Docker等工具。

项目介绍:RAG on PostgreSQL

项目概览

RAG on PostgreSQL 是一个基于网络的聊天应用项目,它通过 API 后端与 OpenAI 的聊天模型交互,能够对 PostgreSQL 数据库表中的行进行查询和回答。项目的前端采用 React 和 FluentUI 构建,而后端使用 Python 和 FastAPI 实现。

该项目专为部署到 Azure 平台而设计,使用 Azure Developer CLI 进行部署。应用运行在 Azure Container Apps 上,数据库托管在 Azure PostgreSQL Flexible Server 中,模型则部署在 Azure OpenAI 上。

功能特点

该项目提供以下主要功能:

  • 集成搜索能力:在 PostgreSQL 数据库中,使用 pgvector 扩展实现矢量搜索,并结合全文搜索功能,根据 RRF(倒数排名融合)将搜索结果进行整合。
  • OpenAI 功能调用:可以将用户的查询转化为查询过滤条件。例如,将“是否有低于 30 美元的登山装备”转化为 SQL 的“WHERE price < 30”。
  • 查询向量化:利用 OpenAI 的嵌入 API,将用户查询转化为向量。

系统架构

此应用部署后会利用用户分配的托管身份验证 Azure 服务,日志则存储在 Log Analytics 中。

上手指南

项目提供了多种开启方式:

  • GitHub Codespaces:这是最快捷的方式,可以直接在浏览器中开启一个基于 Web 的 VS Code 实例。
  • VS Code 开发容器:在本地 VS Code 环境中,通过开发容器扩展打开项目。
  • 本地环境设置:需先确保本地安装 Azure Developer CLI、Node.js、Python、PostgreSQL 等必要工具。

部署步骤

无论在何种环境中打开项目,都可以将其部署到 Azure:

  1. 登录 Azure 账户。
  2. 创建新的 azd 环境以储存配置。
  3. (可选)自定义资源配置。
  4. 初始化资源并部署代码。

本地开发

准备工作

  • 在本地设置环境文件,根据需求设置 OpenAI 或其它 API 使用参数。
  • 安装必需的 Python 包和后端应用。
  • 构建前端。

运行

通过 FastAPI 运行后端服务,同时通过 npm 运行前端服务,即可在浏览器中访问本地部署的应用。

费用

项目使用的各项 Azure 服务可能产生不同的费用,具体取决于使用的地区和资源配置。建议使用 Azure 定价计算器以获取更详细的费用估算。

安全指南

项目通过托管身份对 Azure 服务进行身份验证,并通过 GitHub Actions 进行代码安全扫描,确保模板的最佳安全实践。

指南和资源

项目详细文档可在项目 docs/ 文件夹中找到,涵盖了项目流、数据自定义、现有资源部署等方面的信息。若有任何疑问或问题,请在问题追踪器中提出。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号