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
residencyeu-hosted | eu-owned | de | anyRajoittaa reitityksen kyseisen sijainnin päätepisteisiin; tyhjä kelvollinen joukko palauttaa 409 no_endpoint_for_policy sen sijaan, että suodatinta laajennettaisiin.
tasktehtävän nimiTehtävä, johon reititin sovittaa mallin.
retentionzeroVain 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_classpublic | internal | confidential | restrictedTarkistetaan 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_iduuidNimeää saman organisaation käytännön; tuntematon tunnus palauttaa 404 policy_not_found.
max_usd_per_1mlukuHintakatto miljoonaa tokenia kohden tässä pyynnössä.
allow_partnerstrue | falseVoidaanko 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/completions501 not_implemented — vanhaa completions-päätepistettä ei tarjota; käytä /v1/chat/completions.
n > 1400 unsupported_n — vain n = 1 on tuettu.
POST /v1/embeddingsUpotukset 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/images404 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.