Compartir a través de


Inicio rápido: Detección de materiales protegidos para código (versión preliminar)

La característica Material protegido para código proporciona una solución completa para identificar las salidas de IA que coinciden con el código de los repositorios de GitHub existentes. Esta característica permite que los modelos de generación de código se usen con confianza, de forma que mejore la transparencia a los usuarios finales y promueva el cumplimiento de las directivas organizativas.

Precaución

El analizador o indexador de código del servicio de seguridad de contenido solo está actualizado hasta el 6 de noviembre de 2021. No se detectará el código que se agregó a GitHub después de esta fecha. Use su propia discreción al usar Material protegido para código para detectar cuerpos recientes de código.

Los objetivos clave de la característica Detección de materiales protegidos para código generado por IA son:

  • Para detectar y evitar la visualización del código protegido generado por los modelos de IA.
  • Para habilitar a las organizaciones a administrar los riesgos asociados con el código generado por IA.
  • Para asegurarse de que el código generado por IA cumple los estándares legales, éticos y de directivas de la organización.

Para obtener más información sobre la detección de materiales protegidos, consulte la Página de concepto de detección de materiales protegidos. Para conocer los límites de entrada de API, consulte la sección Requisitos de entrada de la Información general.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita.
  • Una vez que tenga la suscripción de Azure, cree un recurso de Content Safety en Azure Portal para obtener la clave y el punto de conexión. Escriba un nombre único para el recurso, seleccione la suscripción y, después, un grupo de recursos, una región admitida (consulte Región de disponibilidad) y el plan de tarifa admitido. Seleccione Crear.
    • El recurso tarda unos minutos en implementarse. Cuando termine, seleccione Ir al recurso. En el panel de la izquierda, en Administración de recursos, seleccione Clave y punto de conexión de la suscripción. El punto de conexión y cualquiera de las claves se usan para llamar a las API.
  • cURL instalado

Análisis de código para la detección de materiales protegidos

En la sección siguiente se muestra una solicitud de ejemplo con cURL. Pegue el comando siguiente en un editor de texto y realice los cambios siguientes.

  1. Reemplace <endpoint> por la dirección URL del punto de conexión asociada con el recurso.
  2. Reemplace <your_subscription_key> por una de las claves que vienen con el recurso.
  3. Opcionalmente, reemplace el campo "code" del cuerpo por su propio código que le gustaría analizar.

    Sugerencia

    Consulte Requisitos de entrada para ver las limitaciones máximas de longitud del código. La detección de materiales protegidos está pensada para ejecutarse en finalizaciones de LLM, no en solicitudes de usuario.

curl --location --request POST '<endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview' \
--header 'Ocp-Apim-Subscription-Key: <your_subscription_key>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "code": "python import pygame pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(My Game) x = 50 y = 50 width = 40 height = 60 vel = 5 run = True while run: pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and x > vel: x -= vel if keys[pygame.K_RIGHT] and x < 500 - width - vel: x += vel if keys[pygame.K_UP] and y > vel: y -= vel if keys[pygame.K_DOWN] and y < 500 - height - vel: y += vel win.fill((0, 0, 0)) pygame.draw.rect(win, (255, 0, 0), (x, y, width, height)) pygame.display.update() pygame.quit()"
}'

Los campos siguientes deben incluirse en la dirección URL:

Nombre ¿Necesario? Descripción Tipo
Versión de la API Obligatorio Esta es la versión de la API que se va a comprobar. La versión actual es: api-version=2024-09-15-preview. Ejemplo: <endpoint>/contentsafety/text:detectProtectedMaterialForCode?api-version=2024-09-15-preview String

Los parámetros del cuerpo de la solicitud se definen en esta tabla:

Nombre ¿Necesario? Descripción Tipo
code Obligatorio Este es el código sin procesar que se va a comprobar. Se pueden incluir caracteres que no sean ASCII. Cadena

Consulte el siguiente valor de ejemplo para el campo "code":

{
    "code": "python import pygame pygame.init() win = pygame.display.set_mode((500, 500)) pygame.display.set_caption(My Game) x = 50 y = 50 width = 40 height = 60 vel = 5 run = True while run: pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and x > vel: x -= vel if keys[pygame.K_RIGHT] and x < 500 - width - vel: x += vel if keys[pygame.K_UP] and y > vel: y -= vel if keys[pygame.K_DOWN] and y < 500 - height - vel: y += vel win.fill((0, 0, 0)) pygame.draw.rect(win, (255, 0, 0), (x, y, width, height)) pygame.display.update() pygame.quit()"
}

Abra una ventana del símbolo del sistema y ejecute el comando de cURL.

Interpretación de la respuesta de la API

Debería ver los resultados de detección de materiales protegidos como datos JSON en la salida de la consola. Por ejemplo:

{
    "protectedMaterialAnalysis": {
        "detected": true,
        "codeCitations": [
            {
                "license": "NOASSERTION",
                "sourceUrls": [
                    "https://github.com/kolejny-projekt-z-kck/game-/tree/f134099ce970da951bac9baac83c7885e991c676/ganeee.py",
                    "https://github.com/Felipe-Velasco/Modulo-Pygame/tree/11490c44a951812dc0c6424b68b1e14fc5cc4c0b/pygame%20basics.py",
                    "https://github.com/bwootton/firstgame/tree/70d722a6b1ccb79bfa56d9cc69932051848c44bf/jump.py",
                    "https://github.com/Jason017/Pygame-Learning-Module/tree/17cd69f169d3759e00816ed4a3795dd6db7e157f/pygameModule02.py",
                    "https://github.com/Coders-Brothers/pygame-tutorial/tree/1b481f5687cdda7c0765089780ef451af6e175cd/lesson-2.py"
                ]
            }
        ]
    }
}

Los campos JSON de la salida se definen aquí:

Nombre Description Tipo
protectedMaterialAnalysis Resultados del análisis que contienen detalles sobre el código protegido detectado. Object
detectado Indica si se ha detectado material protegido procedente de repositorios GitHub. Booleano
codeCitations Lista de citas en las que se encontró el código protegido. Matriz
codeCitations.license Tipo de licencia asociado al código detectado. Cadena
codeCitations.sourceUrls Lista de direcciones URL de repositorios de GitHub donde se detectó el código protegido. Matriz de cadenas

Limpieza de recursos

Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.