# Guía de migración de v2 a v3

Este documento le ayuda a migrar el código existente de Tripo API v2 a v3.

## Migre de V2 a V3 con la Skill

No necesita comprender primero todas las diferencias entre las API. Descargue esta Skill, coloque el archivo en el directorio del proyecto que desea migrar y pida a su herramienta de programación con IA que lo utilice. La Skill le ayudará a localizar las llamadas a V2 en su proyecto y migrarlas a V3 paso a paso.

### Paso 1: Descargue la Skill

<a class="plugin-download-button" href="/assets/developer/tripo-v2-to-v3-migration/SKILL.md" download="SKILL.md">Descargar</a>

Obtendrá un archivo llamado `SKILL.md`. No cambie el nombre del archivo.

### Paso 2: Coloque la Skill en el directorio del proyecto y úsela

Coloque el archivo `SKILL.md` descargado en el directorio del proyecto que desea migrar. Después, abra ese proyecto e indique directamente a la IA que use esta Skill.

### Paso 3: Copie este mensaje para iniciar la migración

Abra el proyecto que desea migrar. Copie el mensaje completo que aparece a continuación y envíelo a su herramienta de programación con IA:

```text
Use el archivo `SKILL.md` del directorio del proyecto para migrar la integración de Tripo API de este proyecto de V2 a V3. Primero muéstreme qué debe cambiar. Espere mi confirmación y, después, haga los cambios. Por último, use la lista de comprobación incluida en el archivo para asegurarse de que no se haya pasado nada por alto.
```

La herramienta localizará primero las llamadas a V2 y le mostrará un plan, por lo que no tendrá que buscar en cada archivo.

## Cambios importantes

### 1. Cambio de base URL

```
# v2
https://api.tripo3d.ai/v2/openapi/

# v3
https://openapi.tripo3d.ai/v3/
```

### 2. Punto final universal dividido en puntos finales dedicados

v2 utiliza un único punto final `POST /v2/openapi/task` y un campo `type` para distinguir los tipos de tareas. v3 proporciona un punto final dedicado para cada capacidad, por lo que el campo `type` ya no es necesario.

```json
// v2
POST /v2/openapi/task
{ "type": "text_to_model", "prompt": "a cat" }

// v3
POST /v3/generation/text-to-model
{ "prompt": "a cat" }
```

### 3. Entradas de archivos unificadas como el campo `input`

En v2, se utilizan diferentes nombres de campo según la fuente de entrada, como `file`, `file_token`, `url` y `object`. En v3, están unificados en el campo `input` y el sistema infiere automáticamente el tipo de entrada.

```json
// v2 - different field names are required
{ "type": "refine_model", "draft_model_task_id": "task_abc123" }
{ "type": "convert_model", "original_model_task_id": "task_abc123" }

// v3 - use input consistently
{ "input": "task_abc123" }
{ "input": "https://example.com/model.glb" }
{ "input": "file_token_abc123" }
```

### 4. Nombres de campos estandarizados

| Campo v2 | Campo v3 |
| :-: | :-: |
| `create_time` | `created_at` |
| `consumed_credit` | `credits_consumed` |

### 5. División de texto a imagen e imagen a imagen

En v2, texto a imagen e imagen a imagen comparten el mismo API. En v3, se dividen en puntos finales dedicados:

- `POST /v3/generation/text-to-image`: genera una imagen a partir de entrada de solo texto
- `POST /v3/generation/image-to-image`: genera o edita una imagen basada en una imagen de referencia

## Mapeo de puntos finales

### Generación

| v2 tipo Valor | Punto final v3 |
| :-: | :-: |
| `text_to_model` | `POST /v3/generation/text-to-model` |
| `image_to_model` | `POST /v3/generation/image-to-model` |
| `multiview_to_model` | `POST /v3/generation/multiview-to-model` |
| `text_to_image` | `POST /v3/generation/text-to-image` |
| `generate_image` | `POST /v3/generation/image-to-image` |
| `generate_multiview_image` | `POST /v3/generation/image-to-multiview` |
| `edit_multiview_image` | `POST /v3/generation/edit-multiview` |

### Procesamiento de modelos

| v2 tipo Valor | Punto final v3 |
| :-: | :-: |
| `refine_model` | `POST /v3/models/refine` |
| `convert_model` | `POST /v3/models/convert` |
| `import_model` | `POST /v3/models/import` |
| `stylize_model` | `POST /v3/models/stylize` |
| `texture_model` | `POST /v3/models/texture` |

### Animación

| v2 tipo Valor | Punto final v3 |
| :-: | :-: |
| `animate_prerigcheck` | `POST /v3/animations/rig-check` |
| `animate_rig` | `POST /v3/animations/rig` |
| `animate_retarget` | `POST /v3/animations/retarget` |

### Edición de malla

| v2 tipo Valor | Punto final v3 |
| :-: | :-: |
| `mesh_segmentation` | `POST /v3/mesh/segment` |
| `mesh_completion` | `POST /v3/mesh/complete` |
| `highpoly_to_lowpoly` | `POST /v3/mesh/decimate` |

### Tareas y archivos

| Punto final v2 | Punto final v3 |
| :-: | :-: |
| `GET /v2/openapi/task/{task_id}` | `GET /v3/tasks/{task_id}` |
| `POST /v2/openapi/upload` | `POST /v3/files` |

## Pasos de migración

### Paso 1: actualice la base URL

```python
# v2
BASE_URL = "https://api.tripo3d.ai/v2/openapi"

# v3
BASE_URL = "https://openapi.tripo3d.ai/v3"
```

### Paso 2: Reemplazar puntos finales usando la tabla de mapeo

```python
# v2
response = requests.post(f"{BASE_URL}/task", json={
    "type": "text_to_model",
    "prompt": "a cat"
})

# v3
response = requests.post(f"{BASE_URL}/generation/text-to-model", json={
    "prompt": "a cat"
})
```

### Paso 3: eliminar el campo `type`

En v3, la ruta del punto final ya implica el tipo de tarea, por lo que el cuerpo de la solicitud ya no necesita el campo `type`.

### Paso 4: Reemplace los campos de entrada con `input`

```python
# v2 - different task types use different field names
payload = {"type": "refine_model", "draft_model_task_id": "task_abc123"}
payload = {"type": "convert_model", "original_model_task_id": "task_abc123"}

# v3 - use input consistently
payload = {"input": "task_abc123"}
```

### Paso 5: actualizar los nombres de los campos de respuesta

```python
# v2
created = task["create_time"]
cost = task["consumed_credit"]

# v3
created = task["created_at"]
cost = task["credits_consumed"]
```

### Paso 6: probar y validar

1. Reemplace y pruebe cada punto final uno a la vez
2. Verificar que la creación de tareas y el sondeo funcionan correctamente
3. Confirme que los enlaces de descarga estén disponibles
4. Comprueba que las deducciones de crédito y las consultas de saldo funcionan correctamente

## Notas

- v2 y v3 pueden ejecutarse en paralelo. Recomendamos migrar gradualmente en lugar de cambiar todo a la vez.
- API Keys se comparten entre v2 y v3. No es necesario crear nuevas claves.
- El formato de la tarea ID permanece sin cambios. Las tareas creadas en v2 se pueden consultar en v3
