Migracija

Bazinis URL ir raktas perkelia OpenAI klientą. Šis puslapis taip pat nurodo, ko API nedaro, nes migracija, kuri tai atranda produkcijoje, nėra migracija.

Įterpimo forma

Nukreipkite kliento bazinį URL į https://api.llmeu.com/v1 ir duokite jam API raktą iš konsolės. Užklausos forma nesikeičia.

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)

Ką priima pokalbių galinis taškas

Užklausų validavimo priemonė apps/api/src/app.mjs tikrina šiuos dalykus; ko ji netikrina, yra perduodama arba ignoruojama, o ne atmetama, todėl naujesnis klientas toliau veikia.

  • model ir messages yra privalomi; messages turi būti netuščias masyvas.
  • Kiekvienas pranešimas turi turėti vaidmenį (system, user, assistant, tool arba developer) ir turinį kaip eilutę arba dalių masyvą.
  • stream turi būti loginė reikšmė, kai pateiktas.
  • temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed ir n turi būti skaičiai, kai jie pateikti.
  • max_tokens turi būti bent 1.
  • n turi būti tiksliai 1; bet kas kita yra atmetama.
  • stop gali būti eilutė arba eilučių masyvas.
  • tools turi būti masyvas, kai pateiktas.
  • llmeu turi būti objektas; jis niekada nėra privalomas.
  • tool_choice ir response_format yra perduodami į serverinę dalį kartu su aukščiau nurodytais laukais; nežinomas papildomas laukas nėra atmetamas.

Užklausos priedai po llmeu

Vardų erdvės llmeu objektas užklausos turinyje; klientas, kuris nepaiso nežinomų laukų, gali jį saugiai siųsti.

Laukas Reikšmė Poveikis
residencyeu-hosted | eu-owned | de | anySusiaurina maršrutizavimą iki galinių taškų toje rezidencijoje; tuščias tinkamų taškų rinkinys grąžina 409 no_endpoint_for_policy, o ne išplečia filtrą.
taskužduoties pavadinimasUžduotis, kuriai maršrutizatorius pritaiko modelį.
retentionzeroĮgyvendintas tik nulis. Prašymas daugiau, nei leidžia politika, grąžina 403 retention_exceeds_policy; leidžiama efektyvi reikšmė, išskyrus nulį, grąžina 501 retention_not_implemented.
data_classpublic | internal | confidential | restrictedTikrinama pagal politikos leidžiamas duomenų klases: klasė, kurios nėra tarp jų, grąžina 403 data_class_not_allowed, o nežinoma klasė grąžina 400 invalid_data_class.
policy_iduuidNurodo tos pačios organizacijos politiką; nežinomas ID grąžina 404 policy_not_found.
max_usd_per_1mskaičiusKainos lubos už milijoną žetonų šiai užklausai.
allow_partnerstrue | falseAr šiai užklausai gali būti naudojami partnerių galiniai taškai.

Nežinomi raktai llmeu viduje yra ignoruojami; žinomas raktas su neteisinga reikšme yra atmetamas, nes bloga data_class turi užtikrinti saugų atmetimą, o ne tyliai reikšti jokios duomenų klasės.

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

Ko nėra

Šie atsakymai yra sąmoningi, ir klientas, kuris jų tikisi, pamato klaidos kodą, o ne tylią pakeitimo reikšmę.

Užklausa Rezultatas
POST /v1/completions501 not_implemented — senasis completions galinis taškas nesiūlomas; naudokite /v1/chat/completions.
n > 1400 unsupported_n — palaikomas tik n = 1.
POST /v1/embeddingsĮterpimams reikia įterpimo modelio, o numatytasis prašomas ID yra bge-m3. Šiuo metu juos teikia deterministinis vietinis serveris, kurio atsakyme yra llmeu.mock: true ir pastaba, kad grąžinami deterministiniai pakaitiniai vektoriai ir šiame diegime neteikiami jokie įterpimo svoriai.
/v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images404 unknown_route — visai nėra maršrutizuojamas; /v1 kelias, kurio maršrutizatorius nežino, atsako 404 unknown_route, o bet kuris kitas kelias atsako 404 not_found.

Duomenų išgavimas

Paskyros eksportas me.json saugo pasirinktus paskyros laukus, organizacijas, API raktų metaduomenis be slaptų duomenų, dabartines politikas, naujausius 200 pėdsakus vienai organizacijai ir dienos naudojimo suvestines už 365 dienas. Tai nėra išsami visų asmens duomenų kopija ir ne istorinis politikos įrašas.

NDJSON audito eksportas pagal numatytuosius nustatymus yra 7 dienos, leidžia ne daugiau kaip 90 dienas ir apriboja pėdsakus iki 5000; jo manifeste yra counts.truncated, kuris pažymi eksportą, pasiekusį ribą.

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

Pačios paskyros ištrynimas atliekamas profilio puslapyje ir jam taikoma nuosavybės taisyklė konsolės puslapyje.

Sesijos slapukas nėra API kredencialas

Naršyklės sesija autentifikuoja konsolę, o ne API. OpenAI klientas, kuris ją siunčia, yra atmetamas su 403 api_key_required ir turi vietoj to naudoti API raktą.

Atsisakymas čia įvardija kodą, todėl migracija gali pagal jį išsišakoti, o llmeu blokas kiekviename atsakyme nurodo, kas iš tikrųjų įvyko.