

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Proyectos (OpenAI-compatible)
<a name="projects"></a>

La API de proyectos de Amazon Bedrock proporciona aislamiento a nivel de aplicación para sus cargas de trabajo generativas de IA mediante API. [ OpenAI-compatible ](bedrock-mantle.md) Los proyectos le permiten organizar y gestionar sus aplicaciones de IA mejorando el control de acceso, el seguimiento de los costes y la observabilidad en toda la organización.

**sugerencia**  
Para las aplicaciones nuevas, recomendamos el `bedrock-runtime` terminal. Si no necesitas la API de proyectos, usa los perfiles de [ inferencia ](inference-profiles-create.md) para aislar, etiquetar y hacer un seguimiento de los costos. `bedrock-runtime`

**nota**  
Los proyectos solo se pueden usar con modelos que usen las OpenAI-compatible API en el punto final[. ](bedrock-mantle.md) Si está utilizando el punto final de bedrock-runtime, utilice los perfiles de inferencia en lugar del etiquetado y la observabilidad.

## ¿Qué es un proyecto?
<a name="projects-what-is"></a>

Un proyecto es un límite lógico que se utiliza para aislar cargas de trabajo como aplicaciones, entornos o experimentos en Amazon Bedrock. Los proyectos proporcionan lo siguiente:
+ **Aislamiento del acceso**: controle quién puede acceder a los recursos específicos del proyecto mediante las políticas de [ IAM para Amazon Bedrock Projects ](security-iam-projects.md)
+ **Monitorización de costos**: realice un seguimiento de los gastos a nivel de proyecto mediante [ las etiquetas de AWS ](whitepapers/latest/tagging-best-practices/what-are-tags.html) y [ AWS Cost Explorer ](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html)

Los proyectos le permiten administrar múltiples cargas de trabajo generativas de IA en producción sin crear AWS cuentas u organizaciones independientes, lo que reduce la complejidad operativa y, al mismo tiempo, mantiene la seguridad y la gobernanza.

Cada AWS cuenta tiene un proyecto predeterminado al que están asociadas todas las solicitudes de inferencia. Puedes crear más proyectos en tu cuenta mediante la API de proyectos.

**nota**  
El soporte para proyectos varía según el punto final. En el `bedrock-mantle` punto final, puede crear y administrar sus propios proyectos con la API de proyectos. En el `bedrock-runtime` punto final, solo está disponible el proyecto predeterminado; todavía no puedes crear proyectos allí. Las solicitudes para `bedrock-runtime` resolver el proyecto predeterminado de tu cuenta, cuyo ARN es`arn:aws:bedrock:{{region}}:{{account-id}}:project/default`. El proyecto predeterminado no se puede etiquetar ni eliminar, su configuración de retención de datos siempre se hereda de la cuenta y nunca es el ancla de facturación: el uso `bedrock-runtime` se atribuye al objetivo de la inferencia, exactamente igual que en la actualidad. Para ver los permisos que hacen referencia al proyecto predeterminado, consulta. [Requisitos previos para ejecutar la inferencia de modelos](inference-prereq.md)

## ¿Cuándo usar los proyectos
<a name="projects-when-to-use"></a>

Debes usar la API de proyectos cuando necesites:
+ **Organice por estructura empresarial**: administre el uso de Bedrock en función de la taxonomía de su organización, como las unidades de negocio, los equipos, las aplicaciones o los centros de costos
+ **Realice un seguimiento preciso de los costos**: supervise y asigne los gastos de inteligencia artificial a equipos, proyectos o entornos específicos
+ **Haga cumplir las políticas de acceso**: aplique permisos de IAM granulares para controlar quién puede acceder a cargas de trabajo de IA específicas
+ **Amplíe las cargas de trabajo de producción**: ejecute varias aplicaciones de producción con límites operativos y supervisión claros

## Proyectos frente a perfiles de inferencia
<a name="projects-vs-inference-profiles"></a>

