Title: Migracja %E2%80%94 LLM EU Canonical: https://llmeu.com/pl/docs/migration/ Markdown mirror: https://llmeu.com/pl/docs/migration.md Machine-readable: https://llmeu.com/llms.txt (index) - https://llmeu.com/llms-full.txt (full catalogue) - https://llmeu.com/llms-catalogue.json Pierwsze kroki - [Szybki start](/pl/docs/quickstart/) - [Konsola](/pl/docs/console/) - [Migracja](/pl/docs/migration/) - [Dokumentacja API](/pl/docs/api/) Referencja - [Uwierzytelnianie](/pl/docs/authentication/) - [Punkty ko%C5%84cowe](/pl/docs/endpoints/) - [B%C5%82%C4%99dy](/pl/docs/errors/) - [Limity szybko%C5%9Bci](/pl/docs/rate-limits/) - [Strumieniowanie](/pl/docs/streaming/) - [Polityki](/pl/docs/policies/) - [Routing i polityka](/pl/docs/routing/) - [Rezydencja i regiony](/pl/docs/residency/) - [Dowody i weryfikacja](/pl/docs/evidence/) - [Zgodno%C5%9B%C4%87 z OpenAI](/pl/docs/openai-compat/) Eksploatacja - [Samodzielne hostowanie](/pl/docs/self-hosting/) # Migracja Bazowy URL i klucz przenosz%C4%85 klienta OpenAI. Ta strona podaje r%C3%B3wnie%C5%BC, czego API nie robi, poniewa%C5%BC migracja, kt%C3%B3ra odkrywa to na produkcji, nie jest migracj%C4%85. ## Kszta%C5%82t zamienny Ustaw bazowy URL klienta na https://api.llmeu.com/v1 i przeka%C5%BC mu klucz API z konsoli. Kszta%C5%82t %C5%BC%C4%85dania si%C4%99 nie zmienia. ``` 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) ``` ## Co akceptuje punkt ko%C5%84cowy czatu Walidator %C5%BC%C4%85da%C5%84 w apps/api/src/app.mjs sprawdza nast%C4%99puj%C4%85ce rzeczy; to, czego nie sprawdza, jest przekazywane dalej lub ignorowane, a nie odrzucane, dzi%C4%99ki czemu nowszy klient nadal dzia%C5%82a. - model i messages s%C4%85 wymagane; messages musi by%C4%87 niepust%C4%85 tablic%C4%85. - Ka%C5%BCda wiadomo%C5%9B%C4%87 wymaga roli (system, user, assistant, tool lub developer) i tre%C5%9Bci jako ci%C4%85g znak%C3%B3w lub tablicy cz%C4%99%C5%9Bci. - stream musi by%C4%87 warto%C5%9Bci%C4%85 logiczn%C4%85, gdy jest obecne. - temperature, top_p, max_tokens, presence_penalty, frequency_penalty, seed i n musz%C4%85 by%C4%87 liczbami, gdy s%C4%85 obecne. - max_tokens musi wynosi%C4%87 co najmniej 1. - n musi wynosi%C4%87 dok%C5%82adnie 1; cokolwiek innego jest odrzucane. - stop mo%C5%BCe by%C4%87 ci%C4%85giem znak%C3%B3w lub tablic%C4%85 ci%C4%85g%C3%B3w znak%C3%B3w. - tools musi by%C4%87 tablic%C4%85, gdy jest obecne. - llmeu musi by%C4%87 obiektem; nigdy nie jest wymagane. - tool_choice i response_format s%C4%85 przekazywane do backendu razem z powy%C5%BCszymi polami; nieznane dodatkowe pole nie jest odrzucane. ## Dodatki %C5%BC%C4%85dania w llmeu Obiekt llmeu z przestrzeni%C4%85 nazw w tre%C5%9Bci %C5%BC%C4%85dania; klient, kt%C3%B3ry ignoruje nieznane pola, mo%C5%BCe go bezpiecznie wys%C5%82a%C4%87. Nieznane klucze w llmeu s%C4%85 ignorowane; znany klucz z nieprawid%C5%82ow%C4%85 warto%C5%9Bci%C4%85 jest odrzucany, poniewa%C5%BC b%C5%82%C4%99dna data_class musi zawie%C5%9B%C4%87 bezpiecznie, a nie po cichu oznacza%C4%87 brak klasy danych. ``` 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"} }' ``` ## Co nie istnieje Te odpowiedzi s%C4%85 celowe, a klient, kt%C3%B3ry ich oczekuje, otrzymuje kod b%C5%82%C4%99du, a nie ciche podstawienie. ## Eksportowanie danych Eksport konta me.json zawiera wybrane pola konta, organizacje, metadane kluczy API bez sekret%C3%B3w, bie%C5%BC%C4%85ce polityki, najnowsze 200 %C5%9Blad%C3%B3w na organizacj%C4%99 i dzienne zagregowane dane u%C5%BCycia za 365 dni. Nie jest to kompletna kopia wszystkich danych osobowych ani historyczny zapis polityk. Eksport audytu NDJSON domy%C5%9Blnie obejmuje 7 dni, pozwala na maksymalnie 90 dni i ogranicza liczb%C4%99 %C5%9Blad%C3%B3w do 5000; jego manifest zawiera counts.truncated, co oznacza eksport, kt%C3%B3ry osi%C4%85gn%C4%85%C5%82 limit. ``` 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 ``` Usuni%C4%99cie samego konta odbywa si%C4%99 na stronie profilu i podlega regule w%C5%82asno%C5%9Bci na stronie konsoli. ## Ciasteczko sesji nie jest po%C5%9Bwiadczeniem API Sesja przegl%C4%85darki uwierzytelnia konsol%C4%99, a nie API. Klient OpenAI, kt%C3%B3ry j%C4%85 wy%C5%9Ble, zostaje odrzucony z 403 api_key_required i musi zamiast tego u%C5%BCy%C4%87 klucza API. Odmowa tutaj zawiera kod, wi%C4%99c migracja mo%C5%BCe na nim rozga%C5%82%C4%99zia%C4%87, a blok llmeu w ka%C5%BCdej odpowiedzi m%C3%B3wi, co faktycznie si%C4%99 sta%C5%82o.