Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica se encuentra en versión preliminar.
En este documento se muestran ejemplos de cómo usar Azure OpenAI en Fabric mediante la API REST.
Inicialización
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"
}
El chat
GPT-4.1 y GPT-4.1-mini son modelos de lenguaje optimizados para interfaces conversacionales. Utiliza GPT-5 para habilidades de razonamiento.
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)
Salida
==========================================================================================
| 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](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/security#encryption)
- [Azure OpenAI Security - Microsoft Learn](https://learn.microsoft.com/en-us/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.
==========================================================================================
Inserciones
Una inserción es un formato especial de representación de datos que los modelos y algoritmos de Machine Learning pueden usar fácilmente. Contiene significado semántico con gran cantidad de información de un texto, representado por un vector de números de punto flotante. La distancia entre dos inserciones en el espacio vectorial está relacionada con la similitud semántica entre dos entradas originales. Por ejemplo, si hay dos textos similares, sus representaciones vectoriales también deberían ser similares.
Para acceder al punto de conexión de inserciones de Azure OpenAI en Fabric, puede enviar una solicitud de API con el formato siguiente:
POST <url_prefix>/openai/deployments/<deployment_name>/embeddings?api-version=2024-02-01
deployment_name podría ser 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)
Salida:
==========================================================================================
| 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, ... ]
==========================================================================================
Contenido relacionado
- Uso de Text Analytics precompilado en Fabric con la API REST
- Uso de Text Analytics precompilado en Fabric con SynapseML
- Uso de Traductor de Azure AI precompilado en Fabric con la API REST
- Uso de Traductor de Azure AI precompilado en Fabric con SynapseML
- Uso de Azure OpenAI precompilado en Fabric con el SDK de Python
- Uso de Azure OpenAI precompilado en Fabric con SynapseML