Migráció
Egy alap URL és egy kulcs átvisz egy OpenAI klienst. Ez az oldal azt is elmondja, mit nem tesz az API, mert egy migráció, amely ezt éles környezetben fedezi fel, nem migráció.
A beilleszthető forma
Állítsa a kliens alap URL-jét a https://api.llmeu.com/v1 címre, és adjon neki egy API-kulcsot a konzolról. A kérés formája nem változik.
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)
Mit fogad el a csevegővégpont
Az apps/api/src/app.mjs fájlban lévő kérésérvényesítő a következőket ellenőrzi; amit nem ellenőriz, az átengedésre vagy figyelmen kívül hagyásra kerül, nem pedig elutasításra, így egy újabb kliens továbbra is működik.
- A model és a messages kötelező; a messages-nek nem üres tömbnek kell lennie.
- Minden üzenethez szerepkör (system, user, assistant, tool vagy developer) és tartalom szükséges, amely lehet sztring vagy részek tömbje.
- A stream értékének logikai értéknek kell lennie, ha jelen van.
- A temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed és n értékének számnak kell lennie, ha jelen van.
- A max_tokens értékének legalább 1-nek kell lennie.
- Az n értéke pontosan 1 kell legyen; bármi más elutasításra kerül.
- A stop lehet sztring vagy sztringek tömbje.
- A tools értékének tömbnek kell lennie, ha jelen van.
- Az llmeu-nak objektumnak kell lennie; soha nem kötelező.
- A tool_choice és a response_format a fenti mezőkkel együtt továbbítódik a háttérrendszernek; az ismeretlen extra mező nem kerül elutasításra.
Kéréskiegészítők az llmeu alatt
Névtérrel ellátott llmeu objektum a kérés törzsében; az ismeretlen mezőket figyelmen kívül hagyó kliens biztonságosan küldheti.
| Mező | Érték | Hatás |
|---|---|---|
| residency | eu-hosted | eu-owned | de | any | Az útvonalválasztást az adott rezidenciában lévő végpontokra szűkíti; üres jogosult halmaz esetén 409 no_endpoint_for_policy hibát ad vissza, nem tágítja a szűrőt. |
| task | egy feladatnév | A feladat, amelyhez az útválasztó illeszti a modellt. |
| retention | zero | Csak a nulla van megvalósítva. A szabályzat által engedélyezettnél nagyobb érték kérése 403 retention_exceeds_policy hibát ad vissza; a nullától eltérő engedélyezett effektív érték 501 retention_not_implemented hibát ad vissza. |
| data_class | public | internal | confidential | restricted | A szabályzat engedélyezett adatosztályaihoz ellenőrizve: a rajtuk kívüli osztály 403 data_class_not_allowed hibát ad vissza, az ismeretlen osztály pedig 400 invalid_data_class hibát. |
| policy_id | uuid | Ugyanazon szervezet egy szabályzatát nevezi meg; ismeretlen azonosító esetén 404 policy_not_found hibát ad vissza. |
| max_usd_per_1m | egy szám | Árplafon millió tokenenként erre a kérésre. |
| allow_partners | true | false | Hogy használhatók-e partner végpontok ehhez a kéréshez. |
Az llmeu-n belüli ismeretlen kulcsok figyelmen kívül maradnak; az ismert kulcs érvénytelen értékkel elutasításra kerül, mert a hibás data_class-nek zártan kell meghibásodnia, nem pedig csendesen azt jelentenie, hogy nincs adatosztály.
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"}
}'
Mi nem létezik
Ezek a válaszok szándékosak, és az ezeket váró kliens a hiba kódját látja, nem pedig csendes helyettesítést.
| Kérés | Eredmény |
|---|---|
| POST /v1/completions | 501 not_implemented — A régi completions végpont nem elérhető; használja a /v1/chat/completions végpontot. |
| n > 1 | 400 unsupported_n — csak az n = 1 támogatott. |
| POST /v1/embeddings | A beágyazásokhoz beágyazási modell szükséges, és az alapértelmezett kért azonosító a bge-m3. Ezeket jelenleg a determinisztikus helyi háttérrendszer szolgálja ki, amelynek válasza tartalmazza az llmeu.mock: true értéket és azt a megjegyzést, hogy determinisztikus helyőrző vektorok kerülnek visszaadásra, és ezen a telepítésen nem szolgálnak ki beágyazási súlyokat. |
| /v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images | 404 unknown_route — egyáltalán nincs útvonalválasztás; a /v1 útvonal, amelyet az útválasztó nem ismer, 404 unknown_route választ ad, minden más útvonal pedig 404 not_found választ. |
Az adatok kivitele
A me.json fiókexport kiválasztott fiókmezőket, szervezeteket, titkok nélküli API-kulcs metaadatokat, aktuális szabályzatokat, szervezetenként a legutóbbi 200 nyomkövetést és a 365 napra vonatkozó napi használati összesítéseket tartalmazza. Ez nem minden személyes adat teljes másolata, és nem történelmi szabályzatnyilvántartás.
Az NDJSON audit export alapértelmezésben 7 napot tartalmaz, legfeljebb 90 napot engedélyez, és a nyomkövetéseket 5000 értékre korlátozza; a jegyzékfájlja tartalmazza a counts.truncated mezőt, amely a korlátot elért exportot jelöli.
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
Magának a fióknak a törlése a profiloldalon történik, és a konzololdalon található tulajdonosi szabály vonatkozik rá.
A munkamenet-süti nem API-hitelesítő adat
A böngésző munkamenet a konzolt hitelesíti, nem az API-t. Az OpenAI kliens, amely ilyet küld, 403 api_key_required hibát kap, és API-kulcsot kell használnia helyette.
Az elutasítás itt megnevez egy kódot, így a migráció elágazhat rá, és minden válasz llmeu blokkja elmondja, mi történt valójában.