<!-- Canonical URL: https://ask.atlascloud.ai/sv/migrate-together-ai-batch-job-without-losing-request-ids -->

# Hur migrerar du ett Together AI-batchjobb utan att förlora begärande-ID:n?

> Bevara varje applikationsägt custom_id och lagra de båda leverantörernas fil-, batch- och svars-ID:n separat. Validera hela ID-mängden före inlämning, sammanför resultat och fel per ID och registrera försök utan att ändra affärsnyckeln.

Migrera ett Together AI-batchjobb genom att behandla varje `custom_id` från källan som oföränderlig applikationsdata. Kopiera värdet oförändrat till målets batchbegäran, lagra målleverantörens batch- och svars-ID:n i separata fält och stäm av resultat med `custom_id` i stället för filordning.

Den viktiga skillnaden går mellan identifieraren som applikationen äger och dem som leverantörerna utfärdar. Migreringen ska bevara den första och mappa de senare.

## Inventera varje identifierare

Together använder JSONL för batchindata. Varje rad har ett unikt `custom_id` och en body. Batchen, den uppladdade indatafilen, utdatafilen och varje svar kan ha separata leverantörs-ID:n.

| Identifierare | Ägare | Migreringsregel |
|---|---|---|
| `custom_id` | Din applikation | Bevara exakt |
| Källans batch-ID | Together | Lagra som källmetadata |
| Målets batch-ID | Målleverantören | Lagra separat |
| In- och utdatafilernas ID:n | Varje leverantör | Använd aldrig som affärsnycklar |
| Svars-ID | Modell-API | Behåll för support och fakturering |

Ersätt inte `custom_id` med ett radnummer om det inte redan är din beständiga nyckel. Utdataordningen kan ändras och misslyckade begäranden kan skrivas till en separat felfil.

## Skapa en migreringsliggare

Skapa en liggarrad per logisk begäran innan något skickas till mål-API:t:

```json
{
  "custom_id": "invoice-2026-00421",
  "source_batch_id": "batch_source",
  "target_batch_id": null,
  "payload_sha256": "...",
  "state": "prepared"
}
```

Gör `custom_id` unikt i migreringsmängden och lägg till en hash av den normaliserade bodyn. Hashen upptäcker oavsiktliga ändringar utan att ytterligare en kopia av känsliga promptdata lagras.

## Konvertera envelopen, inte identiteten

Leverantörer kan använda olika batch-envelope. Together placerar `custom_id` intill `body`; ett annat OpenAI-kompatibelt batch-API kan också kräva `method` och `url`.

```json
{"custom_id":"invoice-2026-00421","method":"POST","url":"/v1/chat/completions","body":{"model":"target-model","messages":[{"role":"user","content":"Classify this record"}]}}
```

Ändra endpoint, model ID och parametrar som inte stöds genom en konverterare. För vidare `custom_id` som en ogenomskinlig sträng. Trimma, normalisera, översätt eller återskapa den inte.

## Validera före inlämning

Kontrollera den genererade JSONL-filen:

* varje rad kan tolkas självständigt;
* varje `custom_id` finns och är unikt;
* ID-mängden matchar källmanifestet;
* varje body följer målets schema.

Registrera slutfilens hash och radantal. Ladda upp just den artefakten och koppla returnerade fil- och batch-ID:n till liggaren.

## Stäm av utdata och fel tillsammans

När målbatchen är klar, hämta både utdata- och felartefakten. Indexera varje rad med `custom_id` och jämför unionen med den inskickade mängden.

Klassificera varje ID som lyckat, misslyckat, saknat eller duplicerat. En slutförd batch är inte nödvändigtvis fullt avstämd. Stäng inte migreringen förrän varje ID har exakt ett terminalt utfall.

## Försök igen utan ny identitet

Skapa en ny batch med bara misslyckade eller saknade begäranden. Behåll `custom_id` så att efterföljande join fungerar och lägg till `attempt` i liggaren i stället för att ändra affärsnyckeln.

Om målet förbjuder återanvändning mellan batcher, behåll originalvärdet i ett särskilt applikationsfält och generera ett transport-ID med reversibel mappning. Kasta aldrig originalidentifieraren.

## Växla över säkert

Börja med en liten representativ batch. Jämför framgång, latens, tokenanvändning, modellresultat, felkategorier och kostnad. Behåll käll- och målresultat sida vid sida tills avstämningen är deterministisk.

Automatisera tre assertioner: inga okända ID:n, inga dubbla terminala resultat och inga saknade ID:n. De är viktigare än samma utdataordning.

## Slutsats

Bevara applikationens `custom_id`, översätt bara leverantörens envelope och använd en liggare för käll- och målartefakter. Stäm av framgångs- och felfiler per ID, registrera försök och växla över först när varje begäran har ett terminalt utfall.

## FAQ

### Vilket ID måste förbli stabilt vid en Together-batchmigrering?

Bevara det custom_id som applikationen tilldelat. Varje leverantörs batch-, fil- och svars-ID:n ska vara separat metadata, inte affärsnycklar.

### Kan resultat stämmas av med radnummer?

Nej. Utdataordningen kan ändras och misslyckade begäranden kan ligga i en annan fil. Stäm av unionen av resultat och fel med custom_id.

### Vad ska migreringsliggaren innehålla?

Lagra custom_id, hash för normaliserad nyttolast, källans och målets batch- och fil-ID:n, försöksnummer, tidsstämplar och exakt ett terminalt utfall per begäran.

### Behöver ett omförsök ett nytt custom_id?

Vanligen inte. Behåll affärsidentifieraren och öka attempt. Om transport-ID:t måste vara unikt, lagra en reversibel mappning till ursprungligt custom_id.

### Hur upptäcks saknade begäranden?

Jämför den inskickade ID-mängden med unionen av lyckade och misslyckade ID:n. Flagga saknade, okända och duplicerade ID:n innan avstämningen stängs.

### Kan den ursprungliga Together-indatafilen återanvändas?

Bara om målet accepterar samma envelope, endpoint, model ID och parametrar. Oftast behövs en konverterare som bevarar custom_id.
