Migraatio
Perus-URL ja avain siirtävät OpenAI-asiakkaan yli. Tämä sivu kertoo myös, mitä API ei tee, koska migraatio, joka havaitsee sen tuotannossa, ei ole migraatio.
Sujuvasti käyttöönotettava muoto
Aseta asiakkaan perus-URL osoitteeseen https://api.llmeu.com/v1 ja anna sille konsolista API-avain. Pyynnön muoto ei muutu.
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ä chat-päätepiste hyväksyy
Pyynnön validoija tiedostossa apps/api/src/app.mjs tarkistaa seuraavat; sitä, mitä se ei tarkista, välitetään eteenpäin tai jätetään huomiotta sen sijaan, että se hylättäisiin, joten uudempi asiakas toimii edelleen.
- model ja messages vaaditaan; messages on oltava ei-tyhjä taulukko.
- Jokainen viesti tarvitsee roolin (system, user, assistant, tool tai developer) ja sisällön merkkijonona tai osien taulukkona.
- stream on oltava totuusarvo, kun se on läsnä.
- temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed ja n on oltava numeroita, kun ne ovat läsnä.
- max_tokens on oltava vähintään 1.
- n on oltava täsmälleen 1; mikä tahansa muu hylätään.
- stop voi olla merkkijono tai merkkijonojen taulukko.
- tools on oltava taulukko, kun se on läsnä.
- llmeu on oltava objekti; sitä ei koskaan vaadita.
- tool_choice ja response_format välitetään taustajärjestelmälle yhdessä yllä olevien kenttien kanssa; tuntematonta ylimääräistä kenttää ei hylätä.
Pyynnön lisäosat llmeu:n alla
Nimiavaruudellinen llmeu-objekti pyynnön rungossa; asiakas, joka jättää tuntemattomat kentät huomiotta, voi lähettää sen turvallisesti.
| Kenttä | Arvo | Vaikutus |
|---|---|---|
| residency | eu-hosted | eu-owned | de | any | Rajoittaa reitityksen kyseisen sijainnin päätepisteisiin; tyhjä kelvollinen joukko palauttaa 409 no_endpoint_for_policy sen sijaan, että suodatinta laajennettaisiin. |
| task | tehtävän nimi | Tehtävä, johon reititin sovittaa mallin. |
| retention | zero | Vain nolla on toteutettu. Pyytäminen enemmän kuin käytäntö sallii palauttaa 403 retention_exceeds_policy; sallittu tehollinen arvo, joka ei ole nolla, palauttaa 501 retention_not_implemented. |
| data_class | public | internal | confidential | restricted | Tarkistetaan käytännön sallittuja tietoluokkia vasten: luokka niiden ulkopuolella palauttaa 403 data_class_not_allowed, ja tuntematon luokka palauttaa 400 invalid_data_class. |
| policy_id | uuid | Nimeää saman organisaation käytännön; tuntematon tunnus palauttaa 404 policy_not_found. |
| max_usd_per_1m | luku | Hintakatto miljoonaa tokenia kohden tässä pyynnössä. |
| allow_partners | true | false | Voidaanko kumppanipäätepisteitä käyttää tässä pyynnössä. |
Tuntemattomat avaimet llmeu:n sisällä jätetään huomiotta; tunnettu avain, jolla on virheellinen arvo, hylätään, koska virheellisen data_class on epäonnistuttava suljetusti eikä hiljaisesti tarkoita, ettei tietoluokkaa ole.
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"}
}'
Mitä ei ole olemassa
Nämä vastaukset ovat tahallisia, ja asiakas, joka odottaa niitä, näkee virhekoodin hiljaisen korvaamisen sijaan.
| Pyyntö | Tulos |
|---|---|
| POST /v1/completions | 501 not_implemented — vanhaa completions-päätepistettä ei tarjota; käytä /v1/chat/completions. |
| n > 1 | 400 unsupported_n — vain n = 1 on tuettu. |
| POST /v1/embeddings | Upotukset tarvitsevat upotusmallin, ja oletusarvoisesti pyydetty tunnus on bge-m3. Tällä hetkellä niitä palvelee deterministinen paikallinen taustajärjestelmä, jonka vastaus sisältää llmeu.mock: true ja huomautuksen, että deterministisiä paikkamerkkivektoreita palautetaan eikä upotuspainoja tarjota tässä käyttöönotossa. |
| /v1/files, /v1/batches, /v1/assistants, /v1/fine_tuning, /v1/audio, /v1/images | 404 unknown_route — ei reititetä ollenkaan; /v1-polku, jota reititin ei tunne, vastaa 404 unknown_route, ja mikä tahansa muu polku vastaa 404 not_found. |
Tietojesi vieminen ulos
Tilin vienti me.json sisältää valitut tilikentät, organisaatiot, API-avaimen metatiedot ilman salaisuuksia, nykyiset käytännöt, uusimmat 200 jälkeä organisaatiota kohden ja päivittäiset käyttökoosteet 365 päivältä. Se ei ole täydellinen kopio kaikista henkilötiedoista eikä historiallinen käytäntötietue.
NDJSON-tarkastusvienti oletusarvoisesti 7 päivää, sallii enintään 90 päivää ja rajaa jäljet 5000:ään; sen manifesti sisältää counts.truncated, joka merkitsee viennin, joka saavutti rajan.
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
Tilin poistaminen itsessään tapahtuu profiilisivulla ja on konsolisivun omistussäännön alainen.
Istuntoeväste ei ole API-tunnistetieto
Selainistunto todentaa konsolin, ei API:a. OpenAI-asiakas, joka lähettää sellaisen, hylätään koodilla 403 api_key_required, ja sen on käytettävä sen sijaan API-avainta.
Hylkäys täällä nimeää koodin, joten migraatio voi haarautua sen perusteella, ja jokaisen vastauksen llmeu-lohko kertoo, mitä todella tapahtui.