项目介绍:OpenAI at Scale
OpenAI at Scale 是由微软 Azure 快速通道团队(FastTrack for Azure team in Microsoft)推出的一次研讨会项目,旨在帮助客户在 Azure 平台上构建和部署简单的 ChatGPT 用户界面应用程序。
项目特性
- 聊天用户界面:提供一个简单直观的用户界面用于交互。
- 系统提示和超参数配置:支持定制化配置系统消息和调整超参数,以满足不同应用需求。
- Azure Active Directory 认证:通过 Azure Active Directory 进行用户身份验证,并通过 Microsoft Graph 获取用户信息。
- 应用日志收集:使用 Azure 日志分析工具收集应用日志,以便于监控和分析。
- 存储提示日志数据:将提示日志数据存储在 Azure Cosmos DB 中,便于持久化和查阅。
快速上手指南
运行前需具备的条件
-
本地运行所需:
- 操作系统:Windows 11、MacOS 或 Linux
- Azure CLI (版本 4.28.1 或更高)
- Node.js (版本 16.20 或更高)
- Python (版本 3.9 或更高)
- Git 客户端
- Docker Desktop 或其他 Docker 环境
-
在 Azure 上运行所需:
- Azure 订阅,在其中创建关键资源如 Azure OpenAI 服务、Azure Active Directory 应用、Azure 日志分析,以及可选的 Azure Cosmos DB。
- 角色权限:需拥有 Azure 订阅的 Contributor 角色或更高权限,以及创建 Azure Active Directory 应用和 Azure OpenAI 服务的权限。
Azure OpenAI 服务的创建
用户可以通过 Azure 门户或者 Azure CLI 创建 Azure OpenAI 服务。推荐首次接触的用户通过 Azure 门户,详细步骤可以参考 Azure 官方文档。
Azure Active Directory 应用的创建
按照 Azure 官方文档进行应用注册,并选定单页应用(SPA)作为平台类型。用于本地开发的重定向 URI 包括 http://localhost:5000
和 http://localhost:5173
。
(可选)Azure Cosmos DB 的创建
通过 Azure 文档创建 Azure Cosmos DB 账户,并确保启用分析存储。配置 API 类型为 Core (SQL),容器名设置为 chat_log
,分区键为 /chat_session_id
。
向本地环境部署
环境变量
在应用程序启动之前,需从 .env.sample
文件创建 .env
文件,并设置相应的环境变量,如:
app/frontend/.env
和app/backend/.env
用于分别进行用户认证和访问 Azure 服务。
Python 环境
Python 用于运行后端的 Flask 应用程序,需安装相应的 Python 库,启动后端服务。
Node.js 环境
Node.js 用于运行前端的 React 应用程序,需安装相关的 Node.js 包并根据需求(开发或生产环境)启动前端服务。
在 Azure 上部署
可将应用部署至 Azure 应用服务(Azure App Service),需在运行官方命令前先在前端运行 npm run build
以准备部署。
配置
应用日志的收集
通过 Azure 日志分析工作区收集应用日志,并启用诊断设置以确保所有相关日志类别处于启用状态。
(可选)将提示日志数据存储到 Azure Cosmos DB
详细讲解如何将聊天消息记录到 Azure Cosmos DB,以便进一步的数据分析和洞察。
问题反馈与资源
用户可以在 GitHub Issues 上提出问题和反馈,并参考相关资源以获取更多支持和信息。此项目欢迎客户和微软员工做出贡献,共同推动项目发展。