诸城哪有做公司网站的,明光市建设局网站,北京建网站品牌公司,芜湖企业网站制作官方文档 
Azure OpenAI 是微软提供的一项云服务#xff0c;旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI#xff0c;开发者和企业可以访问 OpenAI 的各种模型#xff0c;如 GPT-3、Codex 和 DALL-E 等#xff0c;并将其集成到自己…官方文档 
Azure OpenAI 是微软提供的一项云服务旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI开发者和企业可以访问 OpenAI 的各种模型如 GPT-3、Codex 和 DALL-E 等并将其集成到自己的应用程序和服务中。 
调用方式 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-version2023-07-01-preview
headers  {Content-Type: application/json,api-key: your-api-key
}
data  {prompt: Hello, world!,max_tokens: 5
}response  requests.post(url, headersheaders, jsondata)
print(response.json())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(endpointhttps://your-resource-name.openai.azure.com/, credentialcredential)# 调用模型生成文本
response  client.completions.create(deployment_iddeployment-id,promptHello, world!,max_tokens5
)print(response.choices[0].text)Key 与 SDK 的区别 API 密钥Key 使用方式通常直接通过 HTTP 请求的请求头或 URL 参数来传递。管理需要在 Azure 门户中生成和管理 API 密钥。灵活性可以在不依赖特定编程语言或 SDK 的情况下使用适合任何可以发出 HTTP 请求的环境。  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_keyos.getenv(AZURE_OPENAI_API_KEY),  api_version2024-02-01
)response  client.chat.completions.create(modelgpt-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 方法可以用于设置环境变量并且可以指定作用范围当前进程、当前用户、所有用户。使用此方法设置的环境变量可能需要重新启动终端或进程才能生效尤其是在 User 或 Machine 作用范围时。 # 设置当前用户范围的环境变量 [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, its 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。