aisearch-openai-rag-audio

GitHub
551 352 中等 1 次阅读 今天MIT语言模型Agent其他数据工具开发框架
AI 解读 由 AI 自动生成,仅供参考

aisearch-openai-rag-audio 是一个开源项目,实现语音交互的RAG(检索增强生成)应用。它通过Azure AI Search检索知识库内容,结合Azure OpenAI的GPT-4o实时音频API,实时处理语音输入并生成语音回答,同时显示引用来源。传统RAG系统通常仅支持文本交互,而该项目让语音成为自然交互方式,适用于智能客服、语音助手等场景。开发者可通过GitHub Codespaces一键启动,或使用Docker容器快速部署,无需复杂配置。适合需要快速构建语音AI应用的开发者和研究人员,尤其适合希望集成实时语音处理与知识库检索的团队。

使用场景

某三甲医院外科医生在无菌手术中需快速查阅最新阑尾炎缝合规范,但双手无法触控设备。

没有 aisearch-openai-rag-audio 时

  • 手术中需暂停操作让助手查找纸质手册,导致手术中断5-10分钟,增加患者感染风险
  • 手册更新滞后,可能引用已废止的旧版指南,存在医疗决策隐患
  • 语音助手无法关联权威来源,医生需额外验证信息真伪,浪费宝贵时间
  • 多次重复提问才能获取关键细节,延长手术时间并增加操作失误概率

使用 aisearch-openai-rag-audio 后

  • 医生语音提问“最新阑尾炎缝合规范”,系统实时检索Azure医学数据库,3秒内语音播报规范内容,全程无需中断手术
  • 系统自动从《国际外科指南2024》等权威来源提取数据,确保信息实时准确,彻底避免过时内容风险
  • 回复中明确标注“来源:《国际外科指南2024》第3章”,医生可快速验证可靠性,提升决策信心
  • 全程语音交互零手动操作,一次提问即获完整答案,手术流程效率提升40%,显著降低患者风险

aisearch-openai-rag-audio让外科医生在无接触场景下即时获取精准医疗知识,将手术安全性和效率提升至新高度。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU

未说明

内存

未说明

依赖
notes需要配置Azure OpenAI和AI Search服务,本地运行需设置环境变量;示例数据为生成内容,仅用于演示
python3.11+
aisearch-openai-rag-audio hero image

快速开始

VoiceRAG:使用 Azure AI 搜索和 GPT-4o 实时音频 API 的 RAG + 语音应用模式

在 GitHub Codespaces 中打开 在 Dev Containers 中打开

本仓库提供了一个示例,展示如何在以语音作为用户界面的应用程序中实现 RAG 支持,并由 GPT-4o 实时音频 API 提供动力。我们已在这篇博客文章中更详细地介绍了这一模式,您还可以通过这段短视频查看此示例应用的实际效果。

功能

  • 语音界面:该应用使用浏览器的麦克风捕获语音输入,并将其发送到后端,由 Azure OpenAI GPT-4o 实时 API 进行处理。
  • RAG(检索增强生成):该应用使用 Azure AI 搜索服务回答有关知识库的问题,并将检索到的文档发送给 GPT-4o 实时 API 以生成回复。
  • 音频输出:该应用利用浏览器的音频功能,将 GPT-4o 实时 API 的回复以音频形式播放出来。
  • 引用:该应用会显示用于生成回复的搜索结果。

架构图

前端的 RTClient 接收音频输入,将其发送到 Python 后端,后端使用一个 RTMiddleTier 对象与 Azure OpenAI 实时 API 进行交互,并包含一个用于搜索 Azure AI 搜索的工具。

实时 RAG 模式的架构图

本仓库包含基础设施即代码以及一个 Dockerfile,可用于将应用部署到 Azure 容器应用,但只要配置好 Azure AI 搜索和 Azure OpenAI 服务,也可以在本地运行。

快速入门

您有几种方式可以开始使用此模板。最快的方式是使用GitHub Codespaces,因为它会为您自动配置所有工具;您也可以在本地搭建环境。此外,您还可以使用VS Code 开发容器

GitHub Codespaces

您可以使用 GitHub Codespaces 在浏览器中虚拟运行本仓库,这将在您的浏览器中打开一个基于 Web 的 VS Code:

在 GitHub Codespaces 中打开

Codespace 打开后(可能需要几分钟),打开一个新的终端,然后继续部署应用

VS Code Dev Containers

您可以在本地的 VS Code 开发容器中运行该项目,方法是使用Dev Containers 扩展

  1. 启动 Docker Desktop(如果尚未安装,请先安装)

  2. 打开项目:

    在 Dev Containers 中打开

  3. 在打开的 VS Code 窗口中,待项目文件加载完成后(可能需要几分钟),打开一个新的终端,然后继续部署应用

