Migracija

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

Suderinama forma

Nukreipkite kliento bazinį URL į https://api.llmeu.com/v1 ir naudokite 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ų tikrintuvas faile apps/api/src/app.mjs tikrina šiuos dalykus; ko jis 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.
  • Kiekviena žinutė turi turėti role (system, user, assistant, tool arba developer) ir content kaip eilutę arba dalių masyvą.
  • stream, kai pateiktas, turi būti loginė reikšmė.
  • temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed ir n, kai pateikti, turi būti skaičiai.
  • max_tokens turi būti bent 1.
  • n turi būti tiksliai 1; bet kas kita atmetama.
  • stop gali būti eilutė arba eilučių masyvas.
  • tools, kai pateiktas, turi būti masyvas.
  • llmeu turi būti objektas; jis niekada nėra privalomas.
  • tool_choice ir response_format perduodami į serverio dalį kartu su aukščiau išvardytais laukais; nežinomas papildomas laukas nėra atmetamas.

Užklausos priedai llmeu viduje

Vardinės 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 tos rezidencijos galinių taškų; 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 faktinė reikšmė, kuri nėra nulis, 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 riba 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 netinkama reikšme atmetamas, nes klaidingas data_class turi būti atmetamas, o ne tyliai reikšti, kad duomenų klasė nenurodyta.

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

Kas neegzistuoja

Šie atsakymai yra tyčiniai, ir klientas, kuris jų tikisi, mato klaidos kodą, o ne tylų pakeitimą.

Užklausa Rezultatas
POST /v1/completions501 not_implemented — senasis completions endpoint nesiūlomas; naudokite /v1/chat/completions.
n > 1400 unsupported_n — palaikoma tik n = 1.
POST /v1/embeddingsĮterpiniams reikia įterpimo modelio, o numatytasis užklausos id yra bge-m3. Šiame diegime nė vienas neteikiamas, todėl šiame maršrute jis nesiūlomas, o ne grąžinami rezervuoti vektoriai.
/v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images404 unknown_route — visai nemaršrutizuojama; /v1 kelias, kurio maršrutizatorius nežino, atsako 404 unknown_route, o bet kuris kitas kelias atsako 404 not_found.

Duomenų išsinešimas

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

NDJSON audito eksportas pagal numatytuosius nustatymus apima 7 dienų, leidžia daugiausia 90 dienų ir riboja 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ė, nurodyta konsolės puslapyje.

Sesijos slapukas nėra API kredencialas

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

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