diff --git a/assets/css/tools.css b/assets/css/tools.css index c4bbdcb..5babf1a 100644 --- a/assets/css/tools.css +++ b/assets/css/tools.css @@ -7979,3 +7979,246 @@ body.lt-landing { font-size: 0.78em; } +/* ── why-ours.php — two-path comparison ─────────────────────────────────── */ +.kdoc-compare { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 2rem; + margin-top: 2rem; +} +.kdoc-compare__col { + background: var(--panel); + border-radius: 12px; + padding: 2rem; + box-shadow: 0 2px 12px rgba(25,35,52,.06); +} +.kdoc-compare__col--generic { border-top: 4px solid #c2410c; } +.kdoc-compare__col--dbn { border-top: 4px solid var(--dbn-blue, #00205b); } +.kdoc-compare__label { + font-size: .72rem; + text-transform: uppercase; + letter-spacing: .1em; + font-weight: 700; + margin-bottom: 1.25rem; +} +.kdoc-compare__col--generic .kdoc-compare__label { color: #c2410c; } +.kdoc-compare__col--dbn .kdoc-compare__label { color: var(--dbn-blue, #00205b); } +.kdoc-compare__flow { + display: flex; + flex-direction: column; + gap: .5rem; +} +.kdoc-compare__arrow { + text-align: center; + color: var(--muted, #667085); + font-size: 1.1rem; + line-height: 1; + padding: .1rem 0; +} +.kdoc-compare__flow-step { + background: var(--bg, #f7f8fb); + border-radius: 8px; + padding: .75rem 1rem; + font-size: .88rem; + line-height: 1.55; + color: var(--ink, #1b2330); +} +.kdoc-compare__flow-step small { + display: block; + margin-top: .25rem; + font-size: .78rem; + color: var(--muted, #667085); + font-style: italic; +} +.kdoc-compare__flow-step--final { font-weight: 700; } +.kdoc-compare__col--generic .kdoc-compare__flow-step--final { + background: #fff0e8; + color: #c2410c; +} +.kdoc-compare__col--dbn .kdoc-compare__flow-step--final { + background: var(--soft-teal, #e7f5f2); + color: var(--teal-dark, #115e59); +} +.kdoc-compare__caption { + margin-top: 1.5rem; + text-align: center; + font-size: .92rem; + color: var(--muted, #667085); + font-style: italic; +} +@media (max-width: 700px) { + .kdoc-compare { grid-template-columns: 1fr; } +} + +/* ── Analogy term chip ───────────────────────────────────────────────────── */ +.kdoc-feature-card__term { + display: inline-block; + margin-top: .75rem; + padding: .25rem .65rem; + background: var(--soft-teal, #e7f5f2); + color: var(--teal-dark, #115e59); + border-radius: 20px; + font-size: .72rem; + font-weight: 600; + letter-spacing: .03em; +} + +/* ── Knowledge graph (why-ours) ──────────────────────────────────────────── */ +.kdoc-graph { + display: flex; + flex-direction: column; + align-items: center; + gap: 0; + margin-top: 2rem; +} +.kdoc-graph__node { + background: var(--panel); + border: 1.5px solid var(--line, #d8dde7); + border-radius: 10px; + padding: .85rem 1.5rem; + text-align: center; + max-width: 420px; + width: 100%; + box-shadow: 0 2px 8px rgba(25,35,52,.06); +} +.kdoc-graph__node--start { + background: var(--dbn-blue, #00205b); + color: #fff; + border-color: var(--dbn-blue, #00205b); +} +.kdoc-graph__node--end { + background: var(--soft-teal, #e7f5f2); + border-color: var(--teal, #0f766e); +} +.kdoc-graph__node-title { + font-family: 'Crimson Pro', Georgia, serif; + font-size: 1.05rem; + font-weight: 600; + color: inherit; + margin: 0 0 .15rem; +} +.kdoc-graph__node--start .kdoc-graph__node-title { color: #fff; } +.kdoc-graph__node--end .kdoc-graph__node-title { color: var(--teal-dark, #115e59); } +.kdoc-graph__node-note { + font-size: .75rem; + color: var(--muted, #667085); + margin: 0; +} +.kdoc-graph__node--start .kdoc-graph__node-note { color: rgba(255,255,255,.7); } +.kdoc-graph__node--end .kdoc-graph__node-note { color: var(--teal-dark, #115e59); opacity: .8; } +.kdoc-graph__connector { + display: flex; + flex-direction: column; + align-items: center; + padding: .35rem 0; + color: var(--muted, #667085); + font-size: .8rem; + gap: .2rem; +} +.kdoc-graph__connector-line { + width: 2px; + height: 20px; + background: var(--line, #d8dde7); +} +.kdoc-graph__connector-label { + font-size: .68rem; + text-transform: uppercase; + letter-spacing: .08em; + color: var(--muted, #667085); +} + +/* ── Image placeholder slots ─────────────────────────────────────────────── */ +.kdoc-img-slot { + position: relative; + border-radius: 12px; + overflow: hidden; + background: var(--dbn-blue, #00205b); + min-height: 300px; + margin: 2.5rem 0; + display: flex; + align-items: center; + justify-content: center; +} +.kdoc-img-slot picture, +.kdoc-img-slot img { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + display: block; + object-fit: cover; +} +.kdoc-img-slot__placeholder { + text-align: center; + color: rgba(255,255,255,.45); + padding: 2.5rem 2rem; + max-width: 700px; + position: relative; + z-index: 1; +} +.kdoc-img-slot__placeholder strong { + display: block; + font-size: .95rem; + color: rgba(255,255,255,.75); + margin-bottom: .6rem; + font-family: 'Crimson Pro', Georgia, serif; + font-weight: 600; +} +.kdoc-img-slot__label { + font-size: .65rem; + text-transform: uppercase; + letter-spacing: .1em; + color: rgba(255,255,255,.35); + margin-bottom: .4rem; +} +.kdoc-img-slot__prompt { + background: rgba(255,255,255,.06); + border: 1px solid rgba(255,255,255,.14); + border-radius: 8px; + padding: 1rem 1.25rem; + font-size: .78rem; + font-family: 'IBM Plex Sans', sans-serif; + color: rgba(255,255,255,.65); + line-height: 1.65; + margin-top: .75rem; + text-align: left; +} + +/* ── Privacy card (why-ours) ─────────────────────────────────────────────── */ +.kdoc-privacy-card { + background: var(--dbn-blue, #00205b); + color: rgba(255,255,255,.9); + border-radius: 12px; + padding: 2.5rem; + margin-top: 1.5rem; +} +.kdoc-privacy-card h3 { + font-family: 'Crimson Pro', Georgia, serif; + font-size: 1.5rem; + font-weight: 700; + color: #fff; + margin: 0 0 .75rem; +} +.kdoc-privacy-card p { + font-size: .95rem; + line-height: 1.7; + color: rgba(255,255,255,.8); + margin: 0; +} +.kdoc-privacy-card__badges { + display: flex; + flex-wrap: wrap; + gap: .5rem; + margin-top: 1.25rem; +} +.kdoc-privacy-card__badge { + padding: .3rem .8rem; + background: rgba(255,255,255,.1); + border: 1px solid rgba(255,255,255,.18); + border-radius: 20px; + font-size: .72rem; + font-weight: 600; + color: rgba(255,255,255,.85); + letter-spacing: .03em; +} + diff --git a/assets/images/why-ours/comparison.jpg b/assets/images/why-ours/comparison.jpg new file mode 100644 index 0000000..636065a Binary files /dev/null and b/assets/images/why-ours/comparison.jpg differ diff --git a/assets/images/why-ours/comparison.webp b/assets/images/why-ours/comparison.webp new file mode 100644 index 0000000..be72565 Binary files /dev/null and b/assets/images/why-ours/comparison.webp differ diff --git a/assets/images/why-ours/finetune.jpg b/assets/images/why-ours/finetune.jpg new file mode 100644 index 0000000..78affc1 Binary files /dev/null and b/assets/images/why-ours/finetune.jpg differ diff --git a/assets/images/why-ours/finetune.webp b/assets/images/why-ours/finetune.webp new file mode 100644 index 0000000..8b25e58 Binary files /dev/null and b/assets/images/why-ours/finetune.webp differ diff --git a/assets/images/why-ours/graph.jpg b/assets/images/why-ours/graph.jpg new file mode 100644 index 0000000..6dc3252 Binary files /dev/null and b/assets/images/why-ours/graph.jpg differ diff --git a/assets/images/why-ours/graph.webp b/assets/images/why-ours/graph.webp new file mode 100644 index 0000000..e15eae3 Binary files /dev/null and b/assets/images/why-ours/graph.webp differ diff --git a/assets/images/why-ours/hero.jpg b/assets/images/why-ours/hero.jpg new file mode 100644 index 0000000..0f57215 Binary files /dev/null and b/assets/images/why-ours/hero.jpg differ diff --git a/assets/images/why-ours/hero.webp b/assets/images/why-ours/hero.webp new file mode 100644 index 0000000..da15ea2 Binary files /dev/null and b/assets/images/why-ours/hero.webp differ diff --git a/assets/images/why-ours/library.jpg b/assets/images/why-ours/library.jpg new file mode 100644 index 0000000..ceb1bc8 Binary files /dev/null and b/assets/images/why-ours/library.jpg differ diff --git a/assets/images/why-ours/library.webp b/assets/images/why-ours/library.webp new file mode 100644 index 0000000..cb34484 Binary files /dev/null and b/assets/images/why-ours/library.webp differ diff --git a/index.php b/index.php index 7b0c7aa..92c4eff 100644 --- a/index.php +++ b/index.php @@ -195,6 +195,9 @@ window.DBN_TOOLS_LANG = ;

+
+ Why our tools give different answers than ChatGPT → +
diff --git a/translations/why-ours.php b/translations/why-ours.php new file mode 100644 index 0000000..ae1d367 --- /dev/null +++ b/translations/why-ours.php @@ -0,0 +1,203 @@ + [ + 'nav_signin' => 'Sign in', + 'nav_open' => 'Open the tools →', + 'hero_kicker' => 'Why Do Better Norge · Plain-language explainer', + 'hero_title' => 'Why our tools give different answers than ChatGPT', + 'hero_sub' => 'ChatGPT and Gemini are brilliant general assistants. But when your child welfare case depends on the exact wording of barnevernsloven § 4-4, "generally correct" is not enough.', + 'stat_passages' => 'legal passages indexed', + 'stat_tribunal' => 'tribunal decisions', + 'stat_echr' => 'ECHR judgments vs Norway', + 'stat_scope' => 'Norwegian law only', + 'btn_try' => 'Try the tools →', + 'btn_register' => 'Create free account', + + 'problem_eyebrow' => 'The core difference', + 'problem_title' => 'Memory versus the library.', + 'problem_sub' => 'General AI answers from memory. Our tools look it up first — every time.', + 'col_generic_label'=> 'General AI (ChatGPT · Gemini)', + 'col_dbn_label' => 'Do Better Norge Tools', + 'col_generic_s1' => 'You ask a question', + 'col_generic_s2' => 'The AI searches its memory — trained on the whole internet, up to a cutoff date', + 'col_generic_s3' => 'It generates a plausible-sounding answer', + 'col_generic_s4' => 'It may cite laws that don\'t exist, are out of date, or apply to a different country', + 'col_dbn_s1' => 'You ask a question', + 'col_dbn_s2' => 'The system searches 220,000+ verified Norwegian legal passages (RAG — Retrieval Augmented Generation)', + 'col_dbn_s3' => 'It finds exact passages by keyword AND by meaning (BM25 + vector search, running in parallel)', + 'col_dbn_s4' => 'A reranker picks the most relevant results for your specific situation', + 'col_dbn_s5' => 'A law-trained AI writes your answer — citing the real passages it just found', + 'problem_caption' => 'The difference is not speed or style. The difference is whether the answer is grounded in Norwegian law or not.', + + 'analogy_eyebrow' => 'How it works in plain English', + 'analogy_title' => 'Three ideas that explain everything.', + 'a1_icon' => '📚', + 'a1_title' => 'The Librarian', + 'a1_body' => 'Imagine asking a question and instead of the AI guessing from memory, a librarian runs to the shelves, pulls 10 books, finds the exact paragraphs — then reads them to you. That is what RAG means. Our tools do this with 220,000 Norwegian legal passages, every single time.', + 'a1_term' => 'RAG — Retrieval Augmented Generation', + 'a2_icon' => '🔍', + 'a2_title' => 'Two ways to find a book', + 'a2_body' => 'One approach finds exact words — searching for "§ 4-4 barnevernsloven" will locate that exact paragraph. The other finds meaning — if you describe your situation without knowing the law\'s name, it still finds it. We use both at the same time, then combine the results.', + 'a2_term' => 'BM25 keyword search + semantic vector search', + 'a3_icon' => '⚖️', + 'a3_title' => 'The Second Opinion', + 'a3_body' => 'After finding 30 candidate passages, a second AI reviews them and puts the most relevant ones first — the way a senior lawyer might sort through a pile of case files and pull out the three that actually matter to your situation.', + 'a3_term' => 'Reranker — relevance scoring pass', + + 'graph_eyebrow' => 'The connected law', + 'graph_title' => 'Norwegian law is a web, not a list.', + 'graph_sub' => 'ChatGPT doesn\'t know which Norwegian laws connect to which ECHR articles in your specific type of case. Our corpus is built to follow those links.', + 'graph_caption' => 'Your answer draws on all of these — statute, case law, international convention, guidance — linked and cross-referenced.', + + 'graph_n1' => 'Your question', + 'graph_n2' => 'barnevernsloven § 4-4', + 'graph_n2_note' => 'emergency care', + 'graph_n3' => 'barneloven § 30 · § 34', + 'graph_n3_note' => 'parental rights', + 'graph_n4' => 'ECHR Article 8', + 'graph_n4_note' => 'right to family life', + 'graph_n5' => '23 ECHR judgments vs Norway', + 'graph_n5_note' => 'Strand Lobben, Johansen, K.O. and V.M. …', + 'graph_n6' => 'Bufdir + Statsforvalter guidance', + 'graph_n6_note' => 'administrative practice', + 'graph_n7' => 'Your answer', + 'graph_n7_note' => 'grounded in all of the above', + + 'compare_eyebrow' => 'Real examples', + 'compare_title' => 'The same question. Very different answers.', + 'compare_sub' => 'Here is what happens when you ask a child-welfare question to a general AI versus our tools.', + 'compare_th_q' => 'Your question', + 'compare_th_gpt' => 'General AI answers', + 'compare_th_dbn' => 'Do Better Norge answers', + 'compare_r1_q' => '"Can Barnevernet take my child without warning?"', + 'compare_r1_gpt' => 'Generic description of child protective services. May reference Swedish, UK or US procedures. No specific statute. No citation you can verify.', + 'compare_r1_dbn' => 'Cites barnevernsloven § 4-2 (duty to investigate), § 4-6 (immediate removal conditions), ECHR Art. 8 proportionality test — with passage numbers from the corpus.', + 'compare_r2_q' => '"How do I appeal a care order?"', + 'compare_r2_gpt' => 'Describes a general appeals process. Mentions "the relevant authority" without naming it. Timeline may be wrong for Norway.', + 'compare_r2_dbn' => 'Cites barnevernsloven § 7-2 (tribunal proceedings), tvisteloven, Statsforvalter complaint deadline — with direct source links.', + 'compare_r3_q' => '"What does Article 8 mean for my case?"', + 'compare_r3_gpt' => 'Explains ECHR Article 8 in general terms. No mention of the specific Norway judgments. No connection to barnevernsloven.', + 'compare_r3_dbn' => 'Cites the 4 ECHR vs Norway judgments most relevant to family reunification, cross-referenced to barnevernsloven and Bufdir guidance — in plain Norwegian and your language.', + 'compare_caption' => 'These are not hypothetical differences. They are what users encounter every day.', + + 'llm_eyebrow' => 'Trained for Norway', + 'llm_title' => 'Not a general AI. A Norwegian law AI.', + 'llm_body_html' => 'Our AI assistant was not just given access to legal documents. It was trained on Norwegian child welfare law specifically — barnevernsloven, barneloven, ECHR Article 8 case law — so it understands Norwegian legal reasoning, not just Norwegian words. A general LLM guesses at legal meaning. Ours was built for it.', + 'llm_badge' => 'Fine-tuned model', + 'llm_s1' => 'fine-tune method', + 'llm_s2' => 'child welfare corpus', + 'llm_s3' => 'ECHR Art. 8 case law', + 'llm_s4' => 'Norwegian bokmål', + + 'privacy_eyebrow' => 'Your privacy', + 'privacy_title' => 'Your case details never leave our servers.', + 'privacy_body' => 'Unlike ChatGPT or Gemini, our tools run on infrastructure we control. Your case details are never sent to OpenAI, Google, or any third-party AI company. Your conversations are never used to train any model. What you share with us stays with us.', + + 'cta_title' => 'Ready to try it?', + 'cta_sub' => 'Free to start. No legal training required.', + 'btn_open' => 'Open the tools →', + 'btn_signin_cta' => 'Sign in →', + ], + + 'no' => [ + 'nav_signin' => 'Logg inn', + 'nav_open' => 'Åpne verktøyene →', + 'hero_kicker' => 'Hvorfor Do Better Norge · Forklaring på vanlig norsk', + 'hero_title' => 'Hvorfor verktøyene våre gir andre svar enn ChatGPT', + 'hero_sub' => 'ChatGPT og Gemini er glimrende generelle assistenter. Men når barnevernssaken din avhenger av den eksakte ordlyden i barnevernsloven § 4-4, er "generelt riktig" ikke godt nok.', + 'stat_passages' => 'juridiske tekstutdrag indeksert', + 'stat_tribunal' => 'nemndavgjørelser', + 'stat_echr' => 'EMD-dommer mot Norge', + 'stat_scope' => 'norsk rett', + 'btn_try' => 'Prøv verktøyene →', + 'btn_register' => 'Opprett gratis konto', + + 'problem_eyebrow' => 'Den grunnleggende forskjellen', + 'problem_title' => 'Hukommelse mot biblioteket.', + 'problem_sub' => 'Generell KI svarer fra hukommelsen. Verktøyene våre slår det opp – hver eneste gang.', + 'col_generic_label'=> 'Generell KI (ChatGPT · Gemini)', + 'col_dbn_label' => 'Do Better Norge-verktøy', + 'col_generic_s1' => 'Du stiller et spørsmål', + 'col_generic_s2' => 'KI-en søker i hukommelsen sin – trent på hele internett, frem til en bestemt dato', + 'col_generic_s3' => 'Den genererer et svar som høres troverdig ut', + 'col_generic_s4' => 'Den kan sitere lover som ikke finnes, er utdaterte eller gjelder i et annet land', + 'col_dbn_s1' => 'Du stiller et spørsmål', + 'col_dbn_s2' => 'Systemet søker gjennom 220 000+ verifiserte norske juridiske tekstutdrag (RAG – Retrieval Augmented Generation)', + 'col_dbn_s3' => 'Det finner eksakte utdrag via nøkkelord OG via mening (BM25 + vektorsøk, parallelt)', + 'col_dbn_s4' => 'En «reranker» velger de mest relevante resultatene for akkurat din situasjon', + 'col_dbn_s5' => 'En juridisk trent KI skriver svaret ditt – og siterer de faktiske tekstutdragene den nettopp fant', + 'problem_caption' => 'Forskjellen handler ikke om hastighet eller stil. Forskjellen er om svaret er forankret i norsk rett eller ikke.', + + 'analogy_eyebrow' => 'Slik fungerer det – forklart enkelt', + 'analogy_title' => 'Tre ideer som forklarer alt.', + 'a1_icon' => '📚', + 'a1_title' => 'Bibliotekaren', + 'a1_body' => 'Se for deg at du stiller et spørsmål, og i stedet for at KI-en gjetter fra hukommelsen, løper en bibliotekar til hyllene, henter 10 bøker, finner de eksakte avsnittene – og leser dem opp for deg. Det er det RAG betyr. Verktøyene våre gjør dette med 220 000 norske juridiske tekstutdrag, hver eneste gang.', + 'a1_term' => 'RAG – Retrieval Augmented Generation', + 'a2_icon' => '🔍', + 'a2_title' => 'To måter å finne en bok', + 'a2_body' => 'Én tilnærming finner eksakte ord – søk på «§ 4-4 barnevernsloven» finner akkurat det avsnittet. Den andre finner mening – hvis du beskriver situasjonen uten å kjenne lovens navn, finner systemet den likevel. Vi bruker begge samtidig og kombinerer resultatene.', + 'a2_term' => 'BM25-nøkkelordssøk + semantisk vektorsøk', + 'a3_icon' => '⚖️', + 'a3_title' => 'Den andre vurderingen', + 'a3_body' => 'Etter å ha funnet 30 kandidatutdrag, gjennomgår en annen KI dem og setter de mest relevante øverst – slik en erfaren advokat ville sortere gjennom en haug saksmapper og plukke ut de tre som faktisk gjelder din situasjon.', + 'a3_term' => 'Reranker – relevansvurderingsrunde', + + 'graph_eyebrow' => 'Det sammenkoblede lovverket', + 'graph_title' => 'Norsk lov er et nett, ikke en liste.', + 'graph_sub' => 'ChatGPT vet ikke hvilke norske lover som er koblet til hvilke EMK-artikler i akkurat din type sak. Vår tekstsamling er bygd for å følge disse koblingene.', + 'graph_caption' => 'Svaret ditt bygger på alt dette – lov, rettspraksis, internasjonal konvensjon, veiledning – koblet og kryssreferert.', + + 'graph_n1' => 'Ditt spørsmål', + 'graph_n2' => 'barnevernsloven § 4-4', + 'graph_n2_note' => 'akuttvedtak', + 'graph_n3' => 'barneloven § 30 · § 34', + 'graph_n3_note' => 'foreldrerett', + 'graph_n4' => 'EMK artikkel 8', + 'graph_n4_note' => 'retten til familieliv', + 'graph_n5' => '23 EMD-dommer mot Norge', + 'graph_n5_note' => 'Strand Lobben, Johansen, K.O. og V.M. …', + 'graph_n6' => 'Bufdir + Statsforvalter-veiledning', + 'graph_n6_note' => 'forvaltningspraksis', + 'graph_n7' => 'Svaret ditt', + 'graph_n7_note' => 'forankret i alt det ovenstående', + + 'compare_eyebrow' => 'Virkelige eksempler', + 'compare_title' => 'Samme spørsmål. Svært forskjellige svar.', + 'compare_sub' => 'Her er hva som skjer når du stiller et barnevernsspørsmål til generell KI versus verktøyene våre.', + 'compare_th_q' => 'Spørsmålet ditt', + 'compare_th_gpt' => 'Generell KI svarer', + 'compare_th_dbn' => 'Do Better Norge svarer', + 'compare_r1_q' => '«Kan Barnevernet ta barnet mitt uten varsel?»', + 'compare_r1_gpt' => 'Generell beskrivelse av barneverntjenester. Kan referere til svenske, britiske eller amerikanske prosedyrer. Ingen spesifikk lovhjemmel. Ingen sitat du kan verifisere.', + 'compare_r1_dbn' => 'Siterer barnevernsloven § 4-2 (undersøkelsesplikt), § 4-6 (vilkår for akuttvedtak), EMK art. 8 forholdsmessighetstest – med utdragsnummer fra tekstsamlingen.', + 'compare_r2_q' => '«Hvordan klager jeg på et omsorgsovertakelsesvedtak?»', + 'compare_r2_gpt' => 'Beskriver en generell klageprosess. Nevner «den aktuelle myndigheten» uten å navngi den. Fristen kan være feil for Norge.', + 'compare_r2_dbn' => 'Siterer barnevernsloven § 7-2 (nemndbehandling), tvisteloven, klagefrist til Statsforvalteren – med direkte kildelenker.', + 'compare_r3_q' => '«Hva betyr artikkel 8 for saken min?»', + 'compare_r3_gpt' => 'Forklarer EMK artikkel 8 i generelle termer. Ingen omtale av de spesifikke Norge-dommene. Ingen kobling til barnevernsloven.', + 'compare_r3_dbn' => 'Siterer de 4 EMD-dommene mot Norge som er mest relevante for familiegjenforening, kryssreferert med barnevernsloven og Bufdir-veiledning – på vanlig norsk og ditt språk.', + 'compare_caption' => 'Dette er ikke hypotetiske forskjeller. Det er hva brukere opplever hver dag.', + + 'llm_eyebrow' => 'Trent for Norge', + 'llm_title' => 'Ikke en generell KI. En norsk juridisk KI.', + 'llm_body_html' => 'KI-assistenten vår fikk ikke bare tilgang til juridiske dokumenter. Den ble trent spesifikt på norsk barnevernrett – barnevernsloven, barneloven, EMK artikkel 8-saker – slik at den forstår norsk juridisk resonnement, ikke bare norske ord. En generell KI gjetter på juridisk mening. Vår er bygd for det.', + 'llm_badge' => 'Finjustert modell', + 'llm_s1' => 'finjusteringsmetode', + 'llm_s2' => 'barnevernstekstsamling', + 'llm_s3' => 'EMK art. 8-saker', + 'llm_s4' => 'norsk bokmål', + + 'privacy_eyebrow' => 'Ditt personvern', + 'privacy_title' => 'Saksinformasjonen din forlater aldri serverne våre.', + 'privacy_body' => 'I motsetning til ChatGPT eller Gemini kjører verktøyene våre på infrastruktur vi kontrollerer. Saksdetaljene dine sendes aldri til OpenAI, Google eller noe annet tredjeparts KI-selskap. Samtalene dine brukes aldri til å trene noen modell. Det du deler med oss, forblir hos oss.', + + 'cta_title' => 'Klar til å prøve?', + 'cta_sub' => 'Gratis å starte. Ingen juridisk opplæring nødvendig.', + 'btn_open' => 'Åpne verktøyene →', + 'btn_signin_cta' => 'Logg inn →', + ], + + 'uk' => [], // TODO: translate — falls back to 'en' + 'pl' => [], // TODO: translate — falls back to 'en' +]; diff --git a/why-ours.php b/why-ours.php new file mode 100644 index 0000000..4863018 --- /dev/null +++ b/why-ours.php @@ -0,0 +1,417 @@ + if optimised files exist, else shows placeholder */ +function imgSlot(string $slot, string $file, string $label, string $caption, string $prompt): string { + $base = pathinfo($file, PATHINFO_FILENAME); + $webp = __DIR__ . '/assets/images/why-ours/' . $base . '.webp'; + $jpg = __DIR__ . '/assets/images/why-ours/' . $base . '.jpg'; + $webpSrc = 'assets/images/why-ours/' . $base . '.webp'; + $jpgSrc = 'assets/images/why-ours/' . $base . '.jpg'; + $alt = htmlspecialchars($caption); + + $html = '
'; + if (file_exists($webp) && file_exists($jpg)) { + $html .= ''; + $html .= ''; + $html .= '' . $alt . ''; + $html .= ''; + } else { + $html .= '
'; + $html .= '

Image slot ' . htmlspecialchars($slot) . ' — place generated image at assets/images/why-ours/' . htmlspecialchars($file) . '

'; + $html .= '' . htmlspecialchars($label) . ''; + $html .= '
AI image prompt:
' . htmlspecialchars($prompt) . '
'; + $html .= '
'; + } + $html .= '
'; + return $html; +} +?> + + + + + + Why our tools give different answers than ChatGPT · Do Better Norge Tools + + + + + + + + + + + + + + + +
+ + + + + + Legal Tools + +
+ + + + + + +
+
+ + +
+
+

+

+

+ +
+
+ 220K+ + +
+
+ 1,731 + +
+
+ 23 + +
+
+ NO + +
+
+ +
+ + + + +
+
+
+ + + + +
+

+

+

+ +
+ + +
+

+
+
+
+
+
+
+
+
+
+
+ + +
+

+
+
+
+
+
+
+
+
+
+
+
+
+ +
+

+
+ + +
+
+

+

+ +
+
+ +

+

+ +
+
+ +

+

+ +
+
+ +

+

+ +
+
+ + +
+
+ + +
+

+

+

+ +
+
+

+
+
+
+ finds +
+
+
+

+

+
+
+
+ linked to +
+
+
+

+

+
+
+
+ linked to +
+
+
+

+

+
+
+
+ backed by +
+
+
+

+

+
+
+
+ plus +
+
+
+

+

+
+
+
+ becomes +
+
+
+

+

+
+
+ +

+ + +
+ + +
+
+

+

+

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +

+ + +
+
+ + +
+

+

+ +
+
+ +

dbn-legal-agent

+

+ +
+ QLoRA + barnevernsloven + barneloven + ECHR Art. 8 + 220K passages + Norwegian bokmål +
+
+
+
+ QLoRA + +
+
+ 220K+ + +
+
+ 23 + +
+
+ bokmål + +
+
+
+ + +
+ + +
+
+

+

+ +
+

+

+
+ No OpenAI + No Google + GDPR compliant + Servers in EU + Zero training data from users +
+
+
+
+ + +
+

+

+
+ + + + + + +
+
+ + + + +