AI-Infrastruktur für die Schweiz
Die besten Open-Source-Tools, zu einem vollständigen Stack zusammengeführt. Alles läuft bei dir, nichts davon in einer fremden Cloud.

Die besten Open-Source-Tools, zu einem vollständigen Stack zusammengeführt. Alles läuft bei dir, nichts davon in einer fremden Cloud.

Swiss AI-Hub kombiniert die besten Open-Source-Tools zu einer produktionsreifen AI-Plattform. Fertig zum Einsatz, ohne monatelange Eigenintegration.
Jeder Prompt und jede Response wird erfasst, mit Kostentracking pro Trace, RAG-Analyse und Auswertungsdatensätzen. OpenTelemetry sorgt für durchgehenden Kontext über alle Services.
Swiss AI-Hub entstand aus einer einfachen Beobachtung: Zu viele starke Teams verschwenden ihre beste Energie damit, immer wieder dieselbe AI-Infrastruktur von Grund auf neu zu bauen. Das wollten wir ein für alle Mal ändern.
Fünf Demos, die die Plattform von Anfang bis Ende zeigen. Jede läuft direkt nach docker compose up.
Dateien per Drag & Drop ins Admin-UI. Die Plattform übernimmt Parsing, Chunking, Embedding und Indizierung automatisch. Unterstützt werden PDF, DOCX, PPTX und XLSX. SharePoint, OneDrive, Google Drive und über 70 weitere Provider lassen sich per Rclone anbinden.
Die Plattform ist und bleibt kostenlos und Open-Source. Diese Pläne decken Betrieb, Hosting und Support ab.
Kostenlos starten
Wir bringen dich zum Laufen
Wir halten es am Laufen
Dein AI-Infrastruktur-Partner
Alle Preise in CHF, exkl. MwSt.
Jede Turnkey-Plattform hat irgendwann Grenzen. Die Swiss AI-Hub SDKs stellen sicher, dass du keine davon spürst.
Eigene Agents mit dekorierten Workflow-Steps, Dependency Injection und automatischer Plattformintegration. SSO, Tracing, Kostentracking und die Chat-UI sind ohne Zusatzaufwand dabei.
Was dieser Code macht: Dieser Agent beantwortet Fragen aus der Knowledge Base oder eskaliert an einen menschlichen Experten. Der @step()-Dekorator definiert den Ablauf — Abhängigkeiten wie Config, Locale Handler und Displayer werden automatisch injiziert. Die Runtime routet Guard-Events an verschiedene Steps: ContextSufficientEvent löst eine LLM-Antwort mit Kostentracking aus, ContextInsufficientEvent ruft BotInTheLoop auf, um via Teams oder Slack einen Menschen einzubeziehen. Wenn der Experte antwortet, setzt der Dispatcher beim relay_expert-Step fort. Ein einziger Aufruf von AgentRunner verbindet sich mit NATS, registriert den Agent auf der Plattform und beginnt zu lauschen.
1from swiss_ai_hub.agent import Agent, AgentConfig, AgentRunner, step2from swiss_ai_hub.core.events import UserMessageEvent, LLMStopEvent, StopEvent3from swiss_ai_hub.core.events.semantic import RetrieverEvent4from swiss_ai_hub.core.events.guard import ContextSufficientEvent, ContextInsufficientEvent5from swiss_ai_hub.core.events.botl import BotInTheLoop6from swiss_ai_hub.core.displayers import EventDisplayer7from swiss_ai_hub.core.retrievers import KnowledgeRetriever8from swiss_ai_hub.core.i18n import LocaleString, LocaleHandler910class ExpertQAAgent(Agent):11 name = LocaleString(en="Expert QA")12 description = LocaleString(en="Answers from documents or escalates to a human expert")13 icon = "mage:user-check"1415 @step()16 async def retrieve(self, event: UserMessageEvent, config: AgentConfig, t: LocaleHandler) -> RetrieverEvent:17 retriever = KnowledgeRetriever(config.retriever)18 nodes = await retriever.retrieve(query=event.user_query, t=t)19 return RetrieverEvent(nodes=nodes)2021 @step()22 async def check_context(self, event: RetrieverEvent) -> ContextSufficientEvent | ContextInsufficientEvent:23 if event.nodes:24 return ContextSufficientEvent()25 return ContextInsufficientEvent()2627 @step()28 async def respond(29 self, _: ContextSufficientEvent, retrieval: RetrieverEvent, start: UserMessageEvent,30 config: AgentConfig, displayer: EventDisplayer,31 ) -> LLMStopEvent:32 context = "\n\n".join(node.content for node in retrieval.nodes)33 messages = [ChatMessage(role="system", content=f"Answer based on:\n{context}"), *start.messages]34 async with config.llm.cost_reporting_llm(displayer) as llm:35 return await displayer.display_llm_stream(config.llm, llm, messages, as_stop_step=True)3637 @step()38 async def escalate(39 self, _: ContextInsufficientEvent, start: UserMessageEvent, config: AgentConfig,40 ) -> BotInTheLoop.request:41 return BotInTheLoop.invoke(question=start.user_query, user=start.user, channel_config=config.channel)4243 @step()44 async def relay_expert(self, event: BotInTheLoop.response, displayer: EventDisplayer) -> StopEvent:45 await displayer.display_chunk(f"{event.responder.user_name}: {event.response}", model_name="human-expert")46 return StopEvent()4748runner = AgentRunner(agent_type=ExpertQAAgent, agent_config=AgentConfig.as_form())49await runner.run_forever()Ob dein Team selbst loslegen will oder ihr auf uns zählt, es gibt einen Weg, der zu euch passt.
Ein gemeinsamer Workshop vor Ort, um die vielversprechendsten AI-Use-Cases zu finden und zu bewerten.
Wir bauen einen funktionierenden Prototypen für deinen wichtigsten Use-Case, direkt auf deiner Swiss AI Hub Instanz.
Vollständige Entwicklung mit Data Pipelines, Integrationen und User Acceptance Testing bis zur produktionsreifen Lösung.
Sprint-basierte Weiterentwicklung vom MVP zur produktionsreifen Lösung, mit einem funktionierenden Ergebnis nach jedem Sprint.
Alle Preise in CHF, exkl. MwSt.
Von LLM-Providern bis zu Datenquellen, von externen Integrationen bis zu internen Datenbanken. Jede Komponente ist verbunden, beobachtbar und vollständig in deiner Hand.