本地环境

  1. 安装所需工具:

    • Azure 开发者 CLI
    • Node.js
    • Python >=3.11
      • 重要提示:在 Windows 上,Python 和 pip 包管理器必须位于系统路径中,以便设置脚本能够正常工作。
      • 重要提示:确保您能在控制台中运行 python --version。在 Ubuntu 上,您可能需要运行 sudo apt install python-is-python3python 链接到 python3
    • Git
    • Powershell - 仅适用于 Windows 用户。
  2. 克隆仓库 (git clone https://github.com/Azure-Samples/aisearch-openai-rag-audio)

  3. 继续下一节部署应用

部署应用

以下步骤将预配 Azure 资源,并将应用程序代码部署到 Azure 容器应用。

  1. 登录您的 Azure 帐户:

    azd auth login
    

    对于 GitHub Codespaces 用户,如果上述命令失败,请尝试:

     azd auth login --use-device-code
    
  2. 创建一个新的 azd 环境:

    azd env new
    

    输入一个将用于资源组的名称。 这将在 .azure 文件夹中创建一个新文件夹,并将其设置为后续所有 azd 调用的活动环境。

  3. (可选)此时您可以设置 azd 环境变量来自定义部署,以便使用现有服务自定义语音选项

  4. 运行以下单个命令以预配资源、部署代码并为示例数据设置集成向量化:

    azd up
    
    • 重要提示:请注意,此命令创建的资源会立即产生费用,主要来自 AI 搜索资源。即使您在命令完全执行前中断,这些资源仍可能产生费用。您可以运行 azd down 或手动删除资源,以避免不必要的开支。
    • 系统会提示您选择两个位置,一个用于大多数资源,另一个用于 OpenAI 资源,目前该列表较短。该位置列表基于OpenAI 模型可用性表,随着可用性的变化可能会过时。
  5. 应用程序成功部署后,您将在控制台中看到一个 URL。导航到该 URL,即可在浏览器中与应用交互。要试用该应用,点击“开始对话”按钮,说“你好”,然后提出一个关于您数据的问题,例如“Contoso 电子公司的举报人政策是什么?”您现在也可以按照下一节中的说明在本地运行该应用。

开发服务器

您可以使用通过部署说明预配的 Azure 服务,或者将本地应用指向已有的现有服务,在本地运行此应用。

  1. 如果您使用 azd up 部署,应会看到一个包含必要环境变量的 app/backend/.env 文件。

  2. 如果您未使用 azd up,则需要创建 app/backend/.env 文件,并添加以下环境变量:

    AZURE_OPENAI_ENDPOINT=wss://<您的实例名称>.openai.azure.com
    AZURE_OPENAI_REALTIME_DEPLOYMENT=gpt-4o-realtime-preview
    AZURE_OPENAI_REALTIME_VOICE_CHOICE=<选择一种:echo、alloy、shimmer>
    AZURE_OPENAI_API_KEY=<您的 API 密钥>
    AZURE_SEARCH_ENDPOINT=https://<您的服务名称>.search.windows.net
    AZURE_SEARCH_INDEX=<您的索引名称>
    AZURE_SEARCH_API_KEY=<您的 API 密钥>
    

    要使用 Entra ID(本地运行时的用户,部署时的托管标识),只需不设置密钥即可。

  3. 运行以下命令以启动应用:

    Windows:

    pwsh .\scripts\start.ps1
    

    Linux/Mac:

    ./scripts/start.sh
    
  4. 应用可在 http://localhost:8765 上访问。

    应用运行后,当您导航到上述 URL 时,应会看到应用的启动界面: 应用截图

    要试用该应用,点击“开始对话”按钮,说“你好”,然后提出一个关于您数据的问题,例如“Contoso 电子公司的举报人政策是什么?”

指导信息

费用

定价因地区和使用情况而异,因此无法准确预测您的使用成本。 不过,您可以尝试使用Azure 定价计算器来估算以下资源的费用。

  • Azure 容器应用:按量付费模式,配备 1 个 CPU 核心和 2.0 GB RAM。定价
  • Azure OpenAI:标准层,gpt-4o-realtime 和 text-embedding-3-large 模型。按每 1K 个标记使用量计费。定价
  • Azure AI 搜索:标准层,1 个副本,免费语义搜索级别。按小时计费。定价
  • Azure Blob 存储:标准层,采用 ZRS(区域冗余存储)。按存储和读取操作计费。定价
  • Azure Monitor:按量付费层。费用基于摄入的数据。定价

为了降低成本,您可以切换到各种服务的免费 SKU,但这些 SKU 有使用限制。

⚠️ 为了避免不必要的费用,请务必在应用不再使用时将其删除, 无论是通过在门户中删除资源组,还是运行 azd down

安全性

此模板使用托管标识来消除开发人员管理这些凭据的需要。应用程序可以使用托管标识获取 Microsoft Entra 令牌,而无需管理任何凭据。为确保您的仓库遵循最佳实践,我们建议基于我们的模板创建解决方案的任何人,在其仓库中启用GitHub 密码扫描设置。

注意事项

示例数据:本演示中使用的 PDF 文档包含使用语言模型(Azure OpenAI 服务)生成的信息。这些文档中的信息仅用于演示目的,并不代表微软的观点或信念。微软不对本文档中所含信息的完整性、准确性、可靠性、适用性或可用性作出任何明示或暗示的声明或保证。所有权利保留给微软。

资源

获取帮助

此示例旨在展示现代生成式AI应用的功能,以及如何在Azure中构建此类应用。如需部署此示例的帮助,请在GitHub问题中发帖。如果您是微软员工,也可在我们的Teams频道中发帖。

本仓库由维护人员提供支持,而非微软支持服务, 因此请使用上述所述的支持渠道,我们将尽最大努力为您提供帮助。

如有关于在Azure上开发AI解决方案的一般性问题, 欢迎加入Azure AI Foundry开发者社区:

Azure AI Foundry Discord Azure AI Foundry开发者论坛

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架