Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Эта функция доступна в предварительной версии.
В этом документе показаны примеры использования Azure OpenAI в Fabric с помощью REST API. Полный справочник по API и дополнительные примеры REST API см. в справочнике по API OpenAI.
Инициализация
from synapse.ml.fabric.service_discovery import get_fabric_env_config
from synapse.ml.fabric.token_utils import TokenUtils
fabric_env_config = get_fabric_env_config().fabric_env_config
auth_header_value = TokenUtils().get_openai_auth_header()
auth_headers = {
"Authorization": auth_header_value,
"Content-Type": "application/json"
}
Чат
Полный справочник по API см. в разделе API завершения чата.
import requests
def print_chat_result(messages, response_code, response):
print("=" * 90)
print("| OpenAI Input |")
for msg in messages:
if msg["role"] == "system":
print("[System]", msg["content"])
elif msg["role"] == "user":
print("Q:", msg["content"])
else:
print("A:", msg["content"])
print("-" * 90)
print("| Response Status |", response_code)
print("-" * 90)
print("| OpenAI Output |")
if response.status_code == 200:
print(response.json()["choices"][0]["message"]["content"])
else:
print(response.content)
print("=" * 90)
deployment_name = "gpt-4.1"
openai_url = (
f"{fabric_env_config.ml_workload_endpoint}cognitive/openai/openai/deployments/"
f"{deployment_name}/chat/completions?api-version=2024-02-15-preview"
)
payload = {
"messages": [
{"role": "system", "content": "You are an AI assistant that helps people find information."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"}
]
}
response = requests.post(openai_url, headers=auth_headers, json=payload)
print_chat_result(payload["messages"], response.status_code, response)
Выходные данные
==========================================================================================
| OpenAI Input |
[System] You are an AI assistant that helps people find information.
Q: Does Azure OpenAI support customer managed keys?
------------------------------------------------------------------------------------------
| Response Status | 200
------------------------------------------------------------------------------------------
| OpenAI Output |
Yes, **Azure OpenAI Service** supports **customer managed keys (CMK)** for encrypting your data at rest. This allows organizations to control and manage their own encryption keys using **Azure Key Vault**. By integrating with Azure Key Vault, you can bring your own keys (BYOK) to have full control over the encryption of data stored and processed by Azure OpenAI.
**Reference:**
- [Azure OpenAI encryption documentation - Microsoft Learn](/azure/ai-services/openai/concepts/security#encryption)
- [Azure OpenAI Security - Microsoft Learn](/azure/ai-services/openai/concepts/security)
**Key features:**
- Data at rest is encrypted by default with a service-managed key.
- You can specify your own customer managed key (CMK) in Azure Key Vault for additional control.
- Supported for both Standard and Enterprise Azure OpenAI deployments.
**Summary:**
You can use customer managed keys with Azure OpenAI for enhanced security and regulatory compliance.
==========================================================================================
Эмбеддинги
Внедрение — это специальный формат представления данных, который модели машинного обучения и алгоритмы могут легко использовать. Он содержит семантический смысл текста с богатыми сведениями, представленный вектором чисел с плавающей запятой. Расстояние между двумя внедрениями в векторное пространство связано с семантическим сходством между двумя исходными входными данными. Например, если два текста похожи, их векторные представления также должны быть похожими. Полный справочник по API см. в разделе API внедрения.
Чтобы получить доступ к конечной точке внедрения Azure OpenAI в Fabric, можно отправить запрос API с помощью следующего формата:
POST <url_prefix>/openai/deployments/<deployment_name>/embeddings?api-version=2024-02-01
deployment_name может быть text-embedding-ada-002.
from synapse.ml.fabric.service_discovery import get_fabric_env_config
from synapse.ml.fabric.token_utils import TokenUtils
import requests
fabric_env_config = get_fabric_env_config().fabric_env_config
auth_header_value = TokenUtils().get_openai_auth_header()
auth_headers = {
"Authorization": auth_header_value,
"Content-Type": "application/json"
}
def print_embedding_result(prompts, response_code, response):
print("=" * 90)
print("| OpenAI Input |\n\t" + "\n\t".join(prompts))
print("-" * 90)
print("| Response Status |", response_code)
print("-" * 90)
print("| OpenAI Output |")
if response_code == 200:
for data in response.json()['data']:
print("\t[" + ", ".join([f"{n:.8f}" for n in data["embedding"][:10]]) + ", ... ]")
else:
print(response.content)
print("=" * 90)
deployment_name = "text-embedding-ada-002"
openai_url = (
f"{fabric_env_config.ml_workload_endpoint}cognitive/openai/openai/deployments/"
f"{deployment_name}/embeddings?api-version=2024-02-15-preview"
)
payload = {
"input": [
"empty prompt, need to fill in the content before the request",
"Once upon a time"
]
}
response = requests.post(openai_url, headers=auth_headers, json=payload)
print_embedding_result(payload["input"], response.status_code, response)
Выходные данные:
==========================================================================================
| OpenAI Input |
empty prompt, need to fill in the content before the request
Once upon a time
------------------------------------------------------------------------------------------
| Response Status | 200
------------------------------------------------------------------------------------------
| OpenAI Output |
[-0.00263638, -0.00441368, -0.01702866, 0.00410065, -0.03052361, 0.01894856, -0.01293149, -0.01421838, -0.03505902, -0.01835033, ... ]
[0.02133885, -0.02018847, -0.00464259, -0.01151640, -0.01114348, 0.00194205, 0.00229917, -0.01371602, 0.00857094, -0.01467678, ... ]
==========================================================================================
Связанный контент
Документация по Fabric
- Использование Azure OpenAI с функциями ИИ для крупномасштабных преобразований набора данных в Fabric для Pandas или PySpark DataFrames
- Используйте Azure OpenAI с SynapseML для распределенной обработки с помощью Spark DataFrames без накладных расходов
- Используйте Azure OpenAI с Python SDK для питонического управления отдельными вызовами API, используя OpenAI Python SDK
Документация по API OpenAI
- Справочник по API OpenAI . Полный справочник по API с примерами REST API
- API завершения чата . Полный справочник по API для завершения чата
- API внедрения — полный справочник по API для внедрения