Tanto la API de proyectos como los perfiles de [ inferencia ](inference-profiles-create.md) ofrecen funciones de aislamiento, etiquetado y control de acceso en Amazon Bedrock, pero varían en función del punto final que utilice. Si utiliza OpenAI-compatible las API con el [ punto final de ](endpoints.md) Bedrock-mantle, utilice la API de proyectos. Si usas el [ punto final de ](endpoints.md) ejecución básico (recomendado para aplicaciones nuevas), usa los perfiles de inferencia. La API de finalización del chat está disponible en ambos terminales; la API de proyectos solo está disponible en. `bedrock-mantle`


| Característica | API de proyectos | Perfiles de inferencia | 
| --- | --- | --- | 
| API de compatibles | OpenAI-compatible API (respuestas, finalizaciones de chat) | API nativas de Bedrock (Invoke, Converse) y OpenAI-compatible API (finalización de chats) | 
| Punto de conexión | bedrock-mantle.{region}.api.aws | bedrock-runtime.{region}.amazonaws.com | 
| Caso de uso |  OpenAI-compatible Aplicaciones que utilizan puntos finales | Aplicaciones que utilizan las API nativas de Bedrock | 
| Control de acceso | El proyecto como recurso en las políticas de IAM | Políticas de IAM sobre el ARN del perfil de inferencia | 
| Seguimiento de costos | AWS etiquetas en los proyectos | AWS etiquetas en los perfiles de inferencia | 

## Proyectos vs. AWS cuentas
<a name="projects-vs-aws-accounts"></a>

[Las cuentas ](https://docs.aws.amazon.com/accounts/latest/reference/accounts-welcome.html) y [AWS organizaciones de AWS ](https://docs.aws.amazon.com/controltower/latest/userguide/organizations.html) representan los límites de facturación y propiedad a nivel de infraestructura. Los proyectos representan los límites de la carga de trabajo y las aplicaciones dentro de una sola cuenta.

El uso de proyectos en lugar de AWS cuentas independientes proporciona:
+ **Configuración más rápida**: cree proyectos en segundos mediante llamadas a la API.
+ **Complejidad reducida**: gestione múltiples cargas de trabajo sin que las cuentas se desborden
+ **Operaciones simplificadas**: administración centralizada en una sola cuenta
+ **Reducción de los gastos generales**: no es necesario utilizar funciones de IAM entre cuentas ni compartir recursos

## Cómo empezar con Projects
<a name="projects-getting-started"></a>

En esta página, se explica cómo crear el primer proyecto, asociarlo a las solicitudes de inferencia y administrar los recursos del proyecto.

### Requisitos previos
<a name="projects-prerequisites"></a>

Antes de empezar, asegúrese de que tiene lo siguiente:
+ Una AWS cuenta con acceso a Amazon Bedrock
+ Permisos de IAM para crear y gestionar proyectos de Bedrock
+ Python 3.7 o posterior instalado
+ El SDK de Python de OpenAI instalado: `pip install openai boto3`
+ Una clave de [ API ](api-keys.md) para la autenticación de Amazon Bedrock

### Paso 1: Configure su entorno
<a name="projects-setup-environment"></a>

Configure las variables de entorno con sus credenciales de Amazon Bedrock:

```
export OPENAI_API_KEY="<your-bedrock-key>"
export OPENAI_BASE_URL="https://bedrock-mantle.<your-region>.api.aws/v1"
```

`<your-region>`Sustitúyalas por las de tu AWS región (p. ej., us-east-1, us-west-2).

**nota**  
Amazon Bedrock ofrece [ dos tipos de claves](bedrock/latest/userguide/api-keys-how.html): a corto y largo plazo. Si bien puede usar claves de API a largo plazo para explorar Amazon Bedrock, recomendamos usar claves a corto plazo para las aplicaciones con mayores requisitos de seguridad. Si usa claves a largo plazo con Projects, tenga en cuenta que la política predeterminada asociada a las claves a largo plazo solo le permite obtener y enumerar los proyectos, pero no create/update /archivarlos. Si quieres tener tu clave a largo plazo para gestionar proyectos, tendrás que asignar políticas de IAM adicionales a tus claves para permitir estas operaciones.

### Paso 2: Descubre los modelos disponibles
<a name="projects-discover-models"></a>

Usa la `list()` API para recuperar una lista de modelos compatibles con la API de proyectos:

```
curl -X GET $OPENAI_BASE_URL/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

### Paso 3: Crea tu primer proyecto
<a name="projects-create-first"></a>

Cree un proyecto utilizando la API de creación de proyectos con etiquetas para el seguimiento de los costos y la observabilidad. Ten en cuenta que, por el momento, solo cURL es compatible con el SDK.

```
curl -X POST $OPENAI_BASE_URL/organization/projects \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Project ABC",
    "tags": {
      "Project": "CustomerChatbot",
      "Environment": "Production",
      "Owner": "TeamAlpha",
      "CostCenter": "21524"
    }
  }' -v
```

Respuesta:

```
{
  "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/proj_5d5ykleja6cwpirysbb7",
  "created_at": 1772135628,
  "id": "proj_5d5ykleja6cwpirysbb7",
  "name": "Project ABC",
  "object": "organization.project",
  "status": "active",
  "tags": {
    "Owner": "TeamAlpha",
    "Project": "CustomerChatbot",
    "Environment": "Production",
    "CostCenter": "21524"
  }
}
```

**Notas importantes: **
+ Amazon Bedrock ignora el parámetro geográfico de la especificación de la API de OpenAI.
+ La región viene determinada por la configuración de su punto final.
+ El campo ARN es específico de Amazon Bedrock y proporciona el ARN adjunto a la política de IAM.
+ Las etiquetas se pueden especificar durante la creación del proyecto y se muestran en todas las respuestas del proyecto.

### Paso 4: Asocia las solicitudes de inferencia a tu proyecto
<a name="projects-associate-inference"></a>

Para asociar tu proyecto a las solicitudes de inferencia, proporciona el ID del proyecto al crear el cliente:

------
#### [ cURL ]

```
curl -X POST $OPENAI_BASE_URL/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "OpenAI-Project: proj_5d5ykleja6cwpirysbb7" \
  -d '{
    "model": "openai.gpt-oss-120b",
    "input": "Explain the benefits of using projects in Amazon Bedrock"
  }'
```

------
#### [ Python ]

```
from openai import OpenAI
client = OpenAI(project="proj_5d5ykleja6cwpirysbb7")
```

------

Todas las solicitudes de inferencia realizadas con este cliente se asociarán al proyecto especificado, lo que garantiza un aislamiento, un seguimiento de los costos y un control de acceso adecuados.

### Paso 5: Verifique la configuración de su proyecto
<a name="projects-verify-setup"></a>

Enumere todos los proyectos para verificar que su proyecto se creó correctamente:

```
curl -X GET $OPENAI_BASE_URL/organization/projects \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

Respuesta:

```
{
  "data": [
    {
      "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/default",
      "created_at": 1764460800,
      "id": "default",
      "name": "default",
      "object": "organization.project",
      "status": "active",
      "tags": {}
    },
    {
      "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/proj_2z766pfxmkij5vwubv75",
      "created_at": 1771823259,
      "id": "proj_2z766pfxmkij5vwubv75",
      "name": "Project ABC",
      "object": "organization.project",
      "status": "active",
      "tags": {}
    }
  ],
  "first_id": "default",
  "has_more": false,
  "last_id": "proj_znaruqn723npmjqnxqfd",
  "object": "list"
}
```

### Siguientes pasos
<a name="projects-next-steps"></a>

Ahora que has creado tu primer proyecto, puedes:
+ **Configurar el control de acceso**: adjunte políticas de IAM para restringir el acceso al proyecto
+ **Configure el seguimiento de costos**: añada AWS etiquetas para la asignación de costos
+ **Habilite la supervisión**: configure CloudWatch las métricas y las alarmas
+ **Cree proyectos adicionales**: organice las cargas de trabajo por equipo, entorno o aplicación

## Trabajar con proyectos de
<a name="projects-working-with"></a>

Esta página proporciona información detallada sobre la administración de proyectos a lo largo de su ciclo de vida.

### Creación de proyectos
<a name="projects-creating"></a>

#### Creación de proyectos básicos
<a name="projects-basic-creation"></a>

Crea un proyecto con un nombre, una descripción y etiquetas:

```
curl -X POST $OPENAI_BASE_URL/organization/projects \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Development Environment",
    "tags": {
      "Project": "InternalTools",
      "Environment": "Development",
      "Owner": "TeamAlpha",
      "CostCenter": "30156"
    }
  }'
```

Puedes tener hasta 1000 proyectos por cuenta.

#### Convenciones de nomenclatura recomendadas
<a name="projects-naming-conventions"></a>

Usa nombres claros y descriptivos que reflejen tu estructura organizacional:
+ **Por aplicación**: CustomerChatbot-Prod, InternalSearch-Dev
+ **Por equipo**: TeamAlpha-Production, DataScience-Experiments
+ **Por entorno**: Production-WebApp, Staging-MobileApp
+ **Por centro de costos**: CostCenter-2152-Production

### Listado de proyectos
<a name="projects-listing"></a>

#### Listar todos los proyectos
<a name="projects-list-all"></a>

Recupera todos los proyectos de tu cuenta:

```
curl -X GET $OPENAI_BASE_URL/organization/projects \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

### Recuperando los detalles del proyecto
<a name="projects-retrieving-details"></a>

Obtenga información detallada sobre un proyecto específico:

```
curl -X GET $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \
  -H "Authorization: Bearer $OPENAI_API_KEY"
```

### Actualización de proyectos
<a name="projects-updating"></a>

Modifique las propiedades del proyecto, como el nombre:

```
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Chatbot v2"
  }'
```

### Administrar las etiquetas del proyecto
<a name="projects-managing-tags"></a>

Agregue nuevas etiquetas o actualice los valores de las etiquetas existentes:

```
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "add_tags": {
      "Application": "WebApp",
      "Version": "2.0",
      "Team": "Engineering"
    }
  }'
```

Elimine etiquetas específicas con sus claves:

```
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "remove_tag_keys": ["Version", "OldTagKey"]
  }'
```

**Notas importantes**  
**Sin reemplazo completo**: no hay ninguna operación para reemplazar todo el conjunto de etiquetas de una sola vez. Debe especificar de forma explícita qué etiquetas añadir y cuáles eliminar.
**Gestión de errores**: Implemente la gestión y la verificación adecuadas de los errores

### Proyectos de archivado
<a name="projects-archiving"></a>

Archiva los proyectos que ya no están en uso:

```
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_abc123/archive \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json"
```

**importante**  
Los proyectos archivados no se pueden usar para nuevas solicitudes de inferencia, pero los datos históricos y las métricas permanecen accesibles durante un máximo de 30 días.

### Uso de proyectos con diferentes API
<a name="projects-using-apis"></a>

------
#### [ Responses API ]

```
from openai import OpenAI

client = OpenAI(project="proj_abc123")

response = client.responses.create(
    model="openai.gpt-oss-120b",
    input="What are the key features of Amazon Bedrock?"
)
print(response)
```

------
#### [ Chat Completions API ]

```
from openai import OpenAI

client = OpenAI(project="proj_abc123")

response = client.chat.completions.create(
    model="openai.gpt-oss-120b",
    messages=[
        {"role": "user", "content": "Explain how projects improve security"}
    ]
)

print(response.choices[0].message.content)
```

------

### Prácticas recomendadas
<a name="projects-best-practices"></a>

#### Estructura de proyecto recomendada
<a name="projects-recommended-structure"></a>

**Un proyecto por aplicación**: cree proyectos independientes para cada aplicación o servicio distinto.

```
├── CustomerChatbot-Production
├── CustomerChatbot-Staging
├── CustomerChatbot-Development
├── InternalSearch-Production
└── InternalSearch-Development
```
+ **Entornos separados**: utilice diferentes proyectos para entornos de desarrollo, puesta en escena y producción.
+ **Aislamiento de experimentos**: cree proyectos específicos para experimentos y pruebas de concepto.

#### Gestión del ciclo de vida del proyecto
<a name="projects-lifecycle-management"></a>
+ **Cree proyectos con anticipación**: configure los proyectos antes de implementar las aplicaciones
+ **Utilice una nomenclatura coherente**: siga las convenciones de nomenclatura de la organización
+ **Propósito del proyecto del documento**: incluya descripciones claras
+ **Auditorías periódicas**: revise y archive periódicamente los proyectos no utilizados
+ **Supervise el uso**: realice un seguimiento de las métricas del proyecto para identificar las oportunidades de optimización