AI ValgChat FV26 is a Danish election chatbot designed to help users explore party positions, compare parties on political issues, ask factual questions, and have dialogue-based conversations about which parties may best match their priorities.
The system is both a public-facing tool and a research instrument. One core goal is to study how people actually use conversational AI in a democratic context, including where such systems are useful and where they fail.
System architecture
At a high level, AI ValgChat FV26 is built as a small application stack with a few distinct layers:
Flask application
The web app handles the chat interface, session state, routing logic, guardrails, feedback handling, and recommendation flow.
Open WebUI on UCloud
The model-serving layer is accessed through an Open WebUI server running on UCloud. Model inference is served through an Ollama backend used by the Open WebUI setup.
Language model
The system uses the open-source large language model OpenEuroLLM-Danish from the OpenEuroLLM project.
In the current setup, inference runs on 2 × NVIDIA A100 40GB GPUs. That is worth mentioning because it gives a more realistic sense of the compute involved in a responsive public-facing chatbot with retrieval and multi-turn dialogue.
In practice, the app does not simply pass the user message directly to the model. It first decides what type of question the user is asking and how much structure the response should have, and it can route different question types through different handling paths.
Main response modes
1. Fact-oriented party questions
For a subset of core factual questions, the system can answer from curated structured data rather than relying entirely on generation. This is used to make answers about basic party facts more stable.
- party leader
- founding year
- ideological self-description
This reduces the risk of the model hallucinating simple factual information.
2. Retrieval-based political answers
For broader political questions, the app retrieves relevant party materials from curated knowledge collections and passes those materials into the response generation step.
This makes the system more grounded than a pure free-form chatbot because it is guided by party-specific source material rather than only by the model’s general training.
3. Dialogue-based voting advice
When users ask which parties match their views, the app switches into a more structured recommendation mode. In this mode, it can ask follow-up questions and refine its suggestions over several turns.
The system keeps a lightweight session-level representation of the user’s stated priorities so that the recommendation flow can remain coherent across multiple turns. This matters especially when users answer incrementally, refine a previous answer, or respond with short follow-up replies such as ja, nej, or det er vigtigt.
The app also exerts more control over follow-up questions so that the visible question matches the app’s internal dialogue state more closely and the overall interaction feels more like a conversation than a survey.
Recommendation philosophy
The system does not use a fixed hand-coded party scoring formula. Recommendations are still generated by the language model, but they are guided by:
- curated party-specific knowledge sources
- structured session-level preference information
- follow-up question handling in the application layer
So the app does not replace the model with a deterministic score engine. Instead, it tries to make the model’s recommendation process more consistent and more context-aware.
This means AI ValgChat FV26 is not just a static questionnaire in chat form. It is a hybrid system where parts of the logic live in the application layer and parts live in the language model.
Source material
The system relies on curated political source material prepared for retrieval. At a high level, these materials include:
- party principle programmes where parties publish them
- policy text from official public party websites for parties that do not have a principle programme in the same form
- Danish Wikipedia pages about all included parties
- cleaned party-specific retrieval bundles prepared from these materials
The goal is not to mirror the entire internet, but to work from a more controlled and inspectable set of political materials.
At a high level, the retrieval setup is party-specific: the system does not search one undifferentiated political corpus, but works with party-linked collections so that it can ground answers in material associated with the relevant parties.
Why not just use a general chatbot?
One motivation behind the project is that people already use general-purpose chatbots for political questions, but those systems are typically:
- harder to inspect
- harder to study empirically
- less transparent in how they handle political dialogue
- not designed specifically for Danish election use
This project therefore explores what a more controlled and research-oriented election chatbot can look like in a Danish election setting.
Research relevance
The project is not only about building a useful interface. It is also about understanding:
- what people ask political chatbots
- how they respond to different answer styles
- how recommendation conversations evolve over multiple turns
- where AI systems become overconfident, overly rigid, or internally inconsistent
This means the system is both a public-facing tool and a way of studying the opportunities and risks of AI in democratic settings.
Feedback and user experience
The interface includes lightweight response feedback so users can indicate whether a response was helpful. That feedback is useful both for evaluating the system and for understanding where the chatbot’s recommendations or explanations feel unhelpful to users.
From a technical point of view, the interface is also designed to support multi-turn dialogue rather than only one-shot answers. That makes it possible to study how recommendation conversations evolve over time, not just what the model says in response to a single prompt.
Scope and limitations
The chatbot is designed for political information and voting-advice style conversations in a Danish election context. It is not meant to replace official party materials, public debate, or independent judgement.
As with any AI system, outputs should be treated as support for reflection and orientation, not as authoritative truth.
What this page leaves out
This page intentionally does not include:
- operational deployment details
- internal infrastructure URLs
- runtime secrets or admin procedures
- sensitive maintenance workflows
The purpose of this page is to explain how AI ValgChat FV26 works at a meaningful technical level, not to publish internal operating instructions.