Vanliga frågor
De flesta sidor på den här webbplatsen gör ett påstående. Den här besvarar tio frågor som en köpare normalt måste mejla oss för att få svar på. Där svaret är "ännu inte" står det "ännu inte" — en sida som överdrev skulle vara mindre värd än ingen sida, eftersom varje annan sida här är skriven för att kunna kontrolleras.
Var behandlas prompts och completions?
På den endpoint som routern väljer, vilken är en namngiven region, och svaret talar om vilken: llmeu-blocket på varje completion innehåller inference_region, endpoint_id och sovereignty_class. Ett residensvärde i din policy begränsar den mängden före valet; det tillämpas som ett filter, inte som en preferens, och catalogue_unknown är aldrig routbar. Två begränsningar i den meningen. Först: regionrader är konfigurationsdata, inte bevis på körande maskiner eller bekräftade operatörsavtal — residensdokumentet säger detta med egna ord, och vi upprepar det här i stället för bara där. För det andra: i denna driftsättning finns ingen GPU: standardbackend är mocken, vars region är dev-mock, och mocken representerar inte en plats. Se "Vad händer om det inte finns någon GPU?" nedan. API:et som gör detta är en Node-process, inte en del av denna statiska webbplats — llmeu.com svarar självt på sidor, det behandlar inte förfrågningar.
apps/api/src/inference.mjs:457 (llmeu-svarsblocket), packages/router/src/engine.mjs:467 (residens tillämpas före poängsättning), packages/inference/src/mock.mjs:7 (MOCK_REGION = dev-mock), packages/shared/src/catalog-schema.mjs:64 (de routbara klasserna)
Sparas prompts och completions?
Nej. Prompt- och completion-kroppar skrivs inte till databasen. Varje anrop lagrar metadata — modell begärd och använd, version, endpoint, region, suveränitetsklass, routerns orsak, tokenantal, latens, kostnad, status — och radens prompt_stored är 0. De två kroppskolumnerna finns i schemat och är null. Tvingandet är kod, inte policyprosa: en förfrågan vars effektiva retention är något annat än noll avvisas, med 403 retention_exceeds_policy om den begär mer än din policy tillåter och 501 retention_not_implemented om den är tillåten men oimplementerad. Policyer kan lagra 24h, 7d eller 30d som val; att lagra valet aktiverar inte lagring av kroppen. Om en trace någonsin visar prompt_stored annat än 0 är det en-sidans svar på "vad behöll ni" — och du kan kontrollera det själv med jq, som bevissidan visar.
packages/shared/src/db/schema.sql:295 (prompt_stored och de två kroppskolumnerna), 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änar ni på kunddata?
Nej — inget i denna produkt är i stånd att göra det. Det finns ingen kodväg för träning eller finjustering i API:et, webbprocessen, routern eller de delade paketen. API:et orkestrerar en förfrågan till en backend och mäter den; det finns ingen datasetinmatning, ingen korpuslagring och inget finjusteringsjobb. Prompt- och completion-kroppar skrivs inte till databasen, så det finns inte ens en lagrad korpus att träna på. Det är ett uttalande om vår kod, inte om varje modells uppströms träningsdata. Modeller som tränades på andras data, eller som redovisar sin träningsdata, beskrivs på sina egna kort, med källor, och några av dessa kort säger att träningsdatan inte är publicerad.
apps/api/src/inference.mjs (hela förfrågningsvägen: orkestrera, mät, aldrig persistera), packages/shared/src/db/schema.sql (ingen dataset- eller korpustabell), packages/content/models.mjs:196 (ett kort som säger att träningsdatan inte är publicerad)
Vad händer när ingen endpoint uppfyller min residenspolicy?
Förfrågan misslyckas. Den nedgraderas inte till en närliggande region, och den skickas inte någon annanstans: 409 no_endpoint_for_policy, med orsaken i felkroppen och de uteslutna endpointerna namngivna i tracen. Residens tillämpas före poängsättning, och failover rör sig bara inom den mängd som routern redan har filtrerat — vilket är varför ett nytt försök inte tyst kan undkomma regeln du satte. Koden säger det i en mening: "No endpoint satisfies residency {x}. Residency is never relaxed silently." Vad du kan göra: namnge en region eller klass som din policy tillåter, utvidga policyn medvetet (ett beslut, med en ändringsloggspost), eller acceptera att ingen rutt finns för den modellen under den regeln. En 409 är produkten som fungerar som avsett; felfallet den förhindrar är en förfrågan som "lyckades" någonstans du inte tillät.
packages/shared/src/errors.mjs:59 (no_endpoint_for_policy), packages/router/src/engine.mjs:370 (felet, före poängsättning), packages/router/src/engine.mjs:507 (failover kan inte lämna den filtrerade mängden), apps/api/src/inference.mjs:137 (retention kontrolleras före routning)
Är detta GDPR-kompatibelt eller certifierat?
Vi gör inte det påståendet, och vi kommer inte att göra det — inte "AI Act compliant", inte "certifierat", inte "Official EU". LLM EU är ett privat företag. Det är inte en EU-institution och inte ett organ för bedömning av överensstämmelse. "Verifierat" på den här webbplatsen betyder dokumenterat, inte juridiskt certifierat: det är en checklista för upplysningar, bedömd efter om ett kort anger sin placering, leverantör, version, retention, underbiträden och licens, med länkar. Vad vi kan ange är vad koden gör, och var luckorna finns: noll retention genomdrivet i kod; API-nycklar lagrade som scrypt-hashar med hemligheten visad en gång; varje kundfråga avgränsad efter organisations-id; hastighetsbegränsningar per IP, per nyckel och per organisation; förfrågningskroppar begränsade och validerade. Vad som inte är gjort: inget oberoende penetrationstest; ingen tredjepartsrevision; integritetsmeddelandet och villkoren är sammanfattningar; DPA:n är en ogranskad, osignerad mall; förteckningen över underbiträden är ofullständig. Säkerhetssidan och det juridiska registret listar dessa luckor i sina egna avsnitt; detta svar hänvisar till dem i stället för att parafrasera dem till något mjukare.
docs/product/decisions.md:115 (ADR-006 — ingen efterlevnadsstämpel, i någon sträng), apps/web/server/pages/docs.mjs:537 (SECURITY_COPY: kontroll- och lucklistan), apps/web/server/pages/docs.mjs:643 (LEGAL_READINESS: beredskap per dokument)
Är API:et OpenAI-kompatibelt, och vad behöver en kund ändra?
Bas-URL:en, och inget annat. /v1/chat/completions accepterar den officiella förfrågningsformen och returnerar den officiella svarsformen — choices, usage, streaming som SSE — så de officiella SDK:erna fungerar efter att du pekat dem mot oss. Extra fält i kroppen ignoreras i stället för att avvisas, så en nyare SDK kan inte bryta en äldre rutt. Det som läggs till är valfritt och additivt: ett namnrymdsatt llmeu-objekt i förfrågan (residency, task, retention, data_class, policy_id, max_usd_per_1m, allow_partners) och ett llmeu-block i svaret som bär trace_id, model_used, model_version, provider, endpoint_id, inference_region, sovereignty_class, route_reason, policy_id, retention och kostnadsuppskattningar. Erbjuds medvetet inte: /v1/completions (501), n > 1 (400), embeddings om inte en embedding-modell faktiskt är hostad. llmeu-blocket kan få fält; att ta bort ett skulle vara en brytande ändring och skulle synas i ändringsloggen.
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 (det skriftliga kompatibilitetskontraktet)
Vad händer om det inte finns någon GPU?
MockBackend svarar, och det säger den i sin egen utdata: completionen namnger modellen och regionen, anger att inga riktiga vikter kördes och säger hur man slår på förstapartsinferens (VLLM_BASE_URL, sedan flaggan gpu_enabled). Dess region är dev-mock, vilket inte är en plats, och vid ett mockanrop tas ingen avgift ut. GET /readyz rapporterar vilka backends som är uppe, och beredskap uppnås inte av en endpoint-rad som säger up — en hanterad runtime måste faktiskt rapportera healthy, eftersom hela poängen med den proben är att fånga en nod vars vikter fortfarande laddas. Backendregistret vägrar ersätta mocken för en endpoint vars runtime är vllm; det kastar i stället. Den ärliga sammanfattningen är obekväm och värd att säga rakt ut: denna driftsättning har ingen GPU, så ett anrop här är en demonstration av pipelinen, inte en modellkörning. En mock-framgång är en framgång på tråden; den presenteras aldrig som en verklig modellkörning.
packages/inference/src/mock.mjs:49 (svaret som namnger mocken), apps/api/src/app.mjs:157 (beredskap inkluderar hanterade backends), docs/product/decisions.md:131 (ADR-007 — registret vägrar fejka en GPU-runtime)
Vad betyder ett modellkort märkt catalogue_only?
Det betyder att vi katalogiserar modellen och inte tillhandahåller den. Kortet är referensinformation — leverantör, licens, kontextfönster, var leverantören säger att den körs, källor för varje siffra — och ingen LLM EU-endpoint svarar för den. Fråga API:et efter den och du får 404 hosted_unavailable, med noteringen "catalogue only — not hosted on LLM EU yet"; en sida för den anger inget pris, eftersom ett pris för något ingen kan anropa är ett påstående utan något bakom. Förfrågningar till den modellen går direkt till dess leverantör, enligt leverantörens egna villkor, och modellkortet säger exakt det. Den motsatta märkningen är inte heller ett starkare löfte: en modell vi hostar hostas i en namngiven region med en namngiven suveränitetsklass, och det är påståendet du kan kontrollera i tracen. Ingen av märkningarna är ett efterlevnadsuttalande.
packages/router/src/engine.mjs:325 (routern avvisar kinden), apps/api/src/app.mjs:235 (404 hosted_unavailable med noteringen), apps/web/server/pages/docs.mjs:446 (prissättning hoppar över catalogue_only)
Hur fungerar prissättning och kredit idag?
Priser är per miljon tokens in och ut, lagrade per endpoint och visade på prissidan och modellkorten, i EUR, härledda från en publicerad USD-kurs; liggaren lagrar själv USD-mikro och skriver kursen på varje rad, så en tidigare faktura kan rekonstrueras exakt. Varje completion returnerar cost_estimate_usd och cost_estimate_eur, och en trace registrerar kostnaden i båda. Policylimiter — ett tak per miljon och ett dagligt tak — kontrolleras före routning, så en förfrågan över budget avvisas i stället för att köras. Kortbetalningar är inte aktiverade i denna driftsättning, och inget lägger till kredit automatiskt: det finns ingen fakturakörning och ingen operatörsväg för kredit ännu. Konsolen visar vad som har spenderats och vad som återstår. Om en flagga stripe_enabled slås på accepterar kredithanteraren ett angivet belopp utan att verifiera att en betalning har skett — vilket är varför flaggan måste förbli avstängd tills betalningsverifiering är implementerad och testad, och varför vi säger det här i stället för att erbjuda en betalknapp.
docs/product/decisions.md:148 (ADR-008 — mikro lagras, EUR visas), apps/api/src/inference.mjs:457 (kostnadsuppskattningar per förfrågan), apps/web/server/pages/docs.mjs:463 (prissidan anger att betalningar är avstängda), apps/web/server/pages/docs.mjs:559 (kredithanteraren verifierar inte betalning)
Kan vi självhosta?
Inte genom något vi levererar idag. Det finns ingen självhostad distribution: ingen containeravbild, ingen installerare, ingen on-premise-licens, inget supportavtal för att köra detta i din egen miljö, och detta arkiv erbjuds inte som en supporterad driftsättning. Konsolens teamsyta finns, men organisationsroller är inte fullständig rollbaserad åtkomstkontroll, och det dokumenteras i stället för att förutsättas bort. Vad katalogen däremot innehåller är en residensklass som kallas on_prem_customer — "modellen körs i infrastruktur som kunden kontrollerar" — och det är en klassificering av en endpoints ägande och drift, inte ett erbjudande från oss. Många av modellerna i katalogen publicerar öppna vikter, och deras licenser (vissa icke-kommersiella, vissa endast för forskning) finns på korten med en länk, så du kan utvärdera att köra dem själv; det är ett beslut om någon annans vikter och någon annans licens, inte en självhostad produkt från LLM EU. För ett on-premise-samtal är företagssidan rätt dörr, och det är ärligt att arrangemanget inte finns ännu.
packages/router/src/engine.mjs:12 (on_prem_customer förekommer endast i residensmappningar), packages/shared/src/catalog-schema.mjs:84 (dess definition), apps/web/server/pages/docs.mjs:517 (ofullständig RBAC, angiven), packages/content/models.mjs:695 (en öppen-vikt-licens på ett kort)
Om ett svar här är fel är det en defekt och vi behandlar det som en. Om koden och den här sidan inte stämmer vinner koden — och bevissidan, säkerhetssidan och det juridiska registret är platserna där vi håller resten av den obekväma detaljen i stället för att upprepa den tio gånger.
Frågor som den här sidan inte besvarar: mail@llmeu.com