Migracija

Osnovni URL i ključ prebacuju OpenAI klijent. Ova stranica također navodi što API ne radi, jer migracija koja to otkrije u produkciji nije migracija.

Oblik izravne zamjene

Usmjerite osnovni URL klijenta na https://api.llmeu.com/v1 i dajte mu API ključ iz konzole. Oblik zahtjeva se ne mijenja.

from openai import OpenAI

client = OpenAI(base_url="https://api.llmeu.com/v1", api_key="llmeu_live_xxxxxxxx.your-secret")

resp = client.chat.completions.create(
    model="llmeu-auto",
    messages=[{"role": "user", "content": "Say hello from EU hosting."}],
)
print(resp.choices[0].message.content)

Što prihvaća krajnja točka za chat

Validacija zahtjeva u apps/api/src/app.mjs provjerava sljedeće; ono što ne provjerava propušta se ili zanemaruje umjesto odbijanja, pa noviji klijent nastavlja raditi.

  • model i messages su obavezni; messages mora biti neprazno polje.
  • Svaka poruka treba imati ulogu (system, user, assistant, tool ili developer) i sadržaj kao string ili polje dijelova.
  • stream mora biti boolean kada je prisutan.
  • temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed i n moraju biti brojevi kada su prisutni.
  • max_tokens mora biti najmanje 1.
  • n mora biti točno 1; sve ostalo se odbija.
  • stop može biti string ili polje stringova.
  • tools mora biti polje kada je prisutno.
  • llmeu mora biti objekt; nikada nije obavezan.
  • tool_choice i response_format prosljeđuju se pozadinskom sustavu zajedno s gornjim poljima; nepoznato dodatno polje se ne odbija.

Dodaci zahtjeva unutar llmeu

Objekt llmeu s imenskim prostorom u tijelu zahtjeva; klijent koji zanemaruje nepoznata polja može ga sigurno poslati.

Polje Vrijednost Učinak
residencyeu-hosted | eu-owned | de | anySužava usmjeravanje na krajnje točke u toj rezidentnosti; prazan skup prihvatljivih vraća 409 no_endpoint_for_policy umjesto da proširi filtar.
tasknaziv zadatkaZadatak prema kojem usmjerivač prilagođava model.
retentionzeroImplementirana je samo nula. Zahtjev za više nego što politika dopušta vraća 403 retention_exceeds_policy; dopuštena efektivna vrijednost različita od nule vraća 501 retention_not_implemented.
data_classpublic | internal | confidential | restrictedProvjerava se prema dopuštenim klasama podataka politike: klasa izvan njih vraća 403 data_class_not_allowed, a nepoznata klasa vraća 400 invalid_data_class.
policy_iduuidOdređuje politiku iste organizacije; nepoznat id vraća 404 policy_not_found.
max_usd_per_1mbrojGornja granica cijene po milijunu tokena za ovaj zahtjev.
allow_partnerstrue | falseSmiju li se partnerske krajnje točke koristiti za ovaj zahtjev.

Nepoznati ključevi unutar llmeu se zanemaruju; poznati ključ s nevažećom vrijednošću se odbija, jer loš data_class mora odbiti zahtjev umjesto da tiho znači da nema klase podataka.

curl https://api.llmeu.com/v1/chat/completions \
  -H "Authorization: Bearer $LLMEU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llmeu-auto",
    "messages": [{"role": "user", "content": "Summarise this contract."}],
    "llmeu": {"residency": "eu-owned", "data_class": "confidential", "retention": "zero"}
  }'

Što ne postoji

Ovi su odgovori namjerni, i klijent koji ih očekuje vidi kôd pogreške, a ne tihu zamjenu.

Zahtjev Rezultat
POST /v1/completions501 not_implemented — zastarjeli completions endpoint se ne nudi; upotrijebite /v1/chat/completions.
n > 1400 unsupported_n — podržan je samo n = 1.
POST /v1/embeddingsEmbeddings zahtijevaju model za ugrađivanje, a zadani traženi id je bge-m3. Nijedan se ne poslužuje na ovom postavljanju, pa se ruta ovdje ne nudi umjesto da vraća zamjenske vektore.
/v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images404 unknown_route — uopće se ne usmjerava; /v1 putanja koju router ne poznaje odgovara 404 unknown_route, a svaka druga putanja odgovara 404 not_found.

Izvoz vaših podataka

Izvoz računa me.json sadrži odabrana polja računa, organizacije, metapodatke API ključa bez tajni, trenutačne politike, najnovijih 200 tragova po organizaciji i dnevne zbirne podatke o upotrebi za 365 dana. To nije potpuna kopija svih osobnih podataka i nije povijesni zapis politika.

NDJSON izvoz revizije prema zadanim postavkama obuhvaća 7 dana, dopušta najviše 90 dana i ograničava tragove na 5000; njegov manifest sadrži counts.truncated, što označava izvoz koji je dosegnuo ograničenje.

GET /app/exports/me.json
GET /app/exports/audit.ndjson?days=7
GET /app/exports/traces.json
GET /app/exports/usage.json
GET /app/exports/policies.json

Brisanje samog računa obavlja se na stranici profila i podliježe pravilu o vlasništvu na stranici konzole.

Sesijski kolačić nije API vjerodajnica

Sesija preglednika autentificira konzolu, a ne API. OpenAI klijent koji je pošalje odbija se s 403 api_key_required i umjesto toga mora koristiti API ključ.

Odbijanje ovdje navodi kod, pa se migracija može granati na temelju njega, a llmeu blok u svakom odgovoru govori što se stvarno dogodilo.