Ofte stillede spørgsmål

De fleste sider på dette websted fremfører en påstand. Denne besvarer ti spørgsmål, som en køber normalt skal sende os en e-mail for at få. Hvor svaret er "endnu ikke", står der "endnu ikke" — en side, der overdrev, ville være mindre værd end ingen side, fordi enhver anden side her er skrevet for at kunne kontrolleres.

Hvor behandles prompts og completions?

På det endpoint, routeren vælger, som er en navngivet region, og svaret fortæller dig hvilken: llmeu-svarblokken på hver completion indeholder inference_region, endpoint_id og sovereignty_class. En residency-værdi i din politik begrænser det sæt før valget; den anvendes som et filter, ikke som en præference, og catalogue_unknown er aldrig routbar. To begrænsninger ved den sætning. For det første er regionsrækker konfigurationsdata, ikke bevis for kørende maskiner eller bekræftede operatøraftaler — residency-dokumentet siger dette med sine egne ord, og vi gentager det her i stedet for kun der. For det andet er der i denne deployment ingen first-party GPU-kapacitet: anmodninger betjenes af de endpoints, kataloget registrerer, og en model uden et live-endpoint er kun i kataloget, så en anmodning om den afvises ved navn i stedet for at blive besvaret af en stedfortræder. Se "Hvad sker der, hvis der ikke er nogen GPU?" nedenfor. Den API, der gør dette, er en Node-proces, ikke en del af dette statiske websted — llmeu.com besvarer selv sider, det behandler ikke anmodninger.

apps/api/src/inference.mjs:457 (llmeu-svarblokken), packages/router/src/engine.mjs:467 (residency anvendes før scoring), packages/shared/src/catalog-schema.mjs:64 (de routbare klasser)

Gemmes prompts og completions?

Nej. Prompt- og completion-bodies skrives ikke til databasen. Hvert kald gemmer metadata — model anmodet om og brugt, version, endpoint, region, suverænitetsklasse, routerens begrundelse, tokenantal, latency, omkostning, status — og rækkens prompt_stored er 0. De to body-kolonner findes i skemaet og er null. Håndhævelsen er kode, ikke policyprosa: en anmodning, hvis effektive opbevaring er andet end nul, afvises, med 403 retention_exceeds_policy, hvis den beder om mere, end din politik tillader, og 501 retention_not_implemented, hvis den er tilladt, men ikke implementeret. Politikker kan gemme 24h, 7d eller 30d som valg; at gemme valget aktiverer ikke lagring af body'en. Hvis en trace nogensinde viser prompt_stored anderledes end 0, er det ét-sides-svaret på "hvad gemte I" — og du kan selv kontrollere det med jq, som evidenssiden viser.

packages/shared/src/db/schema.sql:295 (prompt_stored og de to body-kolonner), apps/api/src/inference.mjs:83 (IMPLEMENTED_RETENTION = zero), apps/api/src/inference.mjs:89 (403 retention_exceeds_policy), apps/api/src/inference.mjs:97 (501 retention_not_implemented), docs/product/decisions.md:62 (ADR-003)

Træner I på kundedata?

Nej — intet i dette produkt er i stand til det. Der er ingen trænings- eller finjusteringskodevej i API'en, webprocessen, routeren eller de delte pakker. API'en orkestrerer en anmodning til en backend og måler den; der er ingen datasætindtagelse, intet korpuslager og intet finjusteringsjob. Prompt- og completion-bodies skrives ikke til databasen, så der er ikke engang et gemt korpus at træne på. Det er en udtalelse om vores kode, ikke om hver models upstream-træningsdata. Modeller, der blev trænet på andres data, eller som offentliggør deres træningsdata, er beskrevet på deres egne kort, med kilder, og nogle af disse kort siger, at træningsdataene ikke er offentliggjort.

apps/api/src/inference.mjs (hele anmodningsstien: orkestrer, mål, aldrig gem), packages/shared/src/db/schema.sql (ingen datasæt- eller korpustabel), packages/content/models.mjs:196 (et kort, der siger, at træningsdataene ikke er offentliggjort)

Hvad sker der, når ingen endpoint opfylder min residenspolitik?

Anmodningen mislykkes. Den nedgraderes ikke til en nærliggende region, og den sendes ikke andre steder hen: 409 no_endpoint_for_policy, med årsagen i fejlbody'en og de udelukkede endpoints navngivet på trace'en. Residens anvendes før scoring, og failover flytter kun inden for det sæt, routeren allerede har filtreret — hvilket er grunden til, at et retry ikke stille kan undslippe den regel, du har sat. Koden siger det i én sætning: "No endpoint satisfies residency {x}. Residency is never relaxed silently." Hvad man kan gøre ved det: navngiv en region eller klasse, som din politik tillader, udvid politikken bevidst (en beslutning, med en changelog-post), eller accepter, at der ikke findes nogen rute for den model under den regel. En 409 er produktet, der fungerer som designet; den fejltilstand, den forhindrer, er en anmodning, der "lykkedes" et sted, du ikke tillod.

packages/shared/src/errors.mjs:59 (no_endpoint_for_policy), packages/router/src/engine.mjs:370 (fejlen, før scoring), packages/router/src/engine.mjs:507 (failover kan ikke forlade det filtrerede sæt), apps/api/src/inference.mjs:137 (opbevaring kontrolleres før routing)

Er dette GDPR-compliant eller certificeret?

Nej — og det vil vi ikke: ikke "AI Act-compliant", ikke "certificeret", ikke "Official EU". LLM EU er en privat virksomhed, ikke en EU-institution og ikke et overensstemmelsesvurderingsorgan. "Verified" betyder her dokumenteret, ikke juridisk certificeret: en oplysningscheckliste, der scores efter, om et kort angiver sin residens, udbyder, version, opbevaring, underleverandører og licens, med links. Hvad platformen gør, er formuleret i vendinger, som koden kan holdes op på: nul opbevaring håndhævet, API-nøgler gemt som scrypt-hashes og vist én gang, hver kundeforespørgsel afgrænset efter organisations-id, per-IP-, per-nøgle- og per-org-ratebegrænsninger, anmodningsbodies begrænset og valideret. Sikkerhedsarbejde og de juridiske dokumenter har hver deres side.

docs/product/decisions.md:115 (ADR-006 — intet compliance-stempel, i nogen streng), apps/web/server/pages/docs.mjs:537 (SECURITY_COPY: listen over kontroller og mangler), apps/web/server/pages/docs.mjs:643 (LEGAL_READINESS: parathed pr. dokument)

Er API'en OpenAI-kompatibel, og hvad skal en kunde ændre?

Base-URL'en, og intet andet. /v1/chat/completions accepterer den officielle anmodningsform og returnerer den officielle svarform — choices, usage, streaming som SSE — så de officielle SDK'er virker, når du peger dem på os. Ekstra body-felter ignoreres i stedet for at blive afvist, så et nyere SDK ikke kan bryde en ældre rute. Det, der tilføjes, er valgfrit og additivt: et namespaced llmeu-objekt i anmodningen (residency, task, retention, data_class, policy_id, max_usd_per_1m, allow_partners) og en llmeu-blok i svaret med trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, route_reason, policy_id, retention og omkostningsestimater. Ikke tilbudt, med vilje: /v1/completions (501), n > 1 (400), embeddings medmindre en embedding-model faktisk hostes. llmeu-blokken kan få felter; at fjerne et ville være en breaking change og ville fremgå af changelog'en.

docs/product/decisions.md:78 (ADR-004), apps/api/src/app.mjs:554 (svaret, som klienten læser), apps/api/src/app.mjs:255 (501 på /v1/completions), apps/web/server/pages/docs.mjs:403 (den skriftlige kompatibilitetskontrakt)

Hvad sker der, hvis der ikke er nogen GPU?

Routeren betjener, hvad end kataloget registrerer af live endpoints, og hvert svar navngiver det endpoint, den region og den suverænitetsklasse, der svarede. En model uden et live endpoint er kun katalog: en anmodning om den afvises ved navn i stedet for at blive besvaret af en stand-in. Førsteparts-kapacitet kræver en konfigureret pool (VLLM_BASE_URL, derefter gpu_enabled-flaget); indtil en findes, er kapaciteten, hvad endpoint-rækkerne registrerer, og siderne siger, hvad det er. GET /readyz rapporterer, hvilke backends der er oppe, og readiness opfyldes ikke af en endpoint-række, der siger oppe — en managed runtime skal faktisk rapportere healthy, fordi hele pointen med den probe er at fange en node, hvis vægte stadig indlæses. Backend-registret nægter at erstatte én runtime med en anden; det kaster i stedet. Det ærlige resumé er ubehageligt og værd at sige klart: denne deployment har ingen GPU, så et kald her er en demonstration af pipelinen, ikke en modelkørsel. En stand-in-succes ville være en succes på wire'en og intet mere, hvilket er grunden til, at det aldrig præsenteres som en rigtig modelkørsel.

apps/api/src/app.mjs:157 (readiness inkluderer managed backends), docs/product/decisions.md:131 (ADR-007 — registret nægter at fake en GPU-runtime)

Hvad betyder et modelkort markeret catalogue_only?

Det betyder, at vi katalogiserer modellen og ikke hoster den. Kortet er referenceinformation — udbyder, licens, kontekstvindue, hvor udbyderen siger, den kører, kilder til hvert tal — og intet LLM EU-endpoint svarer for den. Bed API'en om den, og du får 404 hosted_unavailable, med noten "catalogue only — not hosted on LLM EU yet"; en side for den angiver ingen pris, fordi en pris for noget, ingen kan kalde, er et krav uden noget bag. Anmodninger til den model går direkte til dens udbyder, under udbyderens egne vilkår, og modelkortet siger præcis det. Det modsatte badge er heller ikke et stærkere løfte: en model, vi hoster, hostes i en navngivet region med en navngivet suverænitetsklasse, og det er det krav, du kan kontrollere på trace'en. Intet af badge'erne er en compliance-erklæring.

packages/router/src/engine.mjs:325 (routeren afviser den slags), apps/api/src/app.mjs:235 (404 hosted_unavailable med noten), apps/web/server/pages/docs.mjs:446 (prissætning springer catalogue_only over)

Hvordan fungerer prissætning og kredit i dag?

Priser er per million tokens ind og ud, gemt per endpoint og vist på prissiden og modelkortene, i EUR, afledt af én offentliggjort USD-kurs; ledgeren selv gemmer USD-micros og skriver kursen på hver række, så en tidligere faktura kan rekonstrueres nøjagtigt. Hver completion returnerer cost_estimate_usd og cost_estimate_eur, og en trace registrerer omkostningen i begge. Politikgrænser — et per-million-loft og et dagligt loft — kontrolleres før routing, så en anmodning over budget afvises i stedet for at blive kørt. Kortbetalinger er ikke aktiveret i denne deployment, og intet tilføjer kredit automatisk: der er ingen fakturakørsel og ingen operatørkreditvej endnu. Konsollen viser, hvad der er brugt, og hvad der er tilbage. Hvis et stripe_enabled-flag tændes, accepterer kredithåndteringen et indsendt beløb uden at verificere, at en betaling er sket — hvilket er grunden til, at flaget skal forblive slukket, indtil betalingsverifikation er implementeret og testet, og hvorfor vi siger det her i stedet for at tilbyde en checkout-knap.

docs/product/decisions.md:148 (ADR-008 — micros gemt, EUR vist), apps/api/src/inference.mjs:457 (omkostningsestimater per anmodning), apps/web/server/pages/docs.mjs:463 (prissiden angiver, at betalinger er slået fra), apps/web/server/pages/docs.mjs:559 (kredithåndteringen verificerer ikke betaling)

Kan vi selvhoste?

Ikke gennem noget, vi leverer i dag. Der findes ingen selvhostet distribution: intet container-image, ingen installer, ingen on-premise-licens, ingen supportkontrakt til at køre dette i jeres eget setup, og dette repository tilbydes ikke som en understøttet deployment. Konsollens team-flade findes, men organisationsroller er ikke komplet rollebaseret adgangskontrol, og det er dokumenteret i stedet for at blive tiet væk. Hvad kataloget derimod har, er en residensklasse kaldet on_prem_customer — "modellen kører inden for infrastruktur, som kunden kontrollerer" — og det er en klassificering af et endpoints ejerskab og drift, ikke et tilbud fra os. Mange af modellerne i kataloget offentliggør åbne vægte, og deres licenser (nogle ikke-kommercielle, nogle kun til forskning) er på kortene med et link, så du kan vurdere at køre dem selv; det er en beslutning om andres vægte og andres licens, ikke et selvhostingprodukt fra LLM EU. For en on-premise-samtale er enterprise-siden den rigtige indgang, og det er ærligt, at ordningen ikke findes endnu.

packages/router/src/engine.mjs:12 (on_prem_customer forekommer kun i residensmappinger), packages/shared/src/catalog-schema.mjs:84 (dens definition), apps/web/server/pages/docs.mjs:517 (ufuldstændig RBAC, angivet), packages/content/models.mjs:695 (en open-weight-licens på et kort)

Hvis et svar her er forkert, er det en fejl, og vi behandler det som en. Hvor koden og denne side er uenige, vinder koden — og evidenssiden, sikkerhedssiden og det juridiske indeks er de steder, hvor vi opbevarer resten af de ubehagelige detaljer i stedet for at gentage dem ti gange.

Spørgsmål, som denne side ikke besvarer: mail@llmeu.com

Bevis og verifikation · Sikkerhed · Juridisk · Tilgængelighed