Migracija

Osnovni URL in ključ premakneta odjemalca OpenAI. Ta stran tudi navaja, česa API ne počne, ker migracija, ki to odkrije v produkciji, ni migracija.

Oblika neposredne zamenjave

Usmerite osnovni URL odjemalca na https://api.llmeu.com/v1 in mu dodelite API ključ iz konzole. Oblika zahtevka se ne spremeni.

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)

Kaj sprejme končna točka za klepet

Preverjevalnik zahtev v apps/api/src/app.mjs preveri naslednje; česar ne preveri, se posreduje ali prezre, namesto da bi bilo zavrnjeno, tako da novejši odjemalec še naprej deluje.

  • model in messages sta obvezna; messages mora biti neprazna matrika.
  • Vsako sporočilo potrebuje vlogo (system, user, assistant, tool ali developer) in vsebino kot niz ali matriko delov.
  • stream mora biti logična vrednost, kadar je prisoten.
  • temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed in n morajo biti števila, kadar so prisotni.
  • max_tokens mora biti vsaj 1.
  • n mora biti natanko 1; karkoli drugega je zavrnjeno.
  • stop je lahko niz ali matrika nizov.
  • tools mora biti matrika, kadar je prisoten.
  • llmeu mora biti objekt; nikoli ni obvezen.
  • tool_choice in response_format se posredujeta v zaledje skupaj z zgornjimi polji; neznano dodatno polje ni zavrnjeno.

Dodatki zahteve pod llmeu

Objekt llmeu z imenskim prostorom v telesu zahteve; odjemalec, ki prezre neznana polja, ga lahko varno pošlje.

Polje Vrednost Učinek
residencyeu-hosted | eu-owned | de | anyZoži usmerjanje na končne točke v tej rezidenčnosti; prazen nabor ustreznih vrne 409 no_endpoint_for_policy, namesto da bi razširil filter.
taskime nalogeNaloga, ki ji usmerjevalnik prilagodi model.
retentionzeroImplementirana je samo nič. Zahteva za več, kot dovoljuje pravilnik, vrne 403 retention_exceeds_policy; dovoljena dejanska vrednost, ki ni nič, vrne 501 retention_not_implemented.
data_classpublic | internal | confidential | restrictedPreverjeno glede na dovoljene razrede podatkov pravilnika: razred zunaj njih vrne 403 data_class_not_allowed, neznan razred pa vrne 400 invalid_data_class.
policy_iduuidImenuje pravilnik iste organizacije; neznan ID vrne 404 policy_not_found.
max_usd_per_1mšteviloZgornja meja cene na milijon žetonov za to zahtevo.
allow_partnerstrue | falseAli se za to zahtevo smejo uporabiti partnerske končne točke.

Neznani ključi znotraj llmeu se prezrejo; znan ključ z neveljavno vrednostjo se zavrne, ker se mora napačen data_class varno zavrniti, ne pa tiho pomeniti, da ni razreda podatkov.

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

Česa ni

Ti odgovori so namerni, in odjemalec, ki jih pričakuje, vidi kodo napake, ne pa tihe zamenjave.

Zahteva Rezultat
POST /v1/completions501 not_implemented — stara končna točka completions ni na voljo; uporabite /v1/chat/completions.
n > 1400 unsupported_n — podprt je samo n = 1.
POST /v1/embeddingsVdelave potrebujejo model za vdelave, privzeti zahtevani ID pa je bge-m3. Trenutno jih streže deterministično lokalno zaledje, katerega odgovor nosi llmeu.mock: true in opombo, da so vrnjeni deterministični nadomestni vektorji in da se v tej namestitvi ne strežejo nobene uteži za vdelave.
/v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images404 unknown_route — se sploh ne usmerja; pot /v1, ki je usmerjevalnik ne pozna, odgovori 404 unknown_route, vsaka druga pot pa odgovori 404 not_found.

Izvoz vaših podatkov

Izvoz računa me.json vsebuje izbrana polja računa, organizacije, metapodatke API ključev brez skrivnosti, trenutne pravilnike, najnovejše 200 sledi na organizacijo in dnevne agregate uporabe za 365 dni. Ni popoln izvod vseh osebnih podatkov in ni zgodovinski zapis pravilnikov.

Revizijski izvoz NDJSON privzeto zajema 7 dni, dovoljuje največ 90 dni in omeji sledi na 5000; njegov manifest vsebuje counts.truncated, kar označuje izvoz, ki je dosegel omejitev.

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

Izbris samega računa se izvede na strani profila in je predmet pravila lastništva na strani konzole.

Piškotek seje ni API poverilnica

Seja brskalnika avtentificira konzolo, ne API. Odjemalec OpenAI, ki pošlje eno, je zavrnjen s 403 api_key_required in mora namesto tega uporabiti API ključ.

Zavrnitev tukaj navede kodo, tako da se migracija lahko razveji glede na njo, in blok llmeu pri vsakem odgovoru pove, kaj se je dejansko zgodilo.