<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
  <channel>
    <title>Blog Liip</title>
    <link>https://www.liip.ch/fr/blog</link>
    <lastBuildDate></lastBuildDate>
            <item>
      <title>ChatGPT now speaks WebMCP, LiipGPT is ready</title>
      <link>https://www.liip.ch/fr/blog/chatgpt-now-speaks-webmcp-liipgpt-is-ready</link>
      <guid>https://www.liip.ch/fr/blog/chatgpt-now-speaks-webmcp-liipgpt-is-ready</guid>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>Since the end of August, ChatGPT (Codex or Work) supports WebMCP by default. Finally the work we did 6 months ago with <a href="https://www.liip.ch/en/blog/webmcp-making-liipgpt-tools-discoverable-by-browser-ai-agents">integrating WebMCP into LiipGPT</a> pays off. </p>
<p>No more adding MCP servers manually to ChatGPT, just give it a hint where to look (I assume with a more obvious or known domain, it would figure that out by itself). </p>
<p>Example Question:</p>
<blockquote>
<p>When is the next cardboard collection at Quellenstrasse? Check <a href="https://zuericitygpt.ch">zuericitygpt.ch</a></p>
</blockquote>
<p>Answer in ChatGPT:</p>
<blockquote>
<p>The next cardboard collection on Quellenstrasse (8005) is Wednesday, 9 September 2026. (ZüriCityGPT)</p>
</blockquote>
<p>And it didn't just hallucinate it, or somehow find it otherwise, it actually called the MCP tool <code>get_waste_collection</code>.</p>
<p>It also works for follow up questions for a different place or even to check out a City Council resolution (Stadtratsbeschluss), because ZüriCityGPT has maybe the best solution to search for them (and everything else on the City of Zurich website, but that a normal WebSearch usually also figures out).</p>
<figure><a href="https://www.liip.ch/&lt;https://liip.rokka.io/dynamic/o-af-1/84cc51/chatgpt-webmcp.png&gt;" rel="noreferrer" target="_blank"><img alt="" src="https://liip.rokka.io/www_inarticle_5/84cc51/cleanshot-2026-09-03-at-22-21-34.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/84cc51/cleanshot-2026-09-03-at-22-21-34.jpg 2x"></a></figure>
<p>And because I like the approach a lot, I also added WebMCP to our instance of the <a href="https://www.liip.ch/en/blog/city-of-zurich-s-900-open-data-sets-now-have-an-mcp-server">City of Zurich Open Data MCP Server</a> at <a href="https://zurich-opendata-mcp.liipgpt.ch/">https://zurich-opendata-mcp.liipgpt.ch/</a></p>
<p>From the example question in <a href="https://github.com/malkreide/zurich-opendata-mcp">their GitHub repo</a>: </p>
<blockquote>
<p>How many free parking spots are in Zurich right now, and what's the air quality like? Check on <a href="https://zurich-opendata-mcp.liipgpt.ch/">https://zurich-opendata-mcp.liipgpt.ch/</a></p>
</blockquote>
<p>Answer in ChatGPT:</p>
<blockquote>
<p>The service reports 6,862 free spaces across 36 parking facilities, but that figure is not genuinely current: its timestamp is 18 July 2026, 05:27, and several capacity figures are internally inconsistent. So there’s no trustworthy “right now” parking total from this feed.<br />
Air quality is generally good, based on provisional hourly readings from 4 September 2026, 06:00:</p>
<ul>
<li>PM2.5: 4.2–7.0 µg/m³</li>
<li>PM10: 8.1–16.6 µg/m³</li>
<li>Ozone: 7.9–73.7 µg/m³</li>
<li>NO₂: 4.9–49.4 µg/m³ — highest near Schimmelstrasse and Rosengartenstrasse</li>
</ul>
<p>In short: low particulate pollution, with moderately elevated traffic-related NO₂ at central roadside stations. Source: Zürich Open Data MCP.</p>
</blockquote>
<figure><a href="https://liip.rokka.io/dynamic/o-af-1/8c5d8e/cleanshot-2026-09-04-at-08-52-53.png" rel="noreferrer" target="_blank"><img alt="" src="https://liip.rokka.io/www_inarticle_5/8c5d8e/cleanshot-2026-09-04-at-08-52-53.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/8c5d8e/cleanshot-2026-09-04-at-08-52-53.jpg 2x"></a></figure>
<p>These examples are not groundbreaking, even if asking for "recycling collection times" is always a beloved topic on our public chatbots and Google also doesn't know them by heart. But if websites start adding more useful WebMCP endpoints to their websites, beyond just searching their content, it will enhance the experience for people using ChatGPT et al. Like adding items to a shopping cart or sending a report about a broken street sign or just help filling out a webform without actually sending it. Without them even knowing what WebMCP or MCP is or registering anything explicitly.</p>
<p>Very much looking forward to future use cases for WebMCP and how it will improve the experience with tools like ChatGPT (and others, when they implement it)</p>
<p>See also <a href="https://learn.chatgpt.com/docs/webmcp">OpenAI's documentation about WebMCP</a> for more about their implementation.</p>]]></description>
    </item>
        <item>
      <title>Apertus 1.5 - 6 Ways to Try Out Switzerland&#039;s Updated AI Model</title>
      <link>https://www.liip.ch/fr/blog/apertus-1-5-6-ways-to-try-out-switzerland-s-updated-ai-model</link>
      <guid>https://www.liip.ch/fr/blog/apertus-1-5-6-ways-to-try-out-switzerland-s-updated-ai-model</guid>
      <pubDate>Thu, 03 Sep 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>On July 24, 2026, the <a href="https://ai.ethz.ch/news-and-events/ai-center-news/2026/07/apertus-15-building-the-next-generation-of-open-ai-infrastructure.html">Swiss AI Initiative</a> — EPFL, ETH Zurich, and CSCS — released <a href="https://publicai.co/stories/apertus-1-5">Apertus 1.5</a>, another step forward for open, transparent, and sovereign AI. Building on Apertus 1.0, this update brings a massively expanded context window (up 4x, to 262,144 tokens), an optional "Thinking Mode" for reasoning, native image understanding (with experimental audio input), and meaningfully better instruction-following and tool use.</p>
<p>At Liip, we're glad to see this foundation model keep improving — it's what powers sovereign, ethical AI use cases for organizations in Switzerland and beyond. We <a href="https://www.liip.ch/en/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model">wrote up our own hands-on comparison</a> after running Apertus in production on ZüriCityGPT, so if you want the deep-dive data, that's the place to look. Here, in the spirit of our <a href="https://www.liip.ch/en/blog/apertus-4-ways-to-try-out-switzerland-s-new-ai-model">original &quot;4 ways&quot; post</a>, we're keeping it practical: 6 ways to try Apertus 1.5 yourself, today.</p>
<h2>1. Try Apertus 1.5 on Public AI</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/efe186/01-public-ai-thinking-mode.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/efe186/01-public-ai-thinking-mode.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/efe186/01-public-ai-thinking-mode.jpg 2x"></a><figcaption>Apertus 1.5's Thinking Mode running on Public AI</figcaption></figure>
<p>Use this when you just want to try the model in a chat window, right now, without installing anything or writing a line of code. <a href="https://publicai.co/">Public AI</a>'s mission is to make open AI accessible to everyone, and it remains one of the easiest ways to access Switzerland's sovereign models. It runs on Public AI's own inference utility, hosted within Swiss jurisdiction, and with the 1.5 release you can put the improved multilingual handling — including the well-liked Schwizerdütsch toggle — to the test yourself.</p>
<p>Create a free account at <a href="https://chat.publicai.co/">chat.publicai.co</a> to try the full 70B reasoning model, and make sure to switch on the new <strong>Thinking Mode</strong>. Prefer not to sign in? <a href="https://publicai.co/chat">publicai.co/chat</a> gives you the 8B version with no login required.</p>
<h2>2. Try Apertus 1.5 with RAG using LiipGPT</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/4809b7/02-liipgpt-zuericitygpt-oss.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/4809b7/02-liipgpt-zuericitygpt-oss.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/4809b7/02-liipgpt-zuericitygpt-oss.jpg 2x"></a><figcaption>Apertus 1.5 answering a question via LiipGPT's open-source ZüriCityGPT integration</figcaption></figure>
<p>Use this when you want to see Apertus power a real Retrieval-Augmented Generation (RAG) chatbot that answers questions grounded in your own documents, rather than a bare chat window. <a href="https://liipgpt.ch">LiipGPT</a>, our generative AI platform, also runs on open-source models, and we're updating our open-source implementations to use Apertus 1.5. The new 262,144-token context window — 4x the original — is especially useful here: it lets our RAG setups pull in much larger documents, reports, and datasets at once without losing detail.</p>
<p>You can see this in action in our open-source integration: <a href="https://oss.zuericitygpt.ch/">oss.zuericitygpt.ch</a>.</p>
<h2>3. Try Apertus 1.5 in TextMate</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/2422da/03-textmate-apertus-revision.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/2422da/03-textmate-apertus-revision.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/2422da/03-textmate-apertus-revision.jpg 2x"></a><figcaption>TextMate revising a text using Apertus 1.5</figcaption></figure>
<p>Use this when you want to feel the model's improvements on your own everyday writing — a report to tidy up, a text to translate — without any setup at all. <a href="https://liip-textmate.liipgpt.ch/">TextMate</a>, our LiipGPT module for text correction, plain-language rewriting, and translation across 12+ languages, now offers Apertus 1.5 as a model option too. It's a good way to get a feel for the model's improved instruction-following on everyday editorial work — correcting, rewriting, or translating your own text.</p>
<p>Try it directly at <a href="https://liip-textmate.liipgpt.ch/">liip-textmate.liipgpt.ch</a>.</p>
<h2>4. Download and test Apertus 1.5 locally</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/df7e79/04-huggingface-apertus-v1-5-8b.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/df7e79/04-huggingface-apertus-v1-5-8b.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/df7e79/04-huggingface-apertus-v1-5-8b.jpg 2x"></a><figcaption>The Apertus 1.5 8B model page on Hugging Face</figcaption></figure>
<p>Use this when you need the model running fully under your own control — offline, air-gapped, or wired directly into your own application, with nothing sent to a third party. As with every Apertus release, the 1.5 model family — both the 8B and 70B versions — remains fully open: open weights, open data, open training recipes. You can download the models directly from Hugging Face (<a href="https://huggingface.co/swiss-ai/Apertus-v1.5-8B">swiss-ai/Apertus-v1.5-8B</a> and <a href="https://huggingface.co/swiss-ai/Apertus-v1.5-70B">swiss-ai/Apertus-v1.5-70B</a>). If you'd rather not manage inference yourself, Infomaniak also offers Apertus 1.5 70B through their API.</p>
<p>The 8B version is well-optimized and runs comfortably on modern hardware. On a Mac, <a href="https://github.com/ml-explore/mlx-lm">mlx-lm</a> gets you running locally via Apple Silicon's unified memory and Metal GPU acceleration; with quantization, people have gotten it working even on an <a href="https://digitalpathlines.ch/2026/08/12/shrinking-apertus-1-5-8b-for-an-8-gb-laptop-gpu/">8GB laptop GPU</a>. On other setups, <a href="https://github.com/vllm-project/vllm">vLLM</a> is a solid way to serve it and explore the native image-understanding features.</p>
<h2>5. Explore building your own chatbots with Open WebUI</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/f659b1/05-open-webui-side-by-side.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/f659b1/05-open-webui-side-by-side.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/f659b1/05-open-webui-side-by-side.jpg 2x"></a><figcaption>Liip's Open WebUI instance answering the same prompt side by side on aisingapore/Gemma-SEA-LION-v4-27B-IT and swiss-ai/apertus-v1.5-70b-thinking</figcaption></figure>
<p>Use this when you want to build a custom, self-hosted chatbot for your team or organization — and compare Apertus 1.5 against other models before committing to one. <a href="https://www.liip.ch/en/open-webui">Open WebUI</a> remains a great self-hosted, open-source platform for building ChatGPT-like custom chatbot experiences. With Apertus 1.5's improved tool use and instruction-following, it's easier than ever to build bespoke assistants tailored to your organization's workflows.</p>
<p>Apertus 1.5 plugs into Open WebUI just like any other model — it's one of the models available on our own internal Open WebUI instance. One of the platform's best features is the ability to run the same prompt against several LLMs at once — handy if your team wants to quickly see how Apertus 1.5 stacks up against other models for your specific use case.</p>
<h2>6. Let Project Agent draft a ticket for you</h2>
<figure><a href="https://liip.rokka.io/www_inarticle_5/bd9b2a/06-project-agent-youtrack-ticket.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/bd9b2a/06-project-agent-youtrack-ticket.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/bd9b2a/06-project-agent-youtrack-ticket.jpg 2x"></a><figcaption>Project Agent (PAL) drafting a YouTrack ticket using Apertus 1.5's tool-calling</figcaption></figure>
<p>Use this when you want to see Apertus 1.5 not just answer questions but actually do something — turning a rough problem description into a properly researched, ready-to-file ticket. Our internal Project Agent (PAL) — a conversational agent platform Liip teams use on their own projects — now runs on Apertus 1.5 too, and the model's improved tool use makes a real difference here. Point it at a rough problem description, and it uses tool calls to dig into the project itself: reading the git history, searching the issue tracker, and pulling in the relevant wiki pages, then drafts a properly scoped improvement ticket — priority, affected component, concrete impact — ready to send straight to YouTrack.</p>
<p>It's a good showcase of what "better tool use" actually buys you in practice: not a chatbot answering questions about tools, but a model reliably calling the right ones, in the right order, to produce something you'd otherwise have written by hand.</p>
<hr />
<p>How do you want to put the new multimodal and reasoning capabilities of secure, sovereign large language models to work? Let's explore together how to build your own Open WebUI–based chatbot infrastructure, powered by Apertus 1.5.</p>
<p>Looking forward to hearing from you.</p>
<p>Next, we're looking forward to exploring Apertus 1.5's translation capabilities in more depth.</p>]]></description>
    </item>
        <item>
      <title>Apertus 1.5 - first impressions from using Switzerland&#8217;s updated AI model</title>
      <link>https://www.liip.ch/fr/blog/apertus-1-5-first-impressions-from-using-switzerland-s-updated-ai-model</link>
      <guid>https://www.liip.ch/fr/blog/apertus-1-5-first-impressions-from-using-switzerland-s-updated-ai-model</guid>
      <pubDate>Wed, 26 Aug 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>On July 24, the Swiss AI Initiative — EPFL, ETH Zurich, and CSCS — released Apertus 1.5. By July 25, we had already deployed it to <a href="https://oss.zuericitygpt.ch">oss.zuericitygpt.ch</a>. In this blogpost we will take a look at our first impressions testing Apertus 1.5 on the OSS version of ZueriCityGPT.</p>
<p>It was not just the open-source side that upgraded. The production system at <a href="https://zuericitygpt.ch">zuericitygpt.ch</a> switched from GPT-4o-mini to GPT-5.6 Luna — the cost-efficient tier in OpenAI's latest model family. So in the following, we will take a look at the effect of two simultaneous model upgrades on ZueriCityGPT, tested against the same knowledge base.</p>
<h2>What is new in each model</h2>
<p><strong>Apertus 1.5</strong> adds 2 trillion tokens of continued pretraining to the 70B model. For the first time, the model accepts images alongside text, and audio input is available experimentally. Instruction following — a clear weak spot in 1.0 — was a focus of the update. The model remains fully open-source under Apache 2.0, trained on the Alps supercomputer at CSCS.</p>
<p><strong>GPT-5.6 Luna</strong> is the smallest model in OpenAI's <a href="https://openai.com/index/gpt-5-6/">GPT-5.6 family</a> (Sol / Terra / Luna), released on July 9, 2026. It supports a million-token context window and is designed for high-volume, latency-sensitive workloads — the profile of a public-sector chatbot like ZüriCityGPT. The production system ran on GPT-5.4-nano for most of July before switching to Luna on July 31; our controlled test on August 7 ran against Luna.</p>
<h2>A disclaimer about the comparison</h2>
<p>An important point needs to be reiterated, as it was often misunderstood in the first Apertus release: it is not possible to directly compare the performance of a Large Language Model (LLM) like Apertus to an integrated solution like Luna, which does not provide access directly to the closed LLM inside of it. The software stack that is run by OpenAI to optimize interactions with their models is proprietary, whereas Apertus is running on an open-source stack that you can deploy in the cloud or on-premises.</p>
<p>Similarly, while ZueriCityGPT has an OSS model version, not all source code of the underlying system LiipGPT has been open-sourced at this point. LiipGPT ships with a lot of features that a sophisticated Retrieval-Augmented-Generation (RAG)-system needs in order to provide you with accurate answers based on a curated knowledge base.</p>
<p>Both models run on the same <a href="https://liipgpt.ch">LiipGPT</a> platform and the same knowledge base of official content from <a href="https://www.stadt-zuerich.ch">stadt-zuerich.ch</a>. Note that the OSS version also uses different models for embedding (Qwen3-Embedding-0.6B) and reranking (BGE-Reranker), which can affect answer quality. Neither system uses web search — all answers are generated exclusively from documents retrieved from the stadt-zuerich.ch knowledge base via RAG.</p>
<p>The OSS version of ZüriCityGPT will add 16k tokens from the chunks into the prompt while the Luna version adds 32k tokens. This is because the price of Apertus tokens is roughly 4 times higher than Luna model tokens. We therefore actively choose to constrain the amount of tokens used for cost-control and to achieve a similar cost to question ratio.</p>
<h2>The numbers</h2>
<p>We have two data sources: historical quality metrics from real user traffic (measured automatically by the LiipGPT platform), and a controlled test where we asked 20 identical questions to both systems on the same day.</p>
<p>A note on how to read the comparisons: throughout this post, we make two kinds of comparison. <strong>Before → after</strong> compares the same system across its model upgrade (Apertus 1.0 → 1.5, or GPT-4o-mini → GPT-5.6 Luna). <strong>Head-to-head</strong> compares the two systems against each other on the same question, same day. We always name the specific models so it is clear which comparison we are making.</p>
<h3>Historical metrics — real user traffic</h3>
<p>Over the past months, the LiipGPT platform has scored every answer using our three established metrics:</p>
<ul>
<li>Match Rate (MR: is the answer acceptable?)</li>
<li>Match Rate +1 (MR+1: is the answer actually good?)</li>
<li>Faithfulness (Faith: does the answer stick to the source documents?).</li>
</ul>
<p>In the following, we aggregate each model's entire deployment period. This gives the clearest before-and-after picture.</p>
<figure><a href="https://liip.rokka.io/dynamic/b60ce6/chart-comparison-fullrange.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/b60ce6/chart-comparison-fullrange.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/b60ce6/chart-comparison-fullrange.jpg 2x"></a><figcaption>Full-range model comparison from real user traffic.</figcaption></figure>
<table>
<thead>
<tr>
<th>Period</th>
<th>System</th>
<th>Model</th>
<th>n</th>
<th>Avg Score</th>
<th>MR</th>
<th>MR+1</th>
<th>Faith</th>
</tr>
</thead>
<tbody>
<tr>
<td>Jan–Jun 2026</td>
<td>PROD</td>
<td>GPT-4o-mini</td>
<td>3,935</td>
<td>4.44</td>
<td>98.7%</td>
<td>70.3%</td>
<td>0.83</td>
</tr>
<tr>
<td>Jul 31–Aug 14</td>
<td>PROD</td>
<td>GPT-5.6 Luna</td>
<td>216</td>
<td>4.81</td>
<td>99.1%</td>
<td>86.6%</td>
<td>0.84</td>
</tr>
<tr>
<td>Jan–Jun 2026</td>
<td>OSS</td>
<td>Apertus 1.0</td>
<td>1,466</td>
<td>3.73</td>
<td>91.5%</td>
<td>40.2%</td>
<td>0.53</td>
</tr>
<tr>
<td>Jul 25–Aug 14</td>
<td>OSS</td>
<td>Apertus 1.5</td>
<td>287</td>
<td>3.99</td>
<td>87.1%</td>
<td>59.2%</td>
<td>0.56</td>
</tr>
</tbody>
</table>
<p>Apertus 1.5 made the bigger relative leap: Match Rate +1 jumped from 40% to 59% — a 19 percentage point improvement. GPT-5.6 Luna went from 70% to 87%, a 16 percentage point jump. The absolute gap narrowed only slightly, from 30 points to 27.</p>
<h3>Controlled test — 20 identical questions</h3>
<p>We repeated the exact same <a href="https://www.liip.ch/en/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model#the-20-question-test">20 questions from the original blog post</a>, asking them on both systems on August 7, 2026. One person asked all 20 questions on each system — this is not a user study but a controlled comparison isolating model changes from knowledge-base changes.</p>
<figure><a href="https://liip.rokka.io/dynamic/5ee10f/chart-comparison-controlled.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/5ee10f/chart-comparison-controlled.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/5ee10f/chart-comparison-controlled.jpg 2x"></a><figcaption>Three quality metrics compared across the controlled test — 20 identical questions.</figcaption></figure>
<table>
<thead>
<tr>
<th>#</th>
<th>Question</th>
<th>Apertus 1.0</th>
<th>Apertus 1.5</th>
<th>GPT-4o-mini</th>
<th>GPT-5.6 Luna</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Who is the mayor of the city?</td>
<td>3</td>
<td>2</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>2</td>
<td>which day will paper get collected in 8004</td>
<td>6</td>
<td>6</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>3</td>
<td>do you understand english?</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>4</td>
<td>was gibts neues im zoo?</td>
<td>3</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>5</td>
<td>what are the stadtammanns doing?</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>what do you know?</td>
<td>3</td>
<td>3</td>
<td>5</td>
<td>4</td>
</tr>
<tr>
<td>7</td>
<td>What are the rules to use the Zurich waste dump?</td>
<td>6</td>
<td>3</td>
<td>3</td>
<td>6</td>
</tr>
<tr>
<td>8</td>
<td>wie alt ist die stadt zürich?</td>
<td>5</td>
<td>6</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>9</td>
<td>can you speak english?</td>
<td>3</td>
<td>5</td>
<td>3</td>
<td>5</td>
</tr>
<tr>
<td>10</td>
<td>Wer bist du?</td>
<td>3</td>
<td>6</td>
<td>6</td>
<td>1</td>
</tr>
<tr>
<td>11</td>
<td>Est-ce que tu parles français?</td>
<td>3</td>
<td>6</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>12</td>
<td>Was macht Corine Mauch?</td>
<td>5</td>
<td>5</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>13</td>
<td>What is Smart City?</td>
<td>4</td>
<td>5</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>14</td>
<td>when is the next zürifest</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>15</td>
<td>How many people live in Zurich</td>
<td>5</td>
<td>6</td>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>16</td>
<td>How do I dispose of Teflon pans?</td>
<td>3</td>
<td>2</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>17</td>
<td>What is Zurich doing for climate protection?</td>
<td>5</td>
<td>5</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>18</td>
<td>Where do I do my tax declaration?</td>
<td>4</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>19</td>
<td>Who is the head of the OIZ?</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>20</td>
<td>How old is the city of Zurich?</td>
<td>5</td>
<td>2</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td></td>
<td><strong>Average</strong></td>
<td><strong>4.40</strong></td>
<td><strong>4.70</strong></td>
<td><strong>4.90</strong></td>
<td><strong>5.15</strong></td>
</tr>
</tbody>
</table>
<p>Apertus 1.5 improved its average score from 4.40 to 4.70. GPT-5.6 Luna came in at 5.15.</p>
<h4>How did the three key metrics change?</h4>
<p>Our automated scoring scale runs from 1 (wrong or refuses to answer) through 3 (partially correct) to 6 (excellent). We define "acceptable" as any score above 2 — the answer is at least partially useful. "Good" means above 3 — the answer is substantively correct and helpful, not just borderline.</p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Apertus 1.0</th>
<th>Apertus 1.5</th>
<th>Δ</th>
<th>GPT-4o-mini</th>
<th>GPT-5.6 Luna</th>
<th>Δ</th>
</tr>
</thead>
<tbody>
<tr>
<td>Acceptable (&gt;2)</td>
<td>100% (20/20)</td>
<td>85% (17/20)</td>
<td>−15pp</td>
<td>100% (20/20)</td>
<td>95% (19/20)</td>
<td>−5pp</td>
</tr>
<tr>
<td>Good (&gt;3)</td>
<td>65% (13/20)</td>
<td>75% (15/20)</td>
<td>+10pp</td>
<td>90% (18/20)</td>
<td>95% (19/20)</td>
<td>+5pp</td>
</tr>
<tr>
<td>Faithfulness</td>
<td>0.60</td>
<td>0.61</td>
<td>+0.01</td>
<td>0.85</td>
<td>0.80</td>
<td>−0.05*</td>
</tr>
</tbody>
</table>
<p>*The faithfulness delta for Luna is a measurement artifact — see the discussion in "What we learned" below.</p>
<p>Apertus 1.5 gives fewer acceptable answers (85% vs 100%) but more good ones (75% vs 65%). This is the "honest refusal" pattern: the model no longer produces borderline answers that scrape past the threshold. When it answers, it answers well; when it cannot, it says so. The Apertus team confirmed this matches their own testing with OR-Bench, a benchmark designed to measure over-refusal behaviour. GPT-5.6 Luna shows a milder version of the same trend.</p>
<p>In a head-to-head battle, GPT-5.6 Luna won 6 questions, Apertus 1.5 won 2, and 12 were ties. Compare that to the original: GPT-4o-mini won 9, Apertus 1.0 won 3, with 8 ties. Ties grew from 8 to 12 — meaning Apertus now matches the production model on most questions.</p>
<h3>Matched questions — real users, same question, both systems</h3>
<p>Twenty-five real user questions were asked on both systems during the Apertus 1.5 period. The questions from different users who but we chose to simulate them on both systems to achieve a comparison.</p>
<p>On matched questions, the gap in average score is just 0.16 points (4.92 vs 5.08). Match Rate: 96% vs 100%. Match Rate +1: 76% vs 92%. Faithfulness: 0.59 vs 0.83.</p>
<h2>The example questions revisited</h2>
<p>In the original blog, we highlighted specific scenarios to make the numbers tangible. Here is how they changed — plus two new ones that show the practical impact of both upgrades.</p>
<h3>"Est-ce que tu parles français?" — both answer now</h3>
<p>This was the most visible failure in the original comparison. When asked "Do you speak French?", GPT-4o-mini responded fluently in French. Apertus 1.0 declined, saying it could not answer questions about its own linguistic capabilities.</p>
<p>Apertus 1.5 now answers: <em>"Oui, je parle français. Je suis à votre disposition pour vous aider dans la langue que vous préférez."</em> The IFEval improvement that the Apertus team targeted has real practical impact.</p>
<figure><a href="https://liip.rokka.io/dynamic/daed48d/screenshot-french-q11.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/daed48d/screenshot-french-q11.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/daed48d/screenshot-french-q11.jpg 2x"></a><figcaption>Both systems now respond fluently in French — GPT-5.6 Luna left and Apertus 1.5 right.</figcaption></figure>
<h3>Population — improved but still off</h3>
<p>In the original test, GPT-4o-mini returned Zurich's current population (452,421), while Apertus gave a 2013 figure. Apertus 1.5 now returns a more up-to-date number but uses the wrong date. GPT-5.6 Luna cites the correct combination of time and population. Apertus 1.5 plays a part in this, but retrieval logs tell a different story: the OSS embedding model (Qwen3-Embedding-0.6B) ranks old statistical PDFs from 2010–2013 above current population pages, and because those PDFs are large, they fill the smaller context window (16k vs production) before up-to-date sources are included. The production system's embedding model (OpenAI text-embedding-3-small) retrieves the current data as its top result.</p>
<figure><a href="https://liip.rokka.io/dynamic/1a0dda/screenshot-population-q15.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/1a0dda/screenshot-population-q15.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/1a0dda/screenshot-population-q15.jpg 2x"></a><figcaption>Both models return the current population figure, but Apertus cites the wrong date — GPT-5.6 Luna left and Apertus 1.5 right.</figcaption></figure>
<h3>Waste dump — the tables turned</h3>
<p>This was Apertus 1.0's showcase win in the original blog: scoring 6/6 where GPT-4o-mini scored 3/6. In 1.5, the roles reversed. GPT-5.6 Luna now delivers a comprehensive answer. Apertus 1.5 asks the user to specify what kind of waste they mean. This is the clearest example of Apertus 1.5's new pattern: better instruction following sometimes means it asks clarifying questions rather than making assumptions.</p>
<figure><a href="https://liip.rokka.io/dynamic/d90d8e/screenshot-waste-q7.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/d90d8e/screenshot-waste-q7.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/d90d8e/screenshot-waste-q7.jpg 2x"></a><figcaption>GPT-5.6 Luna now provides detailed waste disposal information left. Apertus 1.5 asks for clarification right where 1.0 gave a direct answer.</figcaption></figure>
<h3>"Who is the mayor?" — the honest refusal in practice</h3>
<p>This question illustrates why acceptable answers dropped from 100% to 85%. GPT-5.6 Luna correctly answered "Raphael Golta". Apertus 1.5 refused: "The provided information does not contain the name of the current mayor of the city." Rather than guessing like 1.0 did (which returned the outdated name "Corine Mauch"), 1.5 admits the gap. This is a retrieval issue, likely amplified by the smaller OSS embedding model.</p>
<figure><a href="https://liip.rokka.io/dynamic/5006d9/screenshot-mayor-q1.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/5006d9/screenshot-mayor-q1.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/5006d9/screenshot-mayor-q1.jpg 2x"></a><figcaption>GPT-5.6 Luna correctly names Raphael Golta left. Apertus 1.5 refuses — it cannot find the name in the retrieved documents right.</figcaption></figure>
<h3>"was gibts neues im zoo?" — Apertus finds its voice in German</h3>
<p>Apertus 1.0 scored 3/6 — a vague, generic answer. Apertus 1.5 now delivers a detailed German response covering the Lewa Savanne, the Kaeng Krachan Elefantenpark, and the Zooseilbahn controversy. It scores 5/6, matching GPT-5.6 Luna.</p>
<p>This is notable because the knowledge base is predominantly German, and zoo news is the kind of practical, frequently-asked city question where a chatbot needs to perform. Apertus 1.0 struggled to synthesize multiple retrieved documents into a coherent answer; 1.5 does this naturally. The improvement is not about finding the right documents — the RAG pipeline retrieved them before, too — but about what the model does with them once retrieved.</p>
<figure><a href="https://liip.rokka.io/dynamic/963092/screenshot-zoo-q4.jpg"><img alt="" src="https://liip.rokka.io/www_inarticle_5/963092/screenshot-zoo-q4.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/963092/screenshot-zoo-q4.jpg 2x"></a><figcaption>Both systems now give detailed zoo news — GPT-5.6 Luna left, Apertus 1.5 right. Both score 5/6.</figcaption></figure>
<h2>What we learned</h2>
<p><strong>The quality gap is closing, from both sides.</strong> Apertus 1.5 narrowed the gap substantially — but both models got better at the same time. On matched real-user questions, the average score difference is just 0.16 points. On the controlled test, the gap went from 0.50 (4.40 vs 4.90) to 0.45 (4.70 vs 5.15).</p>
<p><strong>Instruction following improved — with a tradeoff.</strong> Apertus 1.0 had a clear weakness in instruction following (IFEval 44%). In 1.5, the French language question works, the identity answer is clean, and the English responses are more natural. But the same improvement created a new pattern: when retrieved documents do not clearly contain the answer, the model now refuses rather than attempting to synthesize. This dropped the controlled-test Match Rate from 100% to 85%.</p>
<p><strong>The English/German gap persists — but it is not the model.</strong> We asked "wie alt ist die stadt zürich?" in German and "How old is the city of Zurich?" in English. Apertus 1.5 scored 6/6 on the German version and 2/6 on the English version. The gap most likely comes from the OSS embedding model struggling with cross-lingual retrieval against the predominantly German knowledge base.</p>
<p><strong>Faithfulness requires careful measurement.</strong> The faithfulness numbers initially included refusal answers, which led to low scores because the refusal obviously cannot be grounded in facts. On that basis, GPT-5.6 Luna scores 0.84 — essentially identical to GPT-4o-mini's 0.83. Apertus improved slightly (0.53 to 0.56 in production traffic, 0.60 to 0.61 in the controlled test). "Faithfulness" is our platform's metric for how well the answer sticks to the retrieved sources — it is not a term the Apertus team uses internally, but they confirmed that general accuracy improvement and alignment work are ongoing goals. The gap between Apertus and the production system (0.56 vs 0.84) depends as much on how the RAG pipeline surfaces and frames source material as on the model itself.</p>
<p><strong>Both systems benefit equally from knowledge base updates.</strong> The knowledge base now correctly reflects that Raphael Golta replaced Corine Mauch as Stadtpräsident in May 2026. Both models handle this correctly — confirming that the LiipGPT platform's RAG pipeline works as designed: model-agnostic, with the knowledge base as the single source of truth.</p>
<h2>Looking ahead</h2>
<p>Compared to our recent test of Apertus 1.0, the picture has shifted meaningfully. Back then, Apertus was an experiment with many limitations. Apertus 1.5 seems to handle many questions at the same level as GPT-5.6 Luna. The cases where it still falls short (faithfulness, cross-lingual retrieval) are increasingly about other open-source components involved, less on the model itself. But in our test field of RAG application, the cost ratio is important. If you compare the token cost of GPT-5.6 Luna on Azure with the token cost of Apertus 1.5 70B on Infomaniak, the Apertus model will cost you roughly 4 times as much as the GPT model. Obviously there are other advantages like enhanced data sovereignty and higher ethical standards in training the model but still, being able to run Apertus 1.5 in sizes between 8B and 70B would help achieve a better cost to value ratio in our case.</p>
<p>We are sharing these results with the Apertus team and the wider community for review. As before, our aim is not to provide a scientific benchmark but a practical report from a production deployment. Consider that these are just our first impressions, and we are looking forward to further test Apertus with other RAG-deployments and in more use case scenarios. If you would like to test how Apertus 1.5 works when refining brand text, our latest <a href="https://liip-textmate.liipgpt.ch/">TextMate</a> has the model available as well.</p>
<p>The question from our <a href="https://www.liip.ch/en/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model">last post</a> — "how much quality gap are you willing to accept for full sovereignty?" — now has a different answer. On most questions, the answer quality is equivalent. The remaining gap is in faithfulness and source attribution — Apertus is improving, and GPT-5.6 Luna maintains the same level as its predecessor once measurement artifacts are accounted for. Closing that gap will require improvements to the open-source RAG stack (embedding, reranking) as well as finding a good mix between model size and speed / price and might be less focused on the language model itself.</p>
<p>Please do not hesitate to <a href="https://www.liip.ch/en/team/josef-kruckenberg">contact me</a> if you have any questions about Apertus or AI solutions in general; I’d be delighted to discuss this with you. </p>
<p><strong>Acknowledgements</strong></p>
<p>Thank you to the <a href="https://ai.ethz.ch/news-and-events/ai-center-news/2026/07/apertus-15-building-the-next-generation-of-open-ai-infrastructure.html">Swiss AI Initiative</a> — EPFL, ETH Zurich, and CSCS — for continuing to develop Apertus as a public good. Thank you Oleg Lavrovsky and Martin Renou for reviewing a draft of this post and providing feedback from the Apertus team's perspective.</p>
<p>Thank you <a href="https://www.liip.ch/de/team/chregu">Christian Stocker</a> and the <a href="https://liipgpt.ch">LiipGPT</a> team for deploying the update within 24 hours of release.</p>
<p>Thank you <a href="https://publicai.ch/">Public AI</a> and <a href="https://www.infomaniak.com/en/hosting/ai-services/open-source-models">Infomaniak</a> for hosting Apertus inference for us.</p>
<p>Parts of this analysis were prepared with the help of Claude. The data was collected and scored automatically by the LiipGPT platform.</p>]]></description>
    </item>
        <item>
      <title>De Cercle en Cercle sans tourner en rond: ma premi&#232;re ann&#233;e chez Liip</title>
      <link>https://www.liip.ch/fr/blog/de-cercle-en-cercle-sans-tourner-en-rond-ma-premiere-annee-chez-liip</link>
      <guid>https://www.liip.ch/fr/blog/de-cercle-en-cercle-sans-tourner-en-rond-ma-premiere-annee-chez-liip</guid>
      <pubDate>Tue, 11 Aug 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>Ce n'était pas un hasard. C'est ma formatrice Petra qui a planifié cela ainsi. Elle voulait que je découvre le plus de Circles et de Liipers possible, et que je coche le plus d'objectifs de formation possible en chemin. Au final, ce qui comptait, c'était où il y avait du travail et un encadrement pour moi, pas un plan fixe sur papier. Pourtant, avec le recul, un ordre clair s'est dessiné, et c'est justement cet ordre qui a fait la différence. Chaque Circle m'a donné quelque chose dont j'ai eu besoin dans le suivant.</p>
<h3>Du 1er août au 1er novembre, j'étais dans le Finance Circle. C'est là que tout a commencé</h3>
<p>J'ai accompagné le déménagement du domaine Finance hors de notre wiki Atlassian. La nouvelle solution n'était pas encore décidée. Alors j'ai d'abord tout mis sur Google Drive. Ça ressemble à un simple rangement. En réalité, c'était un bon point de départ pour voir à quel point les connaissances s'accumulent chez Liip, et où elles se trouvent.</p>
<p>Mes tâches dans le Circle :</p>
<ul>
<li>La responsabilité de notre adresse e-mail Finance, où arrivent toutes les factures. Je les ai vérifiées et saisies dans RMA, notre système de finance.</li>
<li>Le rapprochement mensuel des cartes de crédit, pour lequel je cherchais chaque fois du potentiel d'automatisation.</li>
<li>La mise à jour des archives NDA. J'ai repris tout l'historique et construit quelques automatisations dans Google Sheets, pour que plus personne n'ait à chercher à la main où se trouve tel ou tel contrat.</li>
</ul>
<p>Ce que j'ai le plus aimé, c'était de pouvoir chercher librement du potentiel d'automatisation et faire des recherches là-dessus. Les grands transferts de données étaient moins passionnants. Un bon conseil pour ça : lancer un podcast, et ça passe tout seul. La tâche la plus typique du Finance Circle, pour moi, c'était le rapprochement mensuel des cartes de crédit. Exactement le genre de travail qui fait tourner une entreprise en arrière-plan.</p>
<p><strong>Dans le Finance Circle, je n'ai pas appris des chiffres en premier lieu, j'ai appris comment Liip fonctionne comme entreprise.</strong></p>
<h3>Du 1er novembre au 1er février, j'étais dans le <a href="https://www.liip.ch/fr/services/development/cms/drupal">Drupal</a> Zürich Circle. C'est là que les choses sont devenues plus concrètes</h3>
<p>Ici, j'ai pu pour la première fois endosser un peu le rôle de PO. Avec Petra, j'ai accompagné un projet. Sur d'autres projets, j'ai d'abord observé et pris en charge de petites tâches pour comprendre le business derrière. C'était un rythme différent du Finance Circle. Au lieu de reprendre des processus existants, je devais comprendre comment un projet client naît, depuis la première demande jusqu'à la réalisation.</p>
<p>Plus tard, des tâches plus importantes sont arrivées :</p>
<ul>
<li>Le PO testing après la première réalisation par l'équipe de développement</li>
<li>Un manuel pour le backend Drupal, que j'ai écrit de zéro</li>
</ul>
<p>Pour ce manuel, les explications devaient être assez simples pour que même quelqu'un sans bagage en code puisse s'en servir. C'était le plus grand exercice pour moi.</p>
<figure><img alt="" src="https://liip.rokka.io/www_inarticle_5/85395e/liipgpt-manual-fr.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/85395e/liipgpt-manual-fr.jpg 2x"></figure>
<p>Même si c'est un Circle de production chez Liip, je n'y ai jamais codé moi-même. À l'école professionnelle, j'ai eu affaire à Python. Ce n'était vraiment pas mon truc, cela dit. Ce que j'apprécie beaucoup : Petra me pousse toujours vers le code dans nos syncs, en m'expliquant ou en me montrant des choses. Dans le Circle lui-même, j'ai eu beaucoup à faire avec le backend et le frontend, mais jamais directement dans le code. Le moment le plus cool pour moi, c'était de terminer le manuel. Ensuite sont arrivées beaucoup de réactions positives et reconnaissantes.</p>
<p><strong>Dans le Drupal Zürich Circle, j'ai appris ce que Liip représente vraiment comme entreprise.</strong></p>
<h3>Du 1er février au 1er août, j'étais dans le Design et Content Circle. C'est là que j'ai pu montrer ce que j'avais appris</h3>
<p>Dans ce Circle, tout tournait beaucoup autour de l'IA avec un focus sur le contenu, que ce soit la création, le traitement ou les guidelines. Pour des projets clients, j'ai pu :</p>
<ul>
<li>Rédiger des prompt sheets pour des <a href="https://liip-textmate.liipgpt.ch/">Textmates</a></li>
<li>Tester des optimisations de processus</li>
<li><a href="https://www.liip.ch/fr/blog/who-still-needs-an-apprenticeship-when-ai-exists">Écrire mon propre article de blog</a></li>
<li>Construire mes propres outils d'IA</li>
<li>Aider lors de formations et de workshops, puis les co-construire moi-même</li>
</ul>
<p>Ça va de la préparation des documents jusqu'au soutien actif pendant le workshop lui-même, quand des personnes ont des questions ou restent bloquées sur un exercice.</p>
<p>Le workshop que j'ai mentionné au début, c'était avec Caritas St. Gallen und Appenzell. C'était en même temps notre tout premier Responsible AI Workshop. Pendant l'année où j'ai moi-même grandi chez Liip, notre expertise sur ce sujet s'est aussi beaucoup développée.</p>
<figure><img alt="" src="https://liip.rokka.io/www_inarticle_5/5a4eb5/responsible-ai-workshop.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/5a4eb5/responsible-ai-workshop.jpg 2x"></figure>
<p>Je n'étais resté aussi longtemps dans aucun autre Circle. Ça a fait une différence. J'étais beaucoup plus intégré dans le travail du Circle. Surtout dans la deuxième moitié, j'ai remarqué à quel point on m'a fait confiance et donné des responsabilités pour réaliser des choses seul. Sur le fond, le travail ici était particulièrement intéressant : il tournait beaucoup autour du contenu interne de Liip, combiné à des workshops pour des clients où on pouvait transmettre notre savoir. C'était encore différent des deux Circles précédents.</p>
<p><strong>Dans le Design et Content Circle, je n'ai plus seulement pu apprendre, j'ai pu transmettre moi-même.</strong></p>
<h3>Ce qui s'est construit sur l'année</h3>
<p>Quand je mets les trois cercles côte à côte, je vois surtout une courbe au niveau des responsabilités. Dans le cercle Finance, j'ai repris des processus déjà en place, et j'ai découvert au passage les personnes, les outils et le fonctionnement de Liip. Dans le cercle Drupal Zürich, il s'agissait davantage du vrai métier de Liip, le développement web, et j'ai déjà pu prendre mes propres décisions en PO testing, et même rencontrer des clients. Dans le cercle Design et Content, j'ai pu utiliser ce savoir pour travailler sur des tâches stratégiques, construire mes propres outils et co-construire des workshops.</p>
<p>Chaque cercle m'a préparé au suivant. Pas parce que je l'avais planifié moi-même, mais parce que c'est exactement le système derrière la formation d'Entwickler Digitales Business chez Liip. Je le vois le plus clairement avec l'automatisation. Dans le cercle Finance, j'ai appris avec le rapprochement des cartes de crédit à décomposer un processus et à chercher du potentiel d'automatisation. J'ai eu besoin exactement de cette façon de penser dans le cercle Design et Content, quand j'ai construit mes propres outils d'IA. Sans la première étape, je n'aurais pas pu aborder la troisième de cette façon.</p>
<p>Une chose s'est retrouvée dans les trois cercles, et elle n'a rien à voir avec des connaissances techniques. J'ai appris que je peux aller vers les autres et demander de l'aide. Pas parce que je suis apprenti et que c'est permis, mais parce que chez Liip, c'est simplement normal pour tout le monde.</p>
<p><strong>La confiance n'est pas venue d'un coup chez moi, elle est venue cercle après cercle, et c'est ce qui m'a le plus changé depuis août dernier jusqu'à aujourd'hui.</strong></p>
<p>Comment se présente ta propre courbe d'apprentissage? Est-ce qu'elle se construit aussi étape par étape chez toi, ou plutôt par sauts?</p>]]></description>
    </item>
        <item>
      <title>Your Content Strategy as System Prompt</title>
      <link>https://www.liip.ch/fr/blog/your-content-strategy-as-system-prompt</link>
      <guid>https://www.liip.ch/fr/blog/your-content-strategy-as-system-prompt</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>The cost of producing content is trending toward zero.</p>
<p>But anyone working in branding and corporate communications knows the dilemma:</p>
<ul>
<li>Faster and more consistent: yes, please!</li>
<li>Losing control over positioning: no, thanks.</li>
</ul>
<p>We revised our own content strategy — with the help of AI. And looked for a way to resolve that dilemma: an efficient process that keeps control in human hands.</p>
<h2>Where to start</h2>
<p>Liip sharpened its positioning goals, which meant our content strategy needed a revision too.</p>
<p>For this, I worked with Claude: we have Enterprise access at Liip, and I use the desktop app.</p>
<p>As a first step, I set up a new project. I give it a clear title and describe what I'm trying to achieve.</p>
<p>I can also feed the system <strong>context information</strong> that it takes into account across all the work within that project.</p>
<p>In this case, relevant context included:</p>
<ul>
<li>The organization's vision and strategy</li>
<li>Positioning goals</li>
<li>Existing personas</li>
<li>Approval processes and relevant governance</li>
</ul>
<p>Anything relevant to the content strategy goes into the project as context. This matters especially when several stakeholders or language regions have a say in the final result: the system proposes — but it knows the guardrails within which a proposal actually holds up.</p>
<p>This context provides a solid foundation for an approach that's both <strong>grounded</strong> and <strong>efficient</strong>.</p>
<p>From there, the actual work on the <a href="https://www.liip.ch/en/blog/why-do-you-need-a-content-strategy" rel="noreferrer" target="_blank">content strategy</a> itself can begin.</p>
<p>I wanted to sharpen our core messages and target groups — two building blocks we'd been developing further as part of our new positioning.</p>
<h2>Working with the system</h2>
<p>For each building block, I had two options:</p>
<ul>
<li>Have Claude generate a first proposal, derived from the context I'd provided.</li>
<li>Sketch out roughly what I had in mind, and let the system turn it into a full version.</li>
</ul>
<p>Either way gives me a starting point I can refine further — alone, with the system, or with the team. The AI doesn't write my strategy; it simply supports me through the process.</p>
<p>What it takes is the moment where I step back from what's been generated, reflect on whether it actually serves our goals, and bring in my own judgment.</p>
<p>To get a fresh perspective on generated proposals, I like to pull in colleagues. Through this process, I developed a first complete version of our core messages, which I then took to the team for feedback.</p>
<p>Depending on where you're starting from, you can work through the different building blocks this way. The system makes sure everything builds on what came before in a meaningful way.</p>
<h2>What's a system prompt?</h2>
<p>Once my revised strategy is in place, I take it one step further: I derive a system prompt from it.</p>
<p>A system prompt is the overarching instruction you give a model once, which then automatically applies to every following interaction in that context — unlike the actual prompt, which you write fresh for each individual request.</p>
<p>In effect, I've built myself an assistant that supports me — or others on the team — in creating new content, while automatically paying into our content strategy:</p>
<ul>
<li>The system asks me who the content is for, and surfaces the pain points and content needs that fit.</li>
<li>The system asks which core message should take the lead, and helps me align the content with it.</li>
<li>The system walks me through every other relevant dimension — step by step.</li>
</ul>
<p>From there, the system prompt can keep being refined as you work with it — for instance, once you realize that the channel you're writing for actually matters.</p>
<h2>More than a tool trick</h2>
<p>This is where, for me, the point that often gets missed becomes visible: <strong>automation only scales what's already structurally sound.</strong></p>
<p>The system prompt is only ever as good as the content strategy it's derived from. The real work wasn't the prompting — it was sharpening the strategy. The strategic decisions — what we stand for, who we want to reach, with which message — were made by the team.</p>
<p>If you're curious, try it on a single building block: bring in the context, pick a topic, let it generate a proposal or sketch, fine-tune it with a colleague.</p>
<p>If you're already working with us and your content strategy could use a reality check, reach out: together, we can gather and review what you already have, then set it up in whichever AI tool your team prefers.</p>
<p>Working in the public sector and wondering how a process like this fits with your approval and compliance requirements? Let's talk — we have experience setting up AI-supported processes within existing governance structures.</p>]]></description>
    </item>
        <item>
      <title>Reimagining Frontend Frameworks</title>
      <link>https://www.liip.ch/fr/blog/reimagining-reactive-frontend-frameworks</link>
      <guid>https://www.liip.ch/fr/blog/reimagining-reactive-frontend-frameworks</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>Lately React, Vue and Svelte have converged on similar concepts for building reactive interfaces. Their syntax differs, but every reactive frontend still uses some form of state, computed values, mutations and effects.</p>
<p>Nevertheless, there is a lot of knowledge involved in getting something basic working in any of these frameworks. In this blog post I will explore what the most stripped down version of such a framework could look like, while still keeping the ergonomics of a reactive framework.</p>
<p>Let's get right into it.</p>
<h1>Imagining the framework</h1>
<p>To make this concrete, I built a small framework called <a href="https://www.npmjs.com/package/effectlayer">effectlayer</a>. I will explain its building blocks in this blog post.</p>
<h1>Building blocks</h1>
<p>The framework is built around a single JavaScript class, which the framework enhances with reactive behavior. That reactivity is powered by Signals, a common primitive used in frameworks such as Vue, Svelte, and SolidJS.</p>
<h2>State</h2>
<p>All class properties are treated as state. The framework turns them into Signals, so no state annotations are needed here:</p>
<pre><code class="language-javascript">class MoodSwing {
  energy = 5;
  coffee = 0;
}</code></pre>
<h2>Computed Values</h2>
<p>Computed values use standard JavaScript getters. The framework treats them as derived Signals that update automatically when their dependencies change:</p>
<pre><code class="language-javascript">  get mood() {
    if (this.energy &gt; 8) return "🤪";
    if (this.energy &gt; 4) return "😀";
    if (this.energy &gt; 0) return "😑";
    return "😴";
  }</code></pre>
<h2>Mutations</h2>
<p>Methods are a natural fit for mutations:</p>
<pre><code class="language-javascript">  drinkCoffee() {
    this.coffee++;
    this.energy = Math.min(10, this.energy + 3);
  }

  work() {
    this.energy = Math.max(0, this.energy - 2);
  }</code></pre>
<h2>Effects</h2>
<p>The last concept we need is effects. Effects are a fancy way of saying "a thing that executes when dependent Signals change".</p>
<p>I chose methods starting with <code>$</code> for annotating them:</p>
<pre><code class="language-javascript">  $monitor() {
    if (this.coffee &gt; 10) console.warn("You may want to slow down.");
  }</code></pre>
<p>The framework sees that <code>$monitor()</code> uses <code>coffee</code>. After <code>coffee</code> changes, it calls the method again.</p>
<h2>HTML</h2>
<p>Rendering HTML is also an effect that just returns JSX.</p>
<pre><code class="language-javascript">  $ui() {
    return (
      &lt;main&gt;
        &lt;h1&gt;{this.mood}&lt;/h1&gt;
        &lt;button onClick={() =&gt; this.drinkCoffee()}&gt;☕ Coffee&lt;/button&gt;
        &lt;button onClick={() =&gt; this.work()}&gt;💻 Work&lt;/button&gt;
      &lt;/main&gt;
    );
  }</code></pre>
<p>All that is left is to make the class reactive by wrapping it in an <code>effectlayer</code> call:</p>
<pre><code class="language-javascript">const moodSwing = effectlayer(MoodSwing);
moodSwing.$monitor();
document.body.appendChild(moodSwing.$ui());</code></pre>
<p>Calling an effect once activates it. This means <code>$monitor()</code> will now run whenever <code>coffee</code> changes.</p>
<p>The <code>$ui()</code> call returns an HTML element and keeps it up to date.</p>
<h1>All the concepts we need</h1>
<p>So basically the framework only needs four concepts:</p>
<ul>
<li>properties for state</li>
<li>getters for computed values</li>
<li>methods for mutations</li>
<li>methods starting with <code>$</code> for effects</li>
</ul>
<p>If you want to try out this experimental framework use:</p>
<pre><code class="language-sh">npm create effectlayer</code></pre>
<p>Or check it out on <a href="https://www.npmjs.com/package/effectlayer">npm</a>.</p>
<h1>Deep Dive?</h1>
<p>Let me know if you want to see a deep dive into how I built this framework: <a href="mailto:falk.zwimpfer@liip.ch">falk.zwimpfer@liip.ch</a></p>]]></description>
    </item>
        <item>
      <title>AI Won&#039;t Save Bad Content. A Content Strategy Might.</title>
      <link>https://www.liip.ch/fr/blog/ai-won-t-save-bad-content-a-content-strategy-might</link>
      <guid>https://www.liip.ch/fr/blog/ai-won-t-save-bad-content-a-content-strategy-might</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>If you want generative AI to produce quality results, you need a solid content strategy and clear guidelines.</p>
<p>Let's be honest: the gen-AI hype is a threat to my content business. We're seeing companies hold back investment in their content. Why?</p>
<p>The capabilities of generative AI make it clear that our field is about to change significantly. But this field is broad — it brings together very different skill sets and areas of work.</p>
<p>So the interesting question becomes: how exactly will content work in organizations change?</p>
<h1>A shift in roles</h1>
<p>A study by AG CommTech and GK Personalberatung looks at how roles and skills are shifting in the communications profession. Their <a href="https://agcommtech.de/wp-portfolio/studie-kuenftige-rollen-und-kompetenzen-in-der-kommunikationsprofession-im-wandel-der-digitalisierung/" rel="noreferrer" target="_blank">meta-study</a> shows that what's needed today is a combination of technological efficiency and human authenticity — a growing need for experts who can interpret data, use AI to extract relevant insights from it, and translate those insights into effective communication strategies.</p>
<p><strong>In other words, strategic skills matter more than ever.</strong></p>
<h1>More quantity, less quality?</h1>
<p>Why is that?<br />
Let's look at one visible area: generated text.</p>
<p>A <a href="https://ai-on-the-internet.github.io/" rel="noreferrer" target="_blank">Stanford study</a> from early 2026 shows that around 35% of all newly published websites are now AI-generated or at least AI-assisted.</p>
<p>The volume of generated content is growing fast. But what about quality?</p>
<p>That's not a simple question, since quality has several dimensions.</p>
<p>Let's ask Claude about it. The bot points to a <a href="https://contentmarketinginstitute.com/b2b-research/b2b-content-marketing-trends-research-2025#AI%20use%20trends" rel="noreferrer" target="_blank">survey by the Content Marketing Institute</a>, in which only 17% of B2B marketers rate the quality of AI-generated content as excellent or very good. 44% rate it as good, 35% as "fair," and 4% as poor. At the same time, 67% say they trust AI output only moderately, and 28% say they trust it little.</p>
<p>That's not exactly a robust finding, but it matches my own experience. So let's dig into the question: how does this middling track record come about?</p>
<h1>Input quality equals output quality</h1>
<p>AI can do a lot, but it can't work miracles. <strong>LLMs need a solid foundation to produce good results.</strong></p>
<p>If I want to generate content for my company's channels, a solid foundation means the following:</p>
<ul>
<li><strong>Complete data</strong> — AI can't generate reliable content if it can't find the relevant information in your existing content.</li>
<li><strong>Target group needs and questions</strong> as the central point of reference for the content.</li>
<li><strong>A content playbook</strong> that personalizes the output and aligns it with the organization's communication rules and goals.</li>
</ul>
<p>That's a fairly sobering realization if you were hoping gen-AI would simply take the work off your hands. Depending on where you're starting from, meeting these requirements actually creates new work first.</p>
<p><strong>But it also shows exactly where you can start to raise the quality of your generated content.</strong></p>
<p>These requirements put <strong>user-centricity</strong> and <strong>content strategy &amp; guidelines</strong> squarely at the center — which brings us right back to strategic skills.</p>
<p>In an upcoming post, I'll describe what belongs in a content strategy, in my view, and which elements deserve priority.</p>]]></description>
    </item>
        <item>
      <title>Why Do You Need a Content Strategy?</title>
      <link>https://www.liip.ch/fr/blog/why-do-you-need-a-content-strategy</link>
      <guid>https://www.liip.ch/fr/blog/why-do-you-need-a-content-strategy</guid>
      <pubDate>Tue, 14 Jul 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>Generative AI means a massive disruption for the content business. The entire production process is being shaken up. Profiles, workflows, tools – everything is being redefined.</p>
<p>As the cost of content production trends toward zero, two things gain massively in importance:</p>
<ul>
<li>Quality of content</li>
<li>Visibility and findability of content</li>
</ul>
<h1>Generative Engine Optimization (GEO) for the benefit of users</h1>
<p>Visibility and findability of content is increasingly becoming a question of AI visibility: whether your own content and your own brand show up in the answers and results of AI chatbots and agents.</p>
<p>Here's some reassurance: LLMs prioritize content based on criteria that are also relevant to users.</p>
<p>Beyond the technical dimension – content must be readable and usable for AI systems – content also needs to meet the following dimensions:</p>
<ul>
<li>Built around the user</li>
<li>Trustworthy</li>
<li>Clear thematic positioning</li>
</ul>
<p>This means the two aspects – quality and findability of content – are closely linked.</p>
<p>For a team to reach the point of producing content at this level of quality, we first need to clarify the fundamentals: without a clean alignment, no content team in the world is able to produce content of this quality in the medium term.</p>
<h1>The Triple Content Line</h1>
<p>We define our alignment as a content team across the following elements:</p>
<ul>
<li>Content strategy</li>
<li>Content guidelines</li>
<li>Content governance</li>
</ul>
<p>As a team, this is where we agree on the common denominator for our content work. Only this way can we produce quality content that meets both internal and external requirements.</p>
<p>The line between content strategy and content guidelines isn't always easy to draw.</p>
<h1>What belongs in a content strategy?</h1>
<p>There's no definitive answer to what belongs in a content strategy. And beyond that, I'd describe a content strategy more as an ongoing area of work than as a finished document.</p>
<p>For me, the following elements belong in a content strategy:</p>
<ul>
<li>Content goals: What do I actually want to achieve with my content?</li>
<li>Target audiences and their content needs</li>
<li>Content journeys of the target audiences</li>
<li>Channel strategy: Which channels do we work with, and how do they play together?</li>
<li>Key messages</li>
<li>Success measurement</li>
<li>Interfaces to content governance and content lifecycle management</li>
</ul>
<h1>What belongs in content guidelines?</h1>
<p>Unlike content strategy, content guidelines need to be embedded in day-to-day work. Alongside fixed reference points (e.g. the targeted language level), they often contain principles for us:</p>
<ul>
<li>Language level</li>
<li>Language rules (e.g. consistent formatting of dates, currencies, and similar, but also topics like gender-neutral language or how to address target audiences)</li>
<li>Tone of voice</li>
<li>Page types</li>
<li>Tools</li>
<li>...</li>
</ul>
<h1>What belongs in content governance?</h1>
<p>Content governance defines who on the content team is responsible for what – and how we work together to make sure strategy and guidelines are actually put into practice. Without governance, strategy and guidelines remain well-intentioned documents that get lost in day-to-day business.</p>
<p>For me, the following elements belong in content governance:</p>
<ul>
<li>Roles and responsibilities: Who creates, who reviews, who approves?</li>
<li>Approval processes: How does content move from idea to publication?</li>
<li>Maintenance and update processes: Who is responsible for updates, and when?</li>
<li>Quality assurance: How do we ensure guidelines are being followed?</li>
<li>Escalation paths: What happens in case of disagreement or edge cases?</li>
<li>Interfaces to other teams (e.g. design, product, marketing)</li>
</ul>
<h1>The goal? Interplay</h1>
<p>Content strategy, content guidelines, and content governance work together: strategy sets the direction, guidelines translate it into daily practice, and governance ensures that both actually happen rather than just existing on paper. Only through the interplay of these three elements does content emerge that is consistent, trustworthy, and findable – both for users and for AI systems – while also meeting the positioning goals of your own organization.</p>
<p>Content production is getting cheaper. But without these fundamentals, it stays arbitrary – no matter how powerful the tools become. Whoever invests in strategy, guidelines, and governance now is laying the foundation for content that will still be found, understood, and trusted tomorrow.</p>
<p><em>How Generative Engine Optimization (GEO) works in practice will follow in upcoming posts.</em></p>]]></description>
    </item>
        <item>
      <title>Apertus after 8 months - what we learned and look forward to using Switzerland&#039;s AI Model</title>
      <link>https://www.liip.ch/fr/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model</link>
      <guid>https://www.liip.ch/fr/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<p>Since September 2025, we have been running <a href="https://www.apertus-ai.org/">Apertus</a> — the Swiss open-source language model developed by <a href="https://www.epfl.ch/">EPFL</a>, <a href="https://ethz.ch/">ETH Zurich</a> and the <a href="https://www.cscs.ch/">Swiss National Supercomputing Centre (CSCS)</a> — on <a href="https://zuericitygpt.ch">ZüriCityGPT</a>, our reference implementation of a City AI assistant. Eight months later, I want to share what we have learned and what we are curious about for the upcoming Apertus 1.5 release.</p>
<!-- IMAGE: Screenshot of zuericitygpt.ch and oss.zuericitygpt.ch side by side -->
<h1>A brief history of LiipGPT and ZüriCityGPT</h1>
<p>2023, Chregu released the <a href="https://www.liip.ch/en/blog/ask-zuricitygpt-anything-about-the-government-of-the-city-of-zurich">first version of LiipGPT</a>. 2024, we were able to <a href="https://www.liip.ch/en/blog/zuricitygpt-oss-version-using-only-open-source-models">use only open-source models on ZüriCityGPT</a>. 2025, we switched the open-source version to the <a href="https://www.liip.ch/en/blog/apertus-4-ways-to-try-out-switzerland-s-new-ai-model">newly released Apertus model</a>. In this blog post, we talk about the insights gained since then.</p>
<h1>Setting up the experiment</h1>
<p><a href="https://liipgpt.ch">LiipGPT</a>, our <a href="https://www.liip.ch/en/work/projects/liipgpt">generative AI framework</a>, has a pluggable model layer. That means we can swap the underlying language model without changing anything else — same Retrieval-Augmented Generation (RAG) pipeline, same knowledge base of official content from stadt-zuerich.ch. This gave us a straightforward way to compare models in a real deployment.</p>
<p>The production system at <a href="https://zuericitygpt.ch">zuericitygpt.ch</a> runs GPT-4o-mini on Azure Europe. Alongside it, we run an open-source variant at <a href="https://oss.zuericitygpt.ch">oss.zuericitygpt.ch</a> where in the past we compared Llama and Mixtral models. We switched the open-source variant to <a href="https://www.swisscom.ch/en/about/news/2025/09/02-apertus.html">Apertus-70B</a> when it was released in September 2025, then moved to <a href="https://www.infomaniak.com/en/hosting/ai-services/open-source-models">Infomaniak-hosted</a> Apertus in April 2026. (To be clear: ZüriCityGPT itself and the LiipGPT platform are not open source — but the underlying language model on the OSS variant is.)</p>
<p>We run Apertus as the 70-billion-parameter model. It was trained from scratch on the Alps supercomputer using Swiss hydroelectricity, with 15 trillion tokens of training data spanning over 1,800 languages. It is fully open-source under an Apache 2.0 licence.</p>
<p>Over the last eight months, we collected over 39,000 conversations on the production side and 3,400 on the open-source side. Quality is measured using three metrics: how often an answer is acceptable (Match Rate), how often it is actually good (Match Rate +1), and how faithfully it reflects the source documents (Faithfulness). These are metrics our LiipGPT team has established as practical product metrics, not scientific benchmarks — the data is calculated real-time and asynchronously by the LiipGPT platform while users ask different questions over time, evolving website content, and model endpoint changes. Parts of the analysis were prepared with the help of Claude. Our aim is not to provide a scientific study but more a practical report. I share these results with the Apertus community because real-world deployment data of this open-source model is rare — and we think it's useful.</p>
<h1>What we observed</h1>
<p>Both models get the job done. On the basic question — does the user get an acceptable answer? — both models perform similarly. GPT-4o-mini scores 81%, Apertus 82% on historically matched questions. In a controlled test with 20 identical questions asked at the same moment, both hit 100%. Both models generally work as expected.</p>
<p>The gap shows up in answer quality. When we raise the bar to "is this answer actually good?", GPT-4o-mini scores 72% and Apertus 55%. That is a noticeable difference, and it matters for users who expect precise, well-structured responses.</p>
<p>Faithfulness is more nuanced than we expected. GPT-4o-mini averages 0.79, Apertus 0.50 on our faithfulness metric. But these numbers need context. We noticed something we started calling the "faithfulness paradox": when a model says "I cannot answer this," you might expect high faithfulness — no hallucination, after all. In practice, these evasive answers score low because the model is failing to use information that is available. A model that engages with its sources and cites them scores higher, even though it is making more verifiable claims. Both behaviours have tradeoffs, and both showed up across the two systems.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/ac2f708a50-1783608445/chart_comparison_2x3.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/b851b8/chart-comparison-2x3.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/b851b8/chart-comparison-2x3.jpg 2x"></a><figcaption>Three quality metrics compared across a controlled test (20 identical questions) and historically matched real-user questions</figcaption></figure>
<p>Sometimes Apertus gave the better answer. The most striking example was the waste dump question: "What are the rules for using the Zurich waste dump?" GPT-4o-mini responded cautiously, saying it could not provide specific rules. Apertus gave a detailed, structured answer with recycling centre details, phone numbers, and cited sources — scoring 6/6 on quality where GPT-4o-mini scored 3/6. When the knowledge base contains a clear, structured answer, Apertus can be surprisingly good at extracting and presenting it.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/9436173ed7-1783609912/apertus_gpt4omini_waste_dump.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/3b465f/apertus-gpt4omini-waste-dump.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/3b465f/apertus-gpt4omini-waste-dump.jpg 2x"></a><figcaption>GPT-4o-mini and Apertus respond to the same question</figcaption></figure>
<p>That said, this willingness to commit cuts both ways. In cases where the source material is ambiguous, Apertus can feel more helpful while being less strictly grounded — and for public-sector chatbots, traceability matters as much as helpfulness.</p>
<p>GPT-4o-mini is more concise and better at synthesis. Apertus tends to produce longer, more verbose answers. In a public-service chatbot, that is a real UX issue — users want a direct answer with clear next steps, not three paragraphs of context.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/b6516e51a6-1783610106/apertus_gpt4omini_verbose.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/677113/apertus-gpt4omini-verbose.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/677113/apertus-gpt4omini-verbose.jpg 2x"></a><figcaption>GPT-4o-mini responds concise, Apertus more verbose</figcaption></figure>
<p>GPT-4o-mini also handles factual freshness better: it returned Zurich's current population (452,421), while Apertus fell back to a 2013 figure. When information has changed or the answer requires connecting multiple sources, GPT-4o-mini felt more reliable.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/5ed0fada3b-1783610421/apertus_gpt4omini_population.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/997ce3/apertus-gpt4omini-population.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/997ce3/apertus-gpt4omini-population.jpg 2x"></a><figcaption>GPT-4o-mini answers with more recent population data compared to Apertus</figcaption></figure>
<p>Language switching is a weak spot. When we asked "Est-ce que tu parles français?", GPT-4o-mini responded fluently in French. Apertus declined, saying it could not answer questions about its own linguistic capabilities. In more recent tests we saw that Apertus followed the language instructions in better ways, so we are looking forward to see this further improve.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/0bbc6670a2-1783610288/apertus_gpt4omini_language.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/0387e4/apertus-gpt4omini-language.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/0387e4/apertus-gpt4omini-language.jpg 2x"></a><figcaption>GPT-4o-mini follows the language instruction, Apertus did not</figcaption></figure>
<p>The Apertus-70B IFEval score of 44% (vs 58% for comparable models) confirms that instruction following is an area where the model has room to grow.</p>
<figure><a href="https://www.liip.ch/media/pages/blog/apertus-after-8-months-what-we-learned-and-look-forward-using-switzerlands-ai-model/38a7a3a17b-1783609312/chart_monthly_cleaned.png"><img alt="" src="https://liip.rokka.io/www_inarticle_5/c6a834/chart-monthly-cleaned.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/c6a834/chart-monthly-cleaned.jpg 2x"></a><figcaption>Monthly quality trend from October 2025 to June 2026</figcaption></figure>
<p>The trend is positive. In October 2025, Apertus achieved a Match Rate +1 of 59%. By June 2026, it had climbed to 63% — the best month on record. That is not a dramatic leap, but the direction is consistent and it came without a major model update. Meanwhile, GPT-4o-mini has been stable at 63–83% throughout. The gap is narrowing.</p>
<h1>What we are looking forward to</h1>
<p>The Apertus team is preparing version 1.5, with improvements expected in multimodal support, agentic capabilities, tool calling, enhanced reasoning, and better training for regional Swiss languages. We plan to update ZüriCityGPT's open-source instance as soon as it becomes available and continue our quality monitoring.</p>
<p>What encourages us most is that the collaboration is flowing in both directions. After our <a href="https://www.ailights.ch/">aiLights talk</a>, the Apertus team shared our findings with their staff. This close feedback loop between research and practice is exactly what makes the Swiss AI ecosystem worth investing in.</p>
<figure><img alt="" src="https://liip.rokka.io/www_inarticle_5/3719ab/04.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/3719ab/04.jpg 2x"><figcaption>Christian Stocker presenting ZüriCityGPT. Photo: Oleg Lavrovsky (CC BY 4.0), source: <a href="https://log.alets.ch/115/">https://log.alets.ch/115/</a></figcaption></figure>
<p>My practical advice, for anyone considering sovereign AI: start with the use case, then choose the model. If your priority is maximum answer quality today, more popular models are usually the stronger choice. If your priority is data sovereignty, transparency, and independence — and your knowledge base is well-curated — Apertus already delivers. The question is not "sovereign AI or quality" but "how much quality gap are you willing to accept for full sovereignty?" And that gap is closing.</p>
<p>Check the <a href="https://docs.google.com/presentation/d/1Q792ccRiiiRk6zIlmCu7GkkjjZ6kiZJfbRk_CSBhxJ8/edit?usp=sharing">Slides</a> and <a href="https://www.youtube.com/watch?v=Fk0g--aWi1M">Recording</a> for further details.</p>
<h1>Acknowledgements</h1>
<p>I would like to thank the ETH Zurich, EPFL, and the wider <a href="https://www.swisscom.ch/en/about/news/2025/09/02-apertus.html">Swiss AI Initiative</a> community for making Apertus available as a public good. As Martin Jaggi from EPFL put it: "We aim to provide a blueprint for how a trustworthy, sovereign, and inclusive AI model can be developed." (<a href="https://ethz.ch/en/news-and-events/eth-news/news/2025/09/press-release-apertus-a-fully-open-transparent-multilingual-language-model.html">source</a>) Eight months in, we can see that blueprint taking shape and are looking forward to test the 1.5 model in practice as well.</p>
<ul>
<li>
<p>Thank you <a href="https://www.liip.ch/de/team/chregu">Christian Stocker</a> and the <a href="https://liipgpt.ch">LiipGPT</a> team for your dedication to build a practical, experiment-driven and scalable solution for AI chat and search.</p>
</li>
<li>
<p>Thank you <a href="https://www.linkedin.com/in/sabine-wildemann/">Sabine Wildemann</a> and the <a href="https://www.ailights.ch/">aiLights</a> team for hosting our talk.</p>
</li>
<li>
<p>Thank you <a href="https://log.alets.ch/">Oleg Lavrovsky</a> and the Apertus community for your feedback and support.</p>
</li>
<li>
<p>Thank you <a href="https://publicai.ch/">Public AI</a> and our partner <a href="https://www.infomaniak.com/en/hosting/ai-services/open-source-models">Infomaniak</a> for providing the infrastructure.</p>
</li>
</ul>
<h1>Build with Apertus: join Hack Apertus</h1>
<p>Want to get hands-on with sovereign Swiss AI? <a href="https://hackapertus.ch/">Hack Apertus</a> is a two-stage open-source hackathon series where teams build on Apertus to develop blueprints for sovereign infrastructure across the public and private sector. Liip is a partner — we are excited to see what the community builds.</p>
<p>Sign up at <a href="https://hackapertus.ch/">hackapertus.ch</a>.</p>
<figure><a href="https://hackapertus.ch"><img alt="" src="https://liip.rokka.io/www_inarticle_5/afc775/hackapertus-partner-liip.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/afc775/hackapertus-partner-liip.jpg 2x"></a><figcaption>Hackapertus Liip Promo Image</figcaption></figure>]]></description>
    </item>
        <item>
      <title>Un chatbot IA souverain pour l&#039;Etat de Fribourg</title>
      <link>https://www.liip.ch/fr/blog/un-chatbot-ia-souverain-pour-l-etat-de-fribourg</link>
      <guid>https://www.liip.ch/fr/blog/un-chatbot-ia-souverain-pour-l-etat-de-fribourg</guid>
      <pubDate>Mon, 15 Jun 2026 00:00:00 +0200</pubDate>
      <description><![CDATA[<h2>Faciliter l'accès à l'information publique</h2>
<p>Le portail fr.ch rassemble une grande quantité de contenus administratifs: démarches, législation, formulaires, prestations cantonales, informations communales. Trouver la bonne réponse dans un site aussi vaste n'est pas toujours chose aisée.</p>
<p>Il suffit de poser sa question en langage naturel, comme on le ferait à une personne. Si le site <a href="https://www.fr.ch/">fr.ch</a> est rédigé en français et allemand, canton bilingue oblige, on peut poser sa question dans n’importe quelle autre langue, pour que les citoyen·ne·s ne parlant ces langues puissent tout de même trouver les informations nécessaires.</p>
<p>Le chatbot IA identifie les contenus pertinents sur fr.ch et dans la base légale fribourgeoise, puis génère une réponse écrite, en citant les sources officielles utilisées.</p>
<p>Cette transparence est essentielle. L'IA ne remplace pas les contenus officiels, elle en facilite l'accès. </p>
<h2>Une IA pensée pour la souveraineté numérique</h2>
<p>La souveraineté des données est au cœur du projet. La Chancellerie souhaitait en effet absolument garder la maîtrise complète de l'infrastructure et du traitement.</p>
<figure><img alt="" src="https://liip.rokka.io/www_inarticle_5/29d94a/chatbot-souv-num.jpg" srcset="https://liip.rokka.io/www_inarticle_5/o-dpr-2/29d94a/chatbot-souv-num.jpg 2x"></figure>
<p>Le chatbot s'appuie sur <a href="https://www.liip.ch/fr/work/projects/liipgpt">LiipGPT</a>, notre plateforme d'IA générative. Notre moteur de Retrieval Augmented Generation (RAG) sélectionne les contenus officiels pertinents pour chaque question. Il est hébergé en Suisse chez Exoscale.</p>
<p>Côté modèle de langage (Large Language Model, LLM), nous utilisons Mistral AI, un outil européen majeur. Le modèle est lui aussi hébergé en Suisse, chez <a href="https://www.infomaniak.com/fr/hebergement/nos-offres-cloud-computing">Infomaniak</a>, pionnier de l'hébergement web éco-responsable et durable s’il en est. Les serveurs du LLM utilisent exclusivement des énergies renouvelables, avec refroidissement naturel et réutilisation de la chaleur, sans oublier l’utilisation de matériel recyclé et optimisé ainsi qu’une compensation carbone locale.</p>
<p>Cette architecture réduit la dépendance aux grandes plateformes américaines et privilégie une approche suisse et européenne de l'IA générative. Les requêtes sont anonymisées et aucune donnée personnelle n'est transmise à des tiers. L'ensemble reste sous juridiction suisse, conformément à la législation en vigueur sur la protection des données.</p>
<h2>Une collaboration ancrée en Suisse romande</h2>
<p>La Chancellerie d'Etat de Fribourg a piloté le projet, avec une vision claire des enjeux administratifs et politiques. Notre équipe, notamment active à Fribourg, a développé la solution en étroite collaboration avec la Chancellerie. Ceci a permis de répondre au mieux aux besoins réels issus du terrain.</p>
<p>Cette proximité a permis des échanges rapides et une attention forte portée à l'expérience utilisateur·rice. Au-delà de la technologie, l'enjeu était de créer un outil qui soit à la fois utile, fiable et compréhensible pour la population fribourgeoise.</p>
<h2>Une première étape vers une administration plus accessible</h2>
<p>Depuis le premier déploiement en mars, nous avons retravaillé certains éléments afin d’améliorer la qualité des réponses. Pour ce faire, notre client bénéficie notamment de nos solutions d'évaluation automatisées afin de contrôler en continu le niveau de qualité des réponses. </p>
<p>Cette première version couvre les informations publiques se trouvant sur fr.ch et la base légale fribourgeoise. Mais le périmètre ne se limite pas au seul portail cantonal: il s'élargit progressivement aux informations publiées par d'autres institutions cantonales et par certaines communes. Qui dit nouvelles sources, dit bien sûr vigilance accrue pour s’assurer que le niveau de qualité des réponses demeure. L'Etat de Fribourg tient d'ailleurs à jour <a href="https://www.fr.ch/le-chatbot-ia-de-frch">une page d&eacute;di&eacute;e au chatbot</a>, qui détaille notamment les sources de données utilisées.</p>
<p>Une conviction guide ce travail. L'IA dans le secteur public peut être souveraine, transparente et utile. Pour y parvenir, il est nécessaire de toujours garder la maîtrise de l'infrastructure et de citer ses sources.</p>
<p>Envie d'échanger sur l'IA pour votre institution? N'hésitez pas à me <a href="https://www.liip.ch/fr/team/thomas-denervaud">contacter</a>.</p>]]></description>
    </item>
      </channel>
</rss>