# v2'den v3'ye Geçiş Kılavuzu

Bu belge, mevcut kodu Tripo API v2'den v3'ye taşımanıza yardımcı olur.

## Skill ile V2'den V3'e geçin

Önce API'ler arasındaki tüm farkları anlamanız gerekmez. Bu Skill'i indirin, dosyayı taşımak istediğiniz proje dizinine yerleştirin ve yapay zekâ kodlama aracınızdan dosyayı kullanmasını isteyin. Skill, projenizdeki V2 çağrılarını bulmanıza ve bunları adım adım V3'e taşımanıza yardımcı olur.

### 1. Adım: Skill'i indirin

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

`SKILL.md` adlı bir dosya alacaksınız. Dosya adını değiştirmeyin.

### 2. Adım: Proje dizinine yerleştirin ve Skill'i kullanın

İndirdiğiniz `SKILL.md` dosyasını taşımak istediğiniz projenin dizinine yerleştirin. Ardından projeyi açın ve yapay zekâdan doğrudan bu Skill'i kullanmasını isteyin.

### 3. Adım: Bu istemi kopyalayarak geçişi başlatın

Taşımak istediğiniz projeyi açın. Aşağıdaki istemin tamamını kopyalayıp yapay zekâ kodlama aracınıza gönderin:

```text
Bu projenin Tripo API entegrasyonunu V2'den V3'e taşımak için proje dizinindeki `SKILL.md` dosyasını kullanın. Önce nelerin değişmesi gerektiğini gösterin. Onayımı bekleyin, ardından değişiklikleri yapın. Son olarak, hiçbir şeyin atlanmadığından emin olmak için dosyadaki kontrol listesini kullanın.
```

Araç önce V2 çağrılarını bulup size bir plan gösterir; böylece her dosyayı kendiniz aramanız gerekmez.

## Büyük Değişiklikler

### 1. Temel URL Değişikliği

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

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

### 2. Evrensel Uç Noktanın Özel Uç Noktalara Bölünmesi

v2, görev türlerini ayırt etmek için tek bir `POST /v2/openapi/task` uç noktası ve bir `type` alanı kullanır. v3, her yetenek için özel bir uç nokta sağlar, böylece `type` alanına artık gerek kalmaz.

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

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

### 3. `input` Alanı Olarak Birleştirilmiş Dosya Girişleri

v2'de giriş kaynağına bağlı olarak `file`, `file_token`, `url` ve `object` gibi farklı alan adları kullanılır. v3'de bunlar `input` alanı altında birleştirilir ve sistem giriş türünü otomatik olarak çıkarır.

```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. Standartlaştırılmış Alan Adları

| v2 Alanı | v3 Alanı |
| :-: | :-: |
| `create_time` | `created_at` |
| `consumed_credit` | `credits_consumed` |

### 5. Metinden Görüntüye ve Görüntüden Görüntüye Bölme

v2'de metinden görüntüye ve görüntüden görüntüye aynı API'yi paylaşır. v3'de bunlar özel uç noktalara bölünmüştür:

- `POST /v3/generation/text-to-image` - Salt metin girişinden resim oluştur
- `POST /v3/generation/image-to-image` - Referans görsele dayalı olarak görsel oluşturun veya düzenleyin

## Uç Nokta Eşlemesi

### Nesil

| v2 tipi Değer | v3 Uç Nokta |
| :-: | :-: |
| `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` |

### Modeli İşleme

| v2 tipi Değer | v3 Uç Nokta |
| :-: | :-: |
| `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` |

### Animasyon

| v2 tipi Değer | v3 Uç Nokta |
| :-: | :-: |
| `animate_prerigcheck` | `POST /v3/animations/rig-check` |
| `animate_rig` | `POST /v3/animations/rig` |
| `animate_retarget` | `POST /v3/animations/retarget` |

### Mesh Düzenleme

| v2 tipi Değer | v3 Uç Nokta |
| :-: | :-: |
| `mesh_segmentation` | `POST /v3/mesh/segment` |
| `mesh_completion` | `POST /v3/mesh/complete` |
| `highpoly_to_lowpoly` | `POST /v3/mesh/decimate` |

### Görevler ve Dosyalar

| v2 Uç Nokta | v3 Uç Nokta |
| :-: | :-: |
| `GET /v2/openapi/task/{task_id}` | `GET /v3/tasks/{task_id}` |
| `POST /v2/openapi/upload` | `POST /v3/files` |

## Geçiş Adımları

### 1. Adım: URL Tabanını Güncelleyin

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

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

### Adım 2: Eşleme Tablosunu Kullanarak Uç Noktaları Değiştirin

```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"
})
```

### 3. Adım: `type` Alanını Kaldırma

v3'de uç nokta yolu zaten görev türünü belirtir, dolayısıyla istek gövdesinin artık `type` alanına ihtiyacı yoktur.

### Adım 4: Giriş Alanlarını `input` ile değiştirin

```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"}
```

### 5. Adım: Yanıt Alanı Adlarını Güncelleyin

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

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

### Adım 6: Test Edin ve Doğrulayın

1. Her uç noktayı teker teker değiştirin ve test edin
2. Görev oluşturma ve yoklamanın düzgün şekilde çalıştığını doğrulayın
3. İndirme bağlantılarının mevcut olduğunu doğrulayın
4. Kredi kesintisi ve bakiye sorgularının düzgün çalışıp çalışmadığını kontrol edin

## Notlar

- v2 ve v3 paralel olarak çalışabilir. Tek seferde geçiş yapmak yerine aşamalı olarak geçiş yapmanızı öneririz
- API Keys, v2 ve v3 arasında paylaşılır. Yeni anahtarlar oluşturmanıza gerek yok
- Görev ID biçimi değişmeden kalır. v2'de oluşturulan görevler v3'de sorgulanabilir
