当前位置: 首页 > news >正文

通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4(win版)

官方文档

Azure OpenAI 是微软提供的一项云服务,旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI,开发者和企业可以访问 OpenAI 的各种模型,如 GPT-3、Codex 和 DALL-E 等,并将其集成到自己的应用程序和服务中。

调用方式

  1. API 调用:用户可以通过HTTP 请求来调用 Azure OpenAI 提供的 REST API。请求中需要包含 API 密钥进行身份验证,并指定所需的模型和参数。例如,发送 POST 请求到特定的 API 端点,附带请求体中的输入数据和请求头中的 API 密钥。

    import requestsurl = "https://<your-resource-name>.openai.azure.com/openai/deployments/<deployment-id>/completions?api-version=2023-07-01-preview"
    headers = {"Content-Type": "application/json","api-key": "<your-api-key>"
    }
    data = {"prompt": "Hello, world!","max_tokens": 5
    }response = requests.post(url, headers=headers, json=data)
    print(response.json())
    
  2. Azure SDK:微软提供了多种编程语言的 SDK(软件开发工具包),如 Python、C# 等,使得开发者能够更简便地与 Azure 服务进行交互。SDK 会封装底层的 API 调用,使得开发者可以通过更高层次的抽象和简化的代码来使用 Azure OpenAI 服务。

    以 Python SDK 为例:

    from azure.ai.openai import OpenAIClient
    from azure.identity import DefaultAzureCredential# 创建 OpenAI 客户端
    credential = DefaultAzureCredential()
    client = OpenAIClient(endpoint="https://<your-resource-name>.openai.azure.com/", credential=credential)# 调用模型生成文本
    response = client.completions.create(deployment_id="<deployment-id>",prompt="Hello, world!",max_tokens=5
    )print(response.choices[0].text)
    

Key 与 SDK 的区别

  1. API 密钥(Key)

    • 使用方式:通常直接通过 HTTP 请求的请求头或 URL 参数来传递。
    • 管理:需要在 Azure 门户中生成和管理 API 密钥。
    • 灵活性:可以在不依赖特定编程语言或 SDK 的情况下使用,适合任何可以发出 HTTP 请求的环境。
  2. SDK: 需要endpoint和api-key

    • 使用方式:通过调用封装在 SDK 中的函数或方法来进行 API 调用。

    • 集成:通常与 Azure 生态系统中的其他服务更紧密集成,提供更一致的开发体验。

总的来说,API 密钥适合需要直接和灵活访问 API 的场景,而 SDK 适合需要简化开发流程和更深度集成的场景。
在pycharm的终端terminal运行

pip install openai
$env:AZURE_OPENAI_API_KEY = 'REPLACE_WITH_YOUR_KEY_VALUE_HERE'
$env:AZURE_OPENAI_ENDPOINT = 'REPLACE_WITH_YOUR_ENDPOINT_HERE'
# [System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_API_KEY', 'REPLACE_WITH_YOUR_KEY_VALUE_HERE', 'User')
# [System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_ENDPOINT', 'REPLACE_WITH_YOUR_ENDPOINT_HERE', 'User')

创建一个新的.py运行即可测试

import os
from openai import AzureOpenAIclient = AzureOpenAI(azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), api_key=os.getenv("AZURE_OPENAI_API_KEY"),  api_version="2024-02-01"
)response = client.chat.completions.create(model="gpt-35-turbo", # model = "deployment_name".messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]
)print(response.choices[0].message.content)

运行即可python test.py。如果要换其他模型比如GPT-4o(可用于标准和全球标准模型部署。) 需要在该模型可用的受支持标准或全球标准区域中创建或使用现有资源。

创建资源后,可以部署 GPT-4o 模型。 如果要执行编程部署,则“模型”名称为 gpt-4o,“版本”名称为 2024-05-13
报错没有找到环境变量,在终端查看:Get-ChildItem Env: 发现没有设置成功

命令行:与操作系统交互的文本接口。
Bash:主要用于 Unix 系统,命令行解释器的一种。
PowerShell:起源于 Windows,命令行解释器的一种。
PyCharm 中的终端:可配置为多种 shell,适应不同开发需求,在win里面就用PowerShell,在linux里面就用Bash。

正确的添加,(开头代码已修改为正确

$env:AZURE_OPENAI_API_KEY = 'REPLACE_WITH_YOUR_KEY_VALUE_HERE'
$env:AZURE_OPENAI_ENDPOINT = 'REPLACE_WITH_YOUR_ENDPOINT_HERE'

原因,一个立即生效,一个有作用时间和范围

在 PowerShell 中,[System.Environment]::SetEnvironmentVariable
$env: 都是设置环境变量的方法,但它们的作用范围和生效时间有所不同,这就是为什么前者不行而后者可以的原因。

[System.Environment]::SetEnvironmentVariable 的行为

[System.Environment]::SetEnvironmentVariable
方法可以用于设置环境变量,并且可以指定作用范围(当前进程、当前用户、所有用户)。使用此方法设置的环境变量可能需要重新启动终端或进程才能生效,尤其是在
UserMachine 作用范围时。

# 设置当前用户范围的环境变量 [System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_API_KEY',
'REPLACE_WITH_YOUR_KEY_VALUE_HERE', 'User')
[System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_ENDPOINT',
'REPLACE_WITH_YOUR_ENDPOINT_HERE', 'User') ```此方法在 PyCharm 终端中可能不会立即生效,因为 PyCharm
终端是一个已经启动的进程,设置的用户或系统范围的环境变量不会影响当前已经运行的进程。### `$env:` 的行为`$env:` 是 PowerShell 中设置环境变量的另一种方式,这种方式直接在当前 PowerShell
会话中设置环境变量,并且立即生效。这就是为什么在 PyCharm 终端中使用 `$env:` 能够立即看到环境变量的变化。```powershell
# 设置当前 PowerShell 会话的环境变量 $env:AZURE_OPENAI_API_KEY = 'REPLACE_WITH_YOUR_KEY_VALUE_HERE' $env:AZURE_OPENAI_ENDPOINT =
'REPLACE_WITH_YOUR_ENDPOINT_HERE' ```### 区别总结1. **作用范围**- `[System.Environment]::SetEnvironmentVariable` 可以设置当前进程、当前用户或所有用户的环境变量。- `$env:` 仅在当前 PowerShell 会话中设置环境变量。2. **生效时间**- `[System.Environment]::SetEnvironmentVariable` 设置的环境变量可能需要重新启动终端或进程才能生效。- `$env:` 设置的环境变量在当前 PowerShell 会话中立即生效。3. **适用场景**- `[System.Environment]::SetEnvironmentVariable` 适用于需要在多个会话或系统范围内生效的环境变量设置。- `$env:` 适用于需要在当前 PowerShell 会话中临时使用的环境变量设置。### 为什么前者不行后者可以在 PyCharm 终端中,使用 `[System.Environment]::SetEnvironmentVariable`
设置用户范围的环境变量不会立即在当前终端会话中生效,因为当前终端是一个已经运行的进程,新的环境变量设置不会影响到它。而使用 `$env:`
则会立即在当前 PowerShell 会话中生效,因此可以立即看到和使用新设置的环境变量。### 建议的使用方法如果您需要在当前 PyCharm 终端会话中设置环境变量,请使用 `$env:` 方式:```powershell $env:AZURE_OPENAI_API_KEY =
'REPLACE_WITH_YOUR_KEY_VALUE_HERE' $env:AZURE_OPENAI_ENDPOINT =
'REPLACE_WITH_YOUR_ENDPOINT_HERE' ```如果您需要在多个会话或系统范围内生效,请使用 `[System.Environment]::SetEnvironmentVariable`
并重新启动终端或系统以确保设置生效:```powershell
[System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_API_KEY',
'REPLACE_WITH_YOUR_KEY_VALUE_HERE', 'User')
[System.Environment]::SetEnvironmentVariable('AZURE_OPENAI_ENDPOINT',
'REPLACE_WITH_YOUR_ENDPOINT_HERE', 'User') ```这样可以确保环境变量在不同的使用场景中正确设置和生效。

response内容:

{"id": "chatcmpl-9k4JY8EuQR3TLfai4ze8TMNylKTB0","choices": [{"finish_reason": "stop","index": 0,"logprobs": null,"message": {"content": "Yes, several other Azure AI services also support customer managed keys (CMK). This capability allows you to have greater control over the encryption of your data by using your own encryption keys stored in Azure Key Vault. Some of the Azure AI services that support CMK include:\n\n1. **Azure Cognitive Services**:\n   - Text Analytics\n   - Computer Vision\n   - Translator\n   - Speech Services\n\n2. **Azure Machine Learning**:\n   - Offers encryption of data at rest using customer managed keys.\n\n3. **Azure Synapse Analytics**:\n   - Provides support for customer managed keys for data encryption.\n\nBy using customer managed keys, you can satisfy compliance requirements and have more control over key rotation and revocation. For specific implementation details and supported features, it's always a good idea to check the latest documentation for each service, as Microsoft regularly updates and expands their support for security features.","role": "assistant","function_call": null,"tool_calls": null},"content_filter_results": {"hate": {"filtered": false, "severity": "safe"},"self_harm": {"filtered": false, "severity": "safe"},"sexual": {"filtered": false, "severity": "safe"},"violence": {"filtered": false, "severity": "safe"}}}],"created": 1720766700,"model": "gpt-4o-2024-05-13","object": "chat.completion","service_tier": null,"system_fingerprint": "fp_abc28019ad","usage": {"completion_tokens": 179,"prompt_tokens": 55,"total_tokens": 234},"prompt_filter_results": [{"prompt_index": 0,"content_filter_results": {"hate": {"filtered": false, "severity": "safe"},"self_harm": {"filtered": false, "severity": "safe"},"sexual": {"filtered": false, "severity": "safe"},"violence": {"filtered": false, "severity": "safe"}}}]
}

可以看到response里面只有一个choice 为choice[0],所以是response.choices[0].message.content。

相关文章:

通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4(win版)

官方文档 Azure OpenAI 是微软提供的一项云服务&#xff0c;旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI&#xff0c;开发者和企业可以访问 OpenAI 的各种模型&#xff0c;如 GPT-3、Codex 和 DALL-E 等&#xff0c;并将其集成到自己…...

MySQL 面试真题(带答案)

MySQL 场景面试题 目录 场景1&#xff1a;用户注册和登录系统 1.1 数据库设计1.2 用户注册1.3 用户登录 场景2&#xff1a;订单管理系统 2.1 数据库设计2.2 创建订单2.3 查询订单 场景3&#xff1a;博客系统 3.1 数据库设计3.2 发布文章3.3 评论功能 场景1&#xff1a;用户…...

《A++ 敏捷开发》- 10 二八原则

团队成员协作&#xff0c;利用项目数据&#xff0c;分析根本原因&#xff0c;制定纠正措施&#xff0c;并立马尝试&#xff0c;判断是否有效&#xff0c;是改善的“基本功”。10-12章会探索里面的注意事项&#xff0c;13章会看两家公司的实施情况和常见问题。 如果已经获得高层…...

Spring Boot 框架知识汇总

1、什么是SpringBoot&#xff1f; 通过Spring Boot&#xff0c;可以轻松地创建独立的&#xff0c;基于生产级别的Spring的应用程序&#xff0c;您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置&#xff0c;集成了大量常用的第三方库配置&#xff0c;使…...

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用&#xff0c;该插件可同时支持windows和国产系统 在实际项目开发中&#xff0c;以下场景可能会用到Word局部编辑功能&#xff1a; 合同审批公文流转策划设计报告汇签单招投标&#xff08;标书文件&#xff09;其他&#xff0c;有模板且需要不同人员协作编辑…...

Go:基本变量与数据类型

目录 前言 前期准备 Hello World! 一、基本变量 1.1 声明变量 1.2 初始化变量 1.3 变量声明到初始化的过程 1.4 变量值交换 1.5 匿名变量 1.6 变量的作用域 二、数据类型 1.1 整型 1.2 浮点型 1.3 字符串 1.4 布尔类型 1.5 数据类型判断 1.6 数据类型转换 1.…...

计算器原生js

目录 1.HTML 2.CSS 2.JS 4.资源 5.运行截图 6.下载连接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…...

怎样将aac转换mp3格式?推荐四个aac转MP3的方法

怎样将aac转换mp3格式&#xff1f;当需要将aac格式音频转换为MP3格式时&#xff0c;有几种方法可以轻松实现这一目标。MP3是一种广泛支持的音频格式&#xff0c;几乎所有设备和平台都能播放MP3文件&#xff0c;包括各种音乐播放器、手机、平板电脑和汽车音响系统。而且它也提供…...

MongoDB - 查询操作符:比较查询、逻辑查询、元素查询、数组查询

文章目录 1. 构造数据2. MongoDB 比较查询操作符1. $eq 等于1.1 等于指定值1.2 嵌入式文档中的字段等于某个值1.3 数组元素等于某个值1.4 数组元素等于数组值 2. $ne 不等于3. $gt 大于3.1 匹配文档字段3.2 根据嵌入式文档字段执行更新 4. $gte 大于等于5. $lt 小于6. $lte 小于…...

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代&#xff1a; 相邻兄弟&#xff1a; 普通兄弟&#xff1a; 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …...

Python-数据爬取(爬虫)

~~~理性爬取~~~ 杜绝从入门到入狱 1.简要描述一下Python爬虫的工作原理&#xff0c;并介绍几个常用的Python爬虫库。 Python爬虫的工作原理 发送请求&#xff1a;爬虫向目标网站发送HTTP请求&#xff0c;通常使用GET请求来获取网页内容。解析响应&#xff1a;接收并解析HTTP响…...

虚幻引擎ue5如何调节物体锚点

当发现锚点不在物体上时&#xff0c;如何调节瞄点在物体上。 步骤1&#xff1a;按住鼠标中键拖动锚点&#xff0c;在透视图中多次调节锚点位置。 步骤2:在物体上点击鼠标右键点击-》锚定--》“设置为枢轴偏移”即可。...

Xcode持续集成之道:自动化构建与部署的精粹

标题&#xff1a;Xcode持续集成之道&#xff1a;自动化构建与部署的精粹 在快节奏的软件开发中&#xff0c;持续集成&#xff08;Continuous Integration, CI&#xff09;是提升开发效率和软件质量的关键实践。Xcode作为苹果生态中的核心开发工具&#xff0c;提供了与多种持续…...

Java高频面试基础知识点整理13

干货分享&#xff0c;感谢您的阅读&#xff01;背景​​​​​​高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09; 最全文章见&#xff1a;Java高频面试基础知识点整理 &#xff08;一&#xff09;Java基础高频知识考点 针对人员&#xff1a; 1.全部人员都…...

css画半圆画圆弧

利用border-radius和border完成&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> <style> .semicircle {width: 100px;height: 50px;border-radius: 0 0 50px 50px;background:…...

LeetCode HOT100(四)字串

和为 K 的子数组&#xff08;mid&#xff09; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 解法1&#xff1a;前缀和Map 这…...

uniapp引入 uview( HBuilder 和 npm 两种安装方式) #按需引入

方式一、HBuilder 安装 uview 1.1. HBuider安装-链接-》》 1.2. 在uni.scss 中引入 import "uni_modules/uview-ui/theme.scss";1.3. main.js 引入&#xff08;import Vue from ‘vue’ 下面&#xff09; import uView from "uni_modules/uview-ui"; V…...

使用uni-app和Golang开发影音类小程序

在数字化时代&#xff0c;影音内容已成为人们日常生活中不可或缺的一部分。个人开发者如何快速构建一个功能丰富、性能优越的影音类小程序&#xff1f;本文将介绍如何使用uni-app前端框架和Golang后端语言来实现这一目标。 项目概述 本项目旨在开发一个个人影音类小程序&#…...

基于Go1.19的站点模板爬虫详细介绍

构建一个基于Go1.19的站点模板爬虫是一项有趣且具有挑战性的任务。这个爬虫将能够从网站上提取数据&#xff0c;并按照指定的模板进行格式化。以下是详细的介绍和实现步骤。 1. 准备工作 工具和库&#xff1a; Go 1.19colly&#xff1a;一个强大的Go爬虫库goquery&#xff1…...

永恒之蓝:一场网络风暴的启示

引言 在网络安全的漫长历史中&#xff0c;“永恒之蓝”&#xff08;EternalBlue&#xff09;是一个不可忽视的里程碑事件。它不仅揭示了网络世界的脆弱性&#xff0c;还促使全球范围内对网络安全的重视达到了前所未有的高度。本文将深入探讨“永恒之蓝”漏洞的起源、影响及其对…...

AI绘画:艺术与科技的交融,创新浪潮与无限可能

在科技日新月异的当下&#xff0c;AI 绘画作为人工智能领域的一颗璀璨新星&#xff0c;正以惊人的速度在国内崭露头角&#xff0c;引发了艺术与技术交融的全新变革。随着人工智能技术的飞速发展&#xff0c;AI绘画已成为艺术与科技交融的新宠。2024年&#xff0c;AI绘画行业在国…...

医疗健康信息的安全挑战与隐私保护最佳实践

医疗健康信息的安全挑战 医疗健康信息的安全挑战主要包括数据规模庞大、管理困难、数据类型多样导致的安全风险高、以及法律法规与伦理约束带来的挑战。随着医疗信息化的发展&#xff0c;医疗健康数据呈现出爆炸式的增长&#xff0c;医院信息系统、电子病历、健康管理等产生了海…...

《C++并发编程实战》笔记(一、二)

一、简介 抽象损失&#xff1a;对于实现某个功能时&#xff0c;可以使用高级工具&#xff0c;也可以直接使用底层工具。这两种方式运行的开销差异称为抽象损失。 二、线程管控 2.1 线程的基本控制 1. 创建线程 线程相关的管理函数和类在头文件&#xff1a; #include <…...

【日常bug记录】el-checkbox 绑定对象数组

版本说明 "vue": "2.6.10", "element-ui": "2.13.2", 这个写法很怪异哦&#xff0c;但确实管用。el-checkbox 绑定的 label 是双向绑定的值&#xff0c;也就是选中之后传到表单数据里面的值&#xff0c;一般设置为 id&#xff0c;然后…...

单元测试Mockito笔记

文章目录 单元测试Mockito1. 入门1.1 什么是Mockito1.2 优势1.3 原理 2. 使用2.0 环境准备2.1 Mock1) Mock对象创建2) 配置Mock对象的行为(打桩)3) 验证方法调用4) 参数匹配5) 静态方法 2.2 常用注解1) Mock2) BeforeEach 与 BeforeAfter3) InjectMocks4) Spy5) Captor6) RunWi…...

基于SpringBoot+VueJS+微信小程序技术的图书森林共享小程序设计与实现:7000字论文+源代码参考

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…...

GitHub连接超时问题 Recv failure: Connection was reset

用手机热点WIF拉取git项目的时候&#xff0c;遇到Recv failure: Connection was reset问题。 解决办法 一、手动开启本地代理 二、在终端&#xff08;cmd&#xff09;输入命令 git config --global http.proxy http://127.0.0.1:7890 git config --global https.proxy https:…...

浅谈PostCSS

1. 背景 css的预处理器语言&#xff08;比如 sass&#xff0c; less&#xff0c; stylus&#xff09;的扩展性不好&#xff0c;你可以使用它们已有的功能&#xff0c;但如果想做扩展就没那么容易。 sass是很常用的css预处理器语言&#xff0c;在webpack中要使用它&#xff0c;…...

GCN、GIN

# 使用TuDataset 中的PROTEINS数据集。 # 里边有1113个蛋白质图&#xff0c;区分是否为酶&#xff0c;即二分类问题。# 导包 from torch_geometric.datasets import TUDataset from torch_geometric.data import DataLoader import torch import torch.nn as nn import torch.…...

Web控件进阶交互

Web控件进阶交互 测试时常需要模拟键盘或鼠标操作&#xff0c;可以用Python的ActionChains来模拟。ActionChains是Selenium提供的一个子类&#xff0c;用于生成和执行复杂的用户交互操作&#xff0c;允许将一系列操作链接在一起&#xff0c;然后一次性执行。 from selenium im…...

做平台的网站有哪些/哈尔滨网络公司

/********************************************************************* debian webmin 安装* 说明&#xff1a;* 在服务器上安装一个web版的小型的权限管理工具。** 2016-8-12 深圳 南山平山村 曾剑锋***********…...

网站建设 金手指 排名22/有域名了怎么建立网站

电脑开机显示hardware monitor 开机故障&#xff0c;主要显示一些电脑主板温度、CPU温度、CPU电压、内存电压……等&#xff0c;出现这种开机提示hardware monitor 开机故障解主要有以下几种原因&#xff0c;就带着大家来处理这些电脑开机故障。hardware monitor 开机故障解决方…...

保定小程序开发公司/安全优化大师

这篇文章会解释下不同类型的碎片。理解索引碎片的概念对有效检测和移除碎片非常重要。 什么是碎片 碎片可以定义为&#xff1a;任何情况下&#xff0c;在访问一个表时&#xff0c;造成比适量更多的磁盘IO操作或更长的磁盘IO操作。SELECT查询的最佳操作发生在&#xff0c;表的数…...

做网站的程序源码/建设一个网站的具体步骤

在页面上执行较长时间的操作时&#xff0c;如果能够给用户提供一个类似于浏览器状态栏那样的进度条&#xff0c;将会使界面用户界面更加友好。在Atlas中&#xff0c;为我们提供的UpdateProgress控件可以轻松的实现这些。主要内容1&#xff0e;UpdateProgress控件介绍2&#xff…...

wordpress多用户信息发布/在线生成个人网站免费

2019独角兽企业重金招聘Python工程师标准>>> 什么是Service&#xff1f; 解惑&#xff1a; 1、 Service不是分离开的进程&#xff0c;除非其他特殊情况&#xff0c;它不会运行在自己的进程&#xff0c;而是作为启动 运行它的进程的一部分。 2、 Service不是线…...

app定制价格是多少/优化服务是什么意思

WordPress插件NextGEN Gallery < 3.2.2版本将上传的zip压缩包解压到/wp-content/uploads目录下的临时目录&#xff0c;该临时目录具有显著特点&#xff1a;以unpacked开头。 当zip压缩文件包含大量图片时将导致处理进程崩溃&#xff0c;而临时目录没有删除。如果在zip压缩包…...