Arch AI – Help and FAQ

Initial version: March 25, 2024 – Last update: October 16, 2026

What’s new

October 2026: New: the Code Interpreter. Agents can now write and run code, and every code block in a chat has a “Run Code” button. Everything runs in a sandbox on D-ARCH servers, see below.

October 2026: We have changed the login backend. A few users may find that their chats and files are no longer displayed as usual. In this case, contact us and we will resolve the issue.

Overview

Arch AI (archai.ethz.ch) is the AI platform of the Department of Architecture, available to all members of ETH Zurich. It gives you chat with large language models, work with your own documents, image generation, voice input and output, web search, and a builder for your own assistants (“agents”).

One of Arch AI’s main objectives is to provide a straightforward user interface for on-premises AI. The aim is to highlight the capabilities and limitations of on-premises AI running on off-the-shelf hardware.

Everything runs on servers of the Department of Architecture at ETH Zurich. The only exception is one commercial cloud model, which you have to pick explicitly.

Where your data is processed

Function Where it runs What leaves ETH
Chat with local models (Gemma 4, Qwen) D-ARCH servers nothing
Chat with GPT Microsoft Azure, data centre in Sweden your messages and files in that conversation
Files you upload, file search D-ARCH servers nothing
Image generation D-ARCH servers nothing
Running code (Code Interpreter) D-ARCH servers, isolated sandbox nothing
Describing images D-ARCH servers nothing
Voice input and output D-ARCH servers nothing
Web search D-ARCH servers the search query only, sent to public search engines; the pages found are fetched by our server
Prompts, agents, memories, bookmarks D-ARCH servers nothing
Conversation titles and summaries generated by the model you chose nothing, unless you chose GPT

Chat history is stored in a database at D-ARCH and is visible only to you. Members of IT Services D-ARCH can access the database for operations and support.

Costs

Local services are free of charge and will remain so. The use of GPT is paid for by IT Services D-ARCH. We reserve the right to remove cloud models if costs are too high. If your unit wants to rely on Arch AI permanently in teaching or research, contact us.

Getting started

Login

A valid ETH account is required. You log in with your ETH username and password through the ETH login page, followed by multi-factor authentication.

The interface

Choosing a model

Model Runs at Good for
Local AI (Google Gemma 4) ETH everyday chat, text, understanding images, long documents
Local Code AI (Qwen) ETH code, structured output, technical questions
GPT (OpenAI gpt-6) Microsoft Azure tasks where the local models are not good enough and no sensitive data is involved

Please note, available models change over time.

Chat with your own files

Attach PDF, Word, text or spreadsheet files to a message. Arch AI reads the file and answers based on its content. Large files are indexed for search, so you can ask questions across many pages or many documents. Files and the index stay on ETH servers.

Images attached to a message are described by the model (Gemma 4 and GPT understand images).

Switch on Web search in the “tools” menu. The model then searches the web, reads the pages it finds, and cites them in its answer. The search runs through our own search server, which forwards the search terms to public search engines. Your conversation is never sent to them, only the search query the model formulates.

Images

Generating images

Images are generated on D-ARCH servers. Two shared agents are ready to use, pick one in the Agents list:

Agent Model Character
Qwen-Image Agent Qwen-Image strong with text in the image and fine detail
Z-Image Agent Z-Image fast, photorealistic

Both are worth a try with the same prompt; pick the one whose results you like better.

Describe the image you want in plain language. A single image takes from a few seconds up to a minute. You can also add the image tool to your own agent, for example with a fixed style description for a studio. The images belong to you and may be used freely. We recommend marking AI-generated images as such.

Understanding images

Attach a photo, plan or screenshot and ask about it. Works with Gemma 4 and GPT.

Voice

Prompts

Prompts are saved text templates. Instead of typing the same instruction every time, you save it once and call it with / in the message box. A prompt can contain variables in double curly braces, which you fill in when you use it. Prompts can be shared with other users.

Examples:

Agents

An agent is a model plus instructions, optionally with files and tools. You build it once and reuse it, or share it with your group.

What is the difference?

What it stores Use it when
Preset model and parameters you often switch between settings
Prompt a text template you repeat the same instruction
Skill instructions for one kind of task an agent should follow a procedure only when the request calls for it
Agent model, instructions, files, tools you want a specialised assistant that others can use too

Building an agent

Open Agents in the sidebar and click Create. Give it a name, choose a model, write the instructions, and add what it needs:

Examples

Skills

A skill is a set of written instructions for one kind of task, for example a review checklist, writing guidelines or a standard research procedure. Unlike a prompt, you do not send it yourself: an agent picks up the skill on its own when your request matches its description.

The description decides whether the agent uses the skill, so state clearly when it applies.

Memories

Memories are short facts about you that Arch AI adds as context to every conversation, for example your preferred language, your field of work or a current project. Memories are not extracted from your chats; you write them yourself.

Bookmarks

Tag conversations with bookmarks to find them again. Click the bookmark icon in a conversation, create a tag, and filter the sidebar by tag.

Code Interpreter

Arch AI can run code and give you the result: analyse a data file, draw a chart, convert a document, check a calculation. The code runs in an isolated sandbox on D-ARCH servers. Each run gets its own small virtual machine that is discarded afterwards, so nothing can affect other users or our systems. Languages: Python, JavaScript/TypeScript, Go, C/C++, Java, PHP, Rust, Fortran and R.

Two ways to use it:

Good to know:

The model wrote and ran this stair calculator on the first try. The table looks right, but the last column is off: a stair with n risers has n-1 treads, so the run is about 30 cm too long. Code that runs is not code that is correct. Check results you rely on.

API access

For research projects of the department or for projects with sensitive data, the local models are also available through an OpenAI-compatible API (HTTPS, streaming, tool calling).

The API speaks the OpenAI protocol, so any OpenAI client library works. Both examples use the official openai Python package (pip install openai). You receive the host, the token and the 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

Request access

See IT ARCH - AI Tools and contact us if you require API access.

Contact

Suggestions and feedback are welcome.

IT Services Group Department of Architecture
servicedesk@arch.ethz.ch

ETH Zürich
IT Services D-ARCH
Thomas Gemperli
HIL C 38.2
Stefano-Franscini-Platz 5
8093 Zürich