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 |
|---|---|---|
| residency | eu-hosted | eu-owned | de | any | Susiaurina 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ą. |
| task | užduoties pavadinimas | Užduotis, kuriai maršrutizatorius pritaiko modelį. |
| retention | zero | Į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_class | public | internal | confidential | restricted | Tikrinama 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_id | uuid | Nurodo tos pačios organizacijos politiką; nežinomas ID grąžina 404 policy_not_found. |
| max_usd_per_1m | skaičius | Kainos lubos už milijoną žetonų šiai užklausai. |
| allow_partners | true | false | Ar š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/completions | 501 not_implemented — senasis completions galinis taškas nesiūlomas; naudokite /v1/chat/completions. |
| n > 1 | 400 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/images | 404 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.