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

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

Project Cover

Kimi

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

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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