Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话

在本文中,可以将自己的数据与 Azure OpenAI 模型配合使用。 对数据使用 Azure OpenAI 模型可以提供功能强大的对话 AI 平台,从而实现更快、更准确的通信。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

file

环境准备

  • Azure 订阅 - 免费创建订阅。

  • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限。

    Azure OpenAI 服务需要注册,并且目前仅供经批准的企业客户与合作伙伴使用。

  • 已部署聊天模型的 Azure OpenAI 资源(例如 GPT-3 或 GPT-4)。

  • 聊天模型可以使用版本 gpt-35-turbo (0301)gpt-35-turbo-16kgpt-4gpt-4-32k

  • 请确保至少为 Azure OpenAI 资源分配了[认知服务参与者]角色。

使用 Azure OpenAI Studio 添加数据

file
导航到 Azure OpenAI Studio,然后使用有权访问 Azure OpenAI 资源的凭据登录。 在登录过程中或登录之后,选择适当的目录、Azure 订阅和 Azure OpenAI 资源。

  1. 选择“Chat Playground”磁贴。

file

  1. 在“助手设置”磁贴上,选择“添加数据(预览)”>“+ 添加数据源”。
    file
  2. 在显示的窗格中,选择“选择数据源”下的“上传文件”。 选择“上传文件”。 Azure OpenAI 需要存储资源和搜索资源来访问数据并编制数据索引。

3.1. 要使 Azure OpenAI 访问存储帐户,需要启用跨原点资源共享 (CORS)。 如果尚未为 Azure Blob 存储资源启用 CORS,请选择“启用 CORS”。

3.2. 选择 Azure AI 搜索资源,然后选择确认以表明知晓连接该资源将使用你的帐户。 然后,选择“下一步”。

file

  1. 在“上传文件”窗格中,选择“浏览文件”,并选择要上传的文件。 然后选择“上传文件”。 然后,选择“下一步”。

  2. 在“数据管理”窗格中,可以选择为索引启用[语义搜索还是向量搜索]。

  3. 查看输入的详细信息,然后选择“保存并关闭”。 现在,你可以与模型聊天,模型将使用数据中的信息来构造响应。

Chat Playground

file
通过Chat Playground使用开始使用无代码方法浏览 Azure OpenAI 功能。 这是一个简单的文本框,可以在其中提交提示以生成补全内容。 在此页中,可以快速循环访问和试验这些功能。

file

可以试验温度和预响应文本等配置设置,以提高任务的性能。 可以在 [REST API]中详细了解每个参数。

  • 选择“生成”按钮后会将输入的文本发送到补全 API,并将结果流式传输回到文本框中。
  • 选择“撤消”按钮可以撤消上一次生成调用。
  • 选择“重新生成”按钮可以同时执行撤消和生成调用。

部署模型

对 Azure OpenAI 工作室中的体验感到满意后,可以通过选择“部署到”按钮直接从工作室部署 Web 应用。
file
这让你可以选择将模型部署为独立的 Web 应用程序,或者如果要在模型上使用[你自己的数据],则可以使用 Power Virtual Agents。

例如,如果选择部署 Web 应用:

首次部署 Web 应用时,应选择“创建新的 Web 应用”。 为应用选择一个名称,该名称将成为应用 URL 的一部分。 例如,https://<appname>.azurewebsites.net

为已发布的应用选择订阅、资源组、位置和定价计划。 要更新现有应用,请选择“发布到现有 Web 应用”,然后从下拉菜单中选择上一个应用的名称。

使用Python调用

要成功地对 Azure OpenAI 进行调用,需要使用以下变量。 本快速入门假定已将数据上传到 Azure Blob 存储帐户,并且已创建 Azure AI 搜索索引。

变量名称
AOAIEndpoint在从 Azure 门户检查 Azure OpenAI 资源时,可在“密钥 & 终结点”部分中找到此值。 也可在“Azure AI 工作室”>“聊天操场”>“代码视图”中查找该值。 示例终结点为:https://my-resoruce.openai.azure.com
AOAIKey在 Azure 门户检查 Azure OpenAI 资源时,可在“资源管理>密钥 & 终结点”部分中找到此值。 可以使用 KEY1KEY2。 始终准备好两个密钥可以安全地轮换和重新生成密钥,而不会导致服务中断。
AOAIDeploymentId此值将对应于在部署模型时为部署选择的自定义名称。 可在 Azure 门户中的“资源管理”>“部署”下,或者在 Azure AI 工作室中的“管理”>“部署”下查找此值。
SearchEndpoint在 Azure 门户检查 Azure AI 搜索资源时,可在“概览”部分中找到此值。
SearchKey在 Azure 门户检查 Azure AI 搜索资源时,可在“设置>密钥”部分中找到此值。 你可以使用主要管理密钥或辅助管理密钥。 始终准备好两个密钥可以安全地轮换和重新生成密钥,而不会导致服务中断。
SearchIndex此值对应于为存储数据而创建的索引的名称。 在从 Azure 门户检查 Azure AI 搜索资源时,可以在“概述”部分找到它。

环境变量

  • [命令行]
setx AOAIEndpoint REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AOAIKey REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AOAIDeploymentId REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx SearchEndpoint REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx SearchKey REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx SearchIndex REPLACE_WITH_YOUR_INDEX_NAME_HERE

创建 Python 环境

  1. 为项目新建一个名为 openai-pytho 的文件夹,并且新建一个名为 main.py 的 Python 代码文件。 更改到该目录:
mkdir openai-python
cd openai-python
  1. 安装以下 Python 库:
  • [OpenAI Python 1.x]
pip install openai
pip install python-dotenv

创建 Python 应用

  1. 从项目目录中,打开 main.py 文件并添加以下代码:
  • [OpenAI Python 1.x]
import os
import openai
import dotenvdotenv.load_dotenv()endpoint = os.environ.get("AOAIEndpoint")
api_key = os.environ.get("AOAIKey")
deployment = os.environ.get("AOAIDeploymentId")client = openai.AzureOpenAI(base_url=f"{endpoint}/openai/deployments/{deployment}/extensions",api_key=api_key,api_version="2023-08-01-preview",
)completion = client.chat.completions.create(model=deployment,messages=[{"role": "user","content": "How is Azure machine learning different than Azure OpenAI?",},],extra_body={"dataSources": [{"type": "AzureCognitiveSearch","parameters": {"endpoint": os.environ["SearchEndpoint"],"key": os.environ["SearchKey"],"indexName": os.environ["SearchIndex"]}}]}
)print(completion.model_dump_json(indent=2))
  1. 运行以下命令:
python main.py

应用程序以适合在许多场景下使用的 JSON 格式打印响应。 它包含对来自已上传文件的查询和引文的答案。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/215847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

台式扫描电镜中的扫描速度和扫描模式如何选择?

台式扫描电镜&#xff08;SEM&#xff09;是一种利用电子束扫描样品表面&#xff0c;通过检测样品反射或发射的次级电子、背散射电子、X 射线等信号&#xff0c;来获取样品的形貌、结构、组成和分布等信息的仪器。台式扫描电镜具有体积小、操作简单、样品制备方便、分辨率高、成…

量化交易与人工智能:Python库的应用与效用

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 量化交易简介 量化交易是一种利用计算机算法执…

VUE+webrtc-streamer 实现实时视频播放(监控设备-rtsp)

效果 下图则启动成功&#xff0c;此时在浏览器访问127.0.0.1:8000可以看到本机监控画面 1、下载webrtc-streamer 地址&#xff1a;https://github.com/mpromonet/webrtc-streamer/releases 2、解压下载包 3、双击webrtc-streamer.exe启动服务 4、将下载包html文件夹下webrt…

Vue笔记-在axios中的than函数中使用this需要注意的地方

在Vue中&#xff0c;可以使用this关键字来访问到组件中定义的变量。然而&#xff0c;在axios的then函数中&#xff0c;this关键字的作用域会改变&#xff0c;会指向axios对象本身而不是Vue组件实例。因此&#xff0c;不能直接访问到Vue组件中定义的变量。 解决这个问题的一种方…

2023/12/11 作业

1.思维导图 2.作业 成果&#xff1a; 第一个头文件 #ifndef TEST3GET_H #define TEST3GET_H #include <QWidget> #include<QMessageBox> QT_BEGIN_NAMESPACE namespace Ui { class test3get; } QT_END_NAMESPACE class test3get : public QWidget { Q_OBJE…

安卓.apk的文件app应用程序开发后如何安装运行到真机上测试?

当您完成了一个安卓app的开发之后&#xff0c;进行真机测试是确保应用程序稳定运行的关键步骤之一。下面我们会讲述几种将安卓app安装到手机进行测试的方法&#xff0c;请根据具体情况选择合适的方式。 图片来源&#xff1a;安卓.apk的文件app应用程序开发后如何安装运行到真机…

C++ 指针常量和常量指针的区别

指针常量 指针常量&#xff1a;顾名思义它就是一个常量&#xff0c;但是是指针修饰的。 格式为&#xff1a; int * const p //指针常量在这个例子下定义以下代码&#xff1a; int a&#xff0c;b&#xff1b; int * const p&a //指针常量 //那么分为一下两种操作 *p9;//操…

linux(5):linux基础命令第五弹

在linux基础命令第四弹中http://t.csdnimg.cn/tvuNl我们了解了echo、tail命令、管道符和vim文本编辑器的相关内容。这一篇我们会了解关于命令选项的说明 我们在之前的学习中&#xff0c;发现命令中的选项是非常多的&#xff0c;比如-l -c -m -r -w 等等&#xff0c;命令有很多&…

C++学习笔记之五(String类)

C 前言getlinelength, sizec_strappend, inserterasefindsubstrisspace, isdigit 前言 C是兼容C语言的&#xff0c;所以C的字符串自然继承C语言的一切字符串&#xff0c;但它也衍生出属于自己的字符串类&#xff0c;即String类。String更像是一个容器&#xff0c;但它与容器还…

12月11日作业

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示登录成功&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xff0c;弹…

被迫搬家,宽带迁移怎么办?

广州一栋违建烂尾楼&#xff0c;13年里从未停止出租&#xff0c;年年住满人。这栋楼没有贴外墙&#xff0c;裸露的水泥表面都被雨水腐蚀&#xff0c;很多阳台没有建好&#xff0c;只是简单加装了护栏&#xff0c;存在巨大安全隐患。 为什么烂尾楼年年满人呢&#xff1f; 因为它…

基于ssm乐购游戏商城系统论文

摘 要 随着社会的发展&#xff0c;游戏品种越来越多&#xff0c;计算机的优势和普及使得乐购游戏商城系统的开发成为必需。乐购游戏商城系统主要是借助计算机&#xff0c;通过对信息进行管理。减少管理员的工作&#xff0c;同时也方便广大用户对个人所需信息的及时查询以及管理…

基于深度学习的yolov5入侵检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介IntroductionYOLOv5 Overview入侵检测系统架构1. 数据采集2. YOLOv5模型训练3. 实时监测4. 告警与反馈 性能评估与优化 二、功能三、系统四. 总结 一项目简…

Huawei Auth-HTTP Server 1.0 存在任意文件读取漏洞 附POC软件

@[toc] Huawei Auth-HTTP Server 1.0 存在任意文件读取漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学…

视频中自监督学习:「我的世界」下指令理解与跟随

本文介绍了北京大学人工智能研究院梁一韬助理教授所带领的 CraftJarvis 团队在「我的世界」环境下探索通用智能体设计的新进展&#xff0c;题为“GROOT: Learning to Follow Instructions by Watching Gameplay Videos”。 ​ GROOT 该研究的核心目标是探索能否摆脱文本数据的标…

【NR技术】NR NG-RAN整体架构 -网络接口以及无线协议框架(四)

1 引言 本博文介绍NR NG-RAN的网络节点间的接口以及无线协议框架。网络接口介绍包括RAN和NGC之间的NG接口&#xff1b;无线协议框架包括用户面和控制面协议。 2 NG接口 2.1 NG用户面接口 NG-U (user plane interface)是NG-RAN节点与UPF之间的接口。NG接口的用户平面协议栈如图…

AutoGen实战应用(一):代码生成、执行和调试

AutoGen 是一个支持使用多个代理来开发大型语言模型(LLM) 应用程序的框架&#xff0c;这些代理采样相互对话的方式来解决人类交给的任务。AutoGen 代理是可定制的、可对话的&#xff0c;并且无缝地允许人类参与。他们采用LLM、人类输入和各种工具组合的各种运作模式。 AutoGen …

docker 安装mysql 主从复制

一、搭建主服务器的mysql 1.1 先新建文件夹 mkdir -p /data/dockerData/mysql-master/conf 1.2 进入/data/dockerData/mysql-master/conf目录下新建my.config, [mysqld] ## 设置server_id&#xff0c;同一局域网中需要唯一 server_id101 ## 指定不需要同步的数据库名称 bin…

论文阅读《High-frequency Stereo Matching Network》

论文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Zhao_High-Frequency_Stereo_Matching_Network_CVPR_2023_paper.pdf 源码地址&#xff1a; https://github.com/David-Zhao-1997/High-frequency-Stereo-Matching-Network 概述 在立体匹配研究领域…

web漏洞原理与防御策略,web漏洞怎么挖掘

目录 Web安全的重要性 ​编辑常见的Web漏洞类型及其原理&#xff1a; 1、跨站脚本攻击&#xff08;XSS&#xff09;: 2、SQL注入: 3、跨站请求伪造&#xff08;CSRF&#xff09;: 4、远程文件包含&#xff08;RFI&#xff09;和本地文件包含&#xff08;LFI&#xff09;:…