Arch AI: AI Tools with Data Sovereignty
Arch AI (archai.ethz.ch) is the AI platform of the Department of Architecture for all ETH members: chat with language models, documents, images, voice, web search and agents based on LibreChat. Local models on ETH servers, your data stays at ETH.
What is Arch AI?
Arch AI (archai.ethz.ch) is the AI platform of the Department of Architecture and is open to all members of ETH Zurich with their ETH account. You chat with large language models (LLMs), work with your own documents, generate and describe images, dictate input, have answers read aloud, search the web and build your own assistants (“agents”), much like ChatGPT, but on ETH infrastructure.
Arch AI is based on the open-source software LibreChat. The language and image models run on servers of the Department of Architecture at ETH Zurich. This shows what AI on our own hardware (“on-premises”) can do today and where its limits are.
Digital data sovereignty
Using an AI service means handing over data: questions, documents, images, often hints about unpublished research or about people. With commercial cloud services, this data ends up with providers outside Switzerland, under foreign law and without control over what happens to it. For us, digital data sovereignty means that ETH decides for itself where its data is processed, with which software and with which models.
- Your data stays at ETH. Conversations, uploaded files, images, voice input, agents and memories are processed and stored exclusively on the department's servers in Zurich.
- Open software, open models. LibreChat is open source, and the local language models such as Gemma and Qwen are openly available (“open weights”). Nothing is tied to a vendor; models can be swapped when better ones appear.
- You choose per conversation. Local models are the default. The GPT model in the cloud is an option you select deliberately, and the interface always shows which model is active.
- Local means local. With the local models, your content does not leave ETH and we do not analyse it. For the GPT model, the terms of Microsoft Azure OpenAI apply: your messages are processed in Microsoft's data centre and may be stored there temporarily for abuse monitoring. You delete conversations yourself in Arch AI.
| Function | Processing | What leaves ETH |
|---|---|---|
| Chat with local models (Gemma, Qwen, code model) | Department of Architecture servers | nothing |
| Chat with GPT (Azure OpenAI) | Microsoft Azure, data centre in Sweden | your messages and files in that conversation |
| Uploaded files, file search | Department of Architecture servers | nothing |
| Image generation and image description | Department of Architecture servers | nothing |
| Voice input and output | Department of Architecture servers | nothing |
| Web search | Department of Architecture servers | the search query only, sent to public search engines; our server fetches the pages found |
| Prompts, agents, memories, bookmarks | Department of Architecture servers | nothing |
| Conversation titles and summaries | the model you chose | nothing, unless you chose GPT |
What you can do with Arch AI
| Function | Examples |
|---|---|
| Chat | Draft, summarise, translate and correct texts, answer questions, develop ideas. Local models such as Gemma and Qwen, a local code model for programming questions, optionally GPT from the OpenAI family. |
| Documents | Upload PDF, Word, spreadsheets or text files and ask questions about them, compare or analyse them. Files can be attached to a conversation or stored permanently in a project. |
| Images | Generate images from text descriptions (models Qwen-Image and Z-Image), describe uploaded images, discuss plans and sketches. |
| Voice | Dictate input and have answers read aloud, both processed locally. |
| Web search | Include current information from the internet in the answer. |
| Agents | Build your own assistants with fixed instructions, knowledge from files and tools, and share them with others, for example for teaching or a research project. |
| Organisation | Group conversations in projects, set bookmarks, save prompts, manage personal memories. |
Getting started
-
Open archai.ethz.ch and click Login with ETH Zürich. Sign in with your ETH account; the first time, you accept the terms of service.
-
Choose the model at the top left: Local AI for the local language models (default), Local Code AI for programming questions, Azure OpenAI for GPT, My Agents for your assistants.
-
Type your question into the input field. Use the paper clip to attach files or images and the microphone to dictate. Answers can be copied, regenerated or repeated with a different model.
-
A user guide with answers to frequent questions is available in Arch AI at the bottom under Arch AI – Help and FAQ.
Costs
The local services are free of charge for ETH members and will remain so. The use of GPT is paid for by the IT group of the Department of Architecture; we reserve the right to remove cloud models if costs become too high. If your unit wants to rely on Arch AI permanently in teaching or research, get in touch with us.
API access for research and projects
For research projects of the department or projects with sensitive data, the local models are also available through an OpenAI-compatible interface (HTTPS, streaming, tool calling). Because the API speaks the OpenAI protocol, any OpenAI client library works. The examples use the official Python package openai (pip install openai). You receive the host, token and model name from us.
Ask a question
from openai import OpenAI
HOST = "https://on-premise-llm.ethz.ch/v1"
TOKEN = "your-api-token"
MODEL = "model-name"
client = OpenAI(base_url=HOST, api_key=TOKEN)
response = client.chat.completions.create(
model=MODEL,
messages=[{"role": "user",
"content": "What is the tallest building in Zurich?"}],
)
print(response.choices[0].message.content)
python ask-a-question.py
The tallest building in Zurich is the **Prime Tower**.
It stands at approximately 126 meters (about 413 feet) tall.
Tag an image
The image is sent as part of the message; the model answers with a list of tags.
import base64
from openai import OpenAI
HOST = "https://on-premise-llm.ethz.ch/v1"
TOKEN = "your-api-token"
MODEL = "model-name"
client = OpenAI(base_url=HOST, api_key=TOKEN)
with open("photo.jpg", "rb") as f:
image = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model=MODEL,
messages=[{
"role": "user",
"content": [
{"type": "text",
"text": "Describe this image with 5 to 10 tags, \
comma-separated, nothing else."},
{"type": "image_url",
"image_url": {"url": f"data:image/jpeg;base64,{image}"}},
],
}],
)
print(response.choices[0].message.content)
python tag-an-image.py
Zurich, Switzerland, Cityscape, Architecture, River, Lake,
Alps, Church, Skyline, European
If you are interested in API access, contact us.
Good to know
- Rolling release: Arch AI is under continuous development. Models and functions may change; we announce major changes in Arch AI.
- ETH rules: the use of AI in teaching, exams and research is governed by the rules of ETH Zurich and your study programme, for example on declaring AI tools. Arch AI does not change that.
- Limits of local models: the local models are smaller than the large cloud models and run on standard hardware. That is enough for most tasks; for very long documents or demanding analyses, GPT may do better, provided the data allows it.
We welcome questions, requests and feedback on Arch AI via the Service Desk.
Not solved? Sign in to open a ticket, or contact the D-ARCH Service Desk, servicedesk@arch.ethz.ch