Ollama a Qdrant: Místní paměť pro vaši umělou inteligenci na Macu

Místní AI s pamětí - bez cloudu, bez předplatného, bez odklonů

V předchozí články Vysvětlil jsem, jak nakonfigurovat Ollama na Macu install. Pokud jste již tento krok dokončili, máte nyní k dispozici výkonný místní jazykový model - například Mistral, LLaMA3 nebo jiný kompatibilní model, který lze oslovit prostřednictvím rozhraní REST API.

Model však "ví" pouze to, co je v aktuální výzvě. Nepamatuje si předchozí konverzace. Chybí vzpomínka.


Sociální otázky současnosti

Právě proto používáme Qdrant, moderní sémantickou vektorovou databázi.
V tomto článku vás provedu krok za krokem:

  • jak installier Qdrant na Macu (přes Docker)
  • Jak vytvářet vložené soubory v jazyce Python
  • jak ukládat, vyhledávat a integrovat obsah do pracovního postupu Ollama.
  • a jak vypadá kompletní sekvence výzva→paměť→odpověď

Proč Qdrant?

Qdrant neukládá tradiční texty, ale vektory, které reprezentují význam textu jako číselný kód. To znamená, že obsah lze najít nejen přesně, ale také sémanticky podobně - i když se slova liší.

Ollama + Qdrant tedy vede k výsledkům:

Lokální jazykový model s dlouhodobou pamětí - bezpečný, kontrolovatelný a rozšiřitelný.

Předpoklady

Balíčekinstallation od Qdrant:

pip install qdrant-client sentence-transformers

Spuštění Qdrant (Docker)

docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

Qdrant poté spustí:

http://localhost:6333 (REST API)

http://localhost:6334 (gRPC, pro tento článek není vyžadováno)

Qdrant v Dockeru pod Apple macOS

Příklad Pythonu pro Ollama + Qdrant

Nyní napíšeme jednoduchý základní skript, který:

  • přijme výzvu uživatele
  • vygeneruje vložený vektor z tohoto
  • vyhledává sémanticky podobné vzpomínky v Qdrant.
  • odpověď je generována s kontextem prostřednictvím Ollama
  • uloží novou konverzaci jako připomínku
Python-Script: ollama_memory.py
import requests
from sentence_transformers import SentenceTransformer
from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct

# Einstellungen
OLLAMA_URL = "http://localhost:11434/api/generate"
COLLECTION_NAME = "memory"
VECTOR_SIZE = 384 # für 'all-MiniLM-L6-v2'

# Lade Embedding-Modell
embedder = SentenceTransformer("all-MiniLM-L6-v2")

# Verbinde mit Qdrant
qdrant = QdrantClient(host="localhost", port=6333)

# Erstelle Collection (einmalig)
def create_collection():
if COLLECTION_NAME not in qdrant.get_collections().collections:
qdrant.recreate_collection(
collection_name=COLLECTION_NAME,
vectors_config=VectorParams(size=VECTOR_SIZE, distance=Distance.COSINE)
)

# Füge Eintrag ins Gedächtnis hinzu
def add_to_memory(text: str):
vector = embedder.encode(text).tolist()
point = PointStruct(id=hash(text), vector=vector, payload={"text": text})
qdrant.upsert(collection_name=COLLECTION_NAME, points=[point])

# Suche im Gedächtnis
def search_memory(query: str, top_k=3):
vector = embedder.encode(query).tolist()
hits = qdrant.search(
collection_name=COLLECTION_NAME,
query_vector=vector,
limit=top_k
)
return [hit.payload["text"] for hit in hits]

# Sende Anfrage an Ollama
def query_ollama(context: list[str], user_prompt: str):
prompt = "\n\n".join(context + [user_prompt])
response = requests.post(OLLAMA_URL, json={
"model": "mistral",
"prompt": prompt,
"stream": False
})
return response.json()["response"]

# Ablauf
def main():
create_collection()
print("Frage an die KI:")
user_prompt = input("> ")
context = search_memory(user_prompt)
answer = query_ollama(context, user_prompt)
print("\nAntwort von Ollama:")
print(answer.strip())

# Speichern der Konversation
full_entry = f"Frage: {user_prompt}\nAntwort: {answer.strip()}"
add_to_memory(full_entry)

if __name__ == "__main__":
main()

Poznámky k praxi

Můžete také použít vlastní modely vkládání, např. prostřednictvím modelu Ollama (např. nomic-embed-text) nebo modelu Hugging Face.

Qdrant podporuje filtry nákladu, časová období a pole (velmi užitečné pro pozdější rozšíření!)

Pro jednoduché testy stačí hash(text)-ID, pro profesionální aplikace byste měli používat UUID.

Místní umělá inteligence s pamětí - a co s ní můžete dělat

V předchozích kapitolách jsem vám ukázal, jak vytvořit skutečnou lokální paměť AI na počítači Mac s Ollama a Qdrant. Nastavení, které funguje bez cloudu, bez předplatného a bez externích serverů - rychlé, bezpečné, soukromé.

Ale co teď?

K čemu lze tuto technologii vlastně použít? Co je s ní možné - dnes, zítra, pozítří?

Odpověď: poměrně hodně.

Protože to, co tu máte, je víc než jen chatbot. Je to na platformě nezávislý myslící stroj s dlouhodobou pamětí. A to otevírá dveře.

🔍 1. databáze osobních znalostí

Jako osobní dlouhodobou paměť můžete použít Ollama + Qdrant.
Dokumenty, poznámky z rozhovorů, nápady - vše, co mu řeknete, lze sémanticky ukládat a vyhledávat.

Příklad:

"Jaký byl můj obchodní nápad z minulého čtvrtka?"

"Kteří zákazníci chtěli v březnu upgrade?"

Místo prohledávání složek se jednoduše zeptáte systému. Obzvláště zajímavé je, že funguje i při nepřesných dotazech, protože Qdrant vyhledává sémanticky, nejen podle klíčových slov.

📄 2. automatické protokolování a shrnutí

V kombinaci se zvukovým nebo textovým vstupem může systém vést průběžný protokol:

  • Poznámky na schůzkách
  • Hovory se zákazníky
  • Denní záznamy nebo historie projektů

Tato data se automaticky ukládají do paměti Qdrant, a proto je lze později vyhledávat jako asistenta:

"Co že to pan Meier říkal o té dodávce?"

"Jaký byl proces projektu XY?"

🧠 3. osobní kouč nebo asistent pro vedení diáře

Pravidelným zapisováním myšlenek, nálad nebo rozhodnutí si můžete vytvořit reflexního společníka:

"Jaký byl můj největší pokrok v tomto měsíci?"

"Jak jsem tehdy reagoval na neúspěchy?"

Systém vás časem pozná - a stane se skutečným zrcadlem, ne jen chatbotem.

💼 4. obchodní aplikace s FileMaker

Pokud - stejně jako já - používáte FileMaker, můžete tuto konfiguraci připojit přímo:

  • Odesílání výzev z FileMaker
  • Automatické načítání a ukládání odpovědí
  • Řízení přístupu do paměti přímo prostřednictvím rozhraní REST API nebo shellového skriptu

To vytváří mimořádně silnou kombinaci:

  • FileMaker = Front end, uživatelské rozhraní, řídicí centrum
  • Ollama = Jazyková inteligence
  • Qdrant = sémantická dlouhodobá paměť

Výsledkem je skutečná součást AI pro řešení FileMaker - místní, bezpečná a přizpůsobená.

🛠️ 5. Podpora v každodenním životě: připomínky, nápady, doporučení

"Připomeňte mi tento nápad příští týden."

"Které knihy jsem vám už doporučil?"

"Co bych mohl panu Müllerovi nabídnout dál?"

Díky cílené logice paměti (časová razítka, kategorie, uživatelé) můžete cíleně strukturovat paměť a používat ji v mnoha oblastech života a podnikání.

🤖 6. základ agentního systému

Pokud budete přemýšlet dopředu, můžete s tímto nastavením vytvořit i systémy podobné agentům:

  • Umělá inteligence přebírá jednoduché úkoly
  • Umělá inteligence rozpoznává vzorce v průběhu času
  • Umělá inteligence dává proaktivní nápovědy

Příklad:

"Tento týden jste se čtyřikrát zeptal na stejnou otázku - chcete si uložit poznámku?"

"O tomto produktu se zmínil nápadný počet zákazníků - mám vám to shrnout?"

🌐 7. integrace s dalšími nástroji

Systém lze snadno propojit s dalšími nástroji:

  • Neo4jgraficky znázornit sémantické vztahy
  • Soubory a PDFautomaticky indexovat obsah
  • Parser poštyanalyzovat a zapamatovat si e-maily
  • Hlasoví asistentikomunikovat prostřednictvím hlasu

🔐 8. vše zůstává lokální - a pod kontrolou

Největší výhoda: o tom, co se uloží, rozhodujete vy. Vy rozhodujete, jak dlouho to zůstane uložené. A: pokud nechcete, nikdy neopustí váš počítač. Ve světě, kde se mnoho lidí slepě spoléhá na cloudovou umělou inteligenci, je to silná protiváha - zejména pro freelancery, vývojáře, autory a podnikatele.


Aktuální průzkum používání místních systémů umělé inteligence

Co si myslíte o lokálně provozovaném softwaru AI, jako je MLX nebo Ollama?

Zkrocení Ollama + Qdrant: Jak dát místní umělé inteligenci strukturu, pravidla a vyladění?

Každý, kdo si dal tu práci a nainstaloval Ollama a Qdrant lokálně na Mac, už dosáhl velkých úspěchů. Nyní máte:

  • UI v místním jazyce
  • Sémantická paměť
  • A funkční potrubí, které mapuje Prompt → Paměť → Ollama → Odpověď

Každý, kdo s ním pracuje, si však rychle uvědomí, že potřebuje pravidla. Struktura. Řád.
Bez kontroly se totiž váš asistent rychle změní v žvanila, který si toho pamatuje příliš mnoho, neustále se opakuje nebo vytahuje nepodstatné vzpomínky.

🧭 Co vám ještě chybí?

Orchestr má také dirigenta. A to je přesně váš úkol: řídit, nikoliv jen využívat.

Modul 1: "Směrovač" pro paměťovou logiku

Namísto tupého ukládání všeho nebo tupého vyhledávání všeho byste se měli předem rozhodnout, zda něco vůbec ukládat nebo načítat. Můžete to udělat například pomocí jednoduchého směrovače relevance, který umístíte mezi výzvu a paměť:

PříkladZkontrolujte relevanci prostřednictvím výzvy k samotnému Ollama

def is_relevant_for_memory(prompt, response):
prüf_prompt = f"""
Nutzer hat gefragt: "{prompt}"
Die KI hat geantwortet: "{response}"
Sollte man sich diesen Dialog langfristig merken? Antworte nur mit 'Ja' oder 'Nein'.
"""
result = query_ollama([], prüf_prompt).strip().lower()
return result.startswith("ja")

Zadáte tedy Ollama úkol vyhodnotit jeho odpověď - a teprve pokud je klasifikována jako relevantní, uložíte ji do Qdrantu.

Modul 2: Vyloučení starších zpráv (kontextové omezení)

Zejména u delších relací se stává problematickým, pokud se v kontextu znovu objevují staré zprávy. Model nezapomíná - zabředává.

ŘešeníOmezit kontextové okno.

Toho můžete dosáhnout dvěma způsoby:

Metoda 1: Omezit počet zásahů

context = search_memory(user_prompt, top_k=3)

Zde se načítá pouze to, co je sémanticky relevantní - ne vše.

Metoda 2: Omezit čas

# Nur Nachrichten der letzten 7 Tage
now = datetime.utcnow()
filter = Filter(
must=[
FieldCondition(key="timestamp", range=Range(gte=now - timedelta(days=7)))
]
)

Pokud tedy systém zasahuje příliš daleko do minulosti, můžete čas "odříznout".

Modul 3: Zavedení kontextových vah a značek

Ne každý záznam v paměti má stejnou hodnotu. Můžete jim přiřadit váhu nebo kategorie:

  • Opraveno (např. "Uživatel se jmenuje Markus")
  • Dočasné (např. "Dnes je úterý").
  • Situační (např. "Chat od dnešních 10:30")

Qdrant podporuje tzv. payloads - tj. dodatečné informace k jednotlivým položkám. To umožňuje pozdější filtrování nebo stanovení priorit.

Modul 4: Jemné doladění pomocí výzvy

Samotná výzva je výkonná řídicí jednotka.
Zde je několik triků, které můžete použít, aby byl Ollama chytřejší:

Příklad výzvy s pokyny:

Jste místní asistent se sémantickou pamětí. Pokud najdete několik pamětí, použijte pouze tři nejvhodnější. Neodkazujte na informace starší než 10 dní, pokud nejsou výslovně označeny. Ignorujte triviální vzpomínky jako "Dobré ráno" nebo "Děkuji". Odpovídejte přesně a stylem zkušeného poradce.

To umožňuje provádět jemné doladění přímo v samotné výzvě - bez nových modelů, bez školení.

A dále: výzvu můžete generovat dynamicky - v závislosti na situaci.

Modul 5: Hygiena skladování

Jak paměť roste, stává se nepřehlednou.
Jednoduchý skript pro údržbu, který odstraní irelevantní nebo duplicitní obsah, má cenu zlata.

Příklad:

"Zapomeňte na všechno, co souvisí s "počasím"."

"Odstranit záznamy, které jsou starší než 3 měsíce a nikdy nebyly načteny."

Qdrant to podporuje prostřednictvím rozhraní API - a můžete to automatizovat například jednou týdně.

Modul 6: FileMaker jako ústředna

Pokud stejně jako já pracujete s FileMaker, můžete vše ovládat na dálku prostřednictvím rozhraní REST-API:

  • Odeslat neprodleně
  • Získat kontext
  • Obdržená odpověď
  • Nechte si provést ocenění
  • Uložit nebo zapomenout

Potřebujete pouze malý modul REST v FileMaker (Vložit z URL pomocí JSON) a několik skriptů.

Výsledkem je rozhraní, které vám umožní ovládat umělou inteligenci jako živý notebook - ale s inteligencí.

🔚 Závěr: Umělá inteligence je tak dobrá, jak dobré je její vedení

Ollama je výkonný. Qdrant je flexibilní. Ale bez jasných pravidel se oba stávají nestrukturovanou hromadou dat. Trik spočívá v tom, že neukládáte všechno - ale uchováváte jen to, co je relevantní, a přemýšlíte účelně, místo abyste si jen pamatovali.

Nová série článků: Historie ChatGPT jako znalostní báze pro vaši umělou inteligenci

Export dat ChatGPTPokud jste si již vytvořili vlastní paměť AI s Ollama a Qdrant, stojí za to podívat se na novou sérii článků, která začíná právě zde. Je o tom, jak Integrace exportu dat ChatGPT do tohoto systému umožňuje. Mnoho uživatelů si ani neuvědomuje, že mohou exportovat celou historii svých chatů - a že tato data jsou cenným zdrojem znalostí. V tomto seriálu vám ukážu, jak tyto konverzace analyzovat, převést je do vložených dat a poté je importovat do vektorové databáze. Díky tomu může vaše místní umělá inteligence později přistupovat k předchozím konverzacím a používat je jako kontext pro odpovědi. Tímto způsobem z jednotlivých dialogů postupně vyrůstá osobní archiv znalostí.


Aktuální články o umělé inteligenci

Často kladené otázky

  1. Proč místní UI vůbec potřebuje „paměť“? Nestačí jazykový model?
    Jazykový model pracuje pouze s aktuální výzvou a kontextem, který mu právě zadáváte. Nepamatuje si tedy trvale předchozí konverzace, dokumenty nebo informace. Právě zde přichází ke slovu lokální paměť. Přídavná databáze umožňuje umělé inteligenci ukládat předchozí obsah a v případě potřeby jej načíst. Model pak při odpovídání obdrží nejen vaši aktuální otázku, ale také relevantní informace z této paměti. Výsledkem jsou mnohem konzistentnější a informovanější odpovědi. Bez takového systému zůstává jazykový model v podstatě čistým generátorem textu bez dlouhodobé znalosti vlastních dat nebo projektů.
  2. Co přesně je Qdrant a proč se v tomto systému používá?
    Qdrant je moderní vektorová databáze, která byla speciálně vyvinuta pro sémantické vyhledávání. Na rozdíl od tradičních databází ukládá informace nejen jako text, ale jako tzv. vektory - matematické reprezentace významu. To jí umožňuje vyhledávat v obsahu nejen shodná slova, ale také blízkost obsahu. Pokud tedy položíte otázku, Qdrant dokáže najít vhodné pasáže textu ze znalostní báze, i když neobsahují přesně stejné výrazy. V kombinaci s jazykovým modelem tak vzniká jakási inteligentní paměť umělé inteligence.
  3. Co znamená pojem „RAG“, který se v této souvislosti často používá?
    Zkratka RAG znamená „Retrieval Augmented Generation“. Jedná se o techniku, při které jazykový model před poskytnutím odpovědi načte z databáze další informace. Model tedy nejenže generuje svou odpověď na základě trénování, ale také ji doplňuje vhodnými informacemi ze zdroje znalostí. Tato metoda řeší typický problém jazykových modelů: Modely znají pouze to, co se naučily během tréninku. RAG jim místo toho umožňuje přístup k aktuálním nebo osobním údajům - například k dokumentaci, webovým stránkám nebo vlastním poznámkám.
  4. Jak vlastně fungují Ollama a Qdrant dohromady?
    V tomto nastavení přebírá Ollama roli jazykového modelu, zatímco Qdrant funguje jako sémantická paměť. Když položíte otázku, Qdrant nejprve vyhledá relevantní fragmenty textu. Tyto výsledky jsou pak spolu s vaší otázkou předány jazykovému modelu. Model tyto dodatečné informace použije k formulaci fundované odpovědi. Typická posloupnost je tedy následující: Dotaz → Vyhledávání v paměti → Rozšíření kontextu → Generování odpovědi.
  5. Jaké typy dat mohu do této paměti AI zahrnout?
    V podstatě téměř cokoli, co lze převést na text. Patří sem dokumentace, webové stránky, soubory Markdown, PDF, záznamy v databázích nebo dokonce osobní poznámky. Důležité je pouze to, aby bylo možné obsah před uložením do databáze rozdělit na menší textové části. Tyto takzvané „chunky“ později tvoří základ pro sémantické vyhledávání. Umělá inteligence tak může cíleně přistupovat k jednotlivým relevantním částem, místo aby musela prohledávat celé dokumenty.
  6. Proč se místo běžného textového vyhledávání používá vektorová databáze?
    Klasické vyhledávače obvykle pracují s klíčovými slovy. To znamená, že vyhledávají pouze výsledky, které obsahují přesně stejné výrazy. Naproti tomu vektorová databáze vyhledává podle významu. Může tedy najít i texty, které jsou si obsahově podobné, i když byla použita jiná slova. To je pro systémy umělé inteligence zásadní, protože otázky jsou často formulovány jinak než původní dokumenty. Díky sémantickému vyhledávání je spojení mezi otázkou a odpovědí mnohem spolehlivější.
  7. Jak se vlastně texty převádějí na vektory?
    K tomuto účelu se používají takzvané embedding modely. Tyto modely analyzují texty a převádějí je na číselné vektory, které reprezentují jejich význam. Každý úsek textu tak získá matematickou reprezentaci v tzv. vektorovém prostoru. Podobný obsah je blíže u sebe než zcela odlišná témata. Pokud je později položena otázka, je rovněž převedena na vektor. Qdrant pak dokáže velmi rychle najít nejpodobnější položky v paměti.
  8. Proč se Qdrant často používá prostřednictvím Dockeru installiert?
    Docker výrazně zjednodušuje instalaci složitého softwaru. Místo ručního nastavování mnoha jednotlivých závislostí se Qdrant jednoduše spustí v kontejneru. To znamená, že instalace spolehlivě funguje na různých systémech a lze ji snadno spustit nebo zastavit. Tato metoda je praktická zejména na počítačích Mac, protože udržuje systém čistý a zároveň poskytuje stabilní prostředí pro databázi.
  9. Mohu tento systém provozovat zcela offline?
    Ano, to je jedna z největších výhod této architektury. Jazykový model i vektorová databáze běží lokálně na vašem počítači. To znamená, že se žádná data neodesílají na externí servery. Vzniká tak zcela soukromé prostředí umělé inteligence. To je rozhodující výhoda oproti cloudovým systémům, zejména v případě citlivých dat nebo interních firemních dokumentů.
  10. Jak velká může být taková lokální paměť UI?
    To závisí především na úložném prostoru a výkonu systému. Moderní vektorové databáze si snadno poradí s miliony textových fragmentů. Pro mnoho osobních projektů však stačí k vytvoření velmi výkonného znalostního systému jen několik tisíc dokumentů. Kvalita datové struktury je důležitější než samotné množství informací.
  11. Může se umělá inteligence pomocí tohoto systému skutečně „učit“?
    Ne v klasickém smyslu. Samotný jazykový model není přeškolován. Místo toho se znalosti ukládají mimo model a v případě potřeby se načítají. Ačkoli to vypadá, že se umělá inteligence dokáže učit, ve skutečnosti pouze přistupuje k neustále se rozšiřujícímu skladu znalostí. Tento přístup má jednu velkou výhodu: kdykoli lze přidat nové informace, aniž by bylo nutné model znovu trénovat.
  12. Jaké praktické aplikace vyplývají z takové lokální paměti UI?
    Možnosti jsou úžasně rozmanité. Můžete si například vytvořit osobní databázi znalostí, nechat prohledávat technickou dokumentaci nebo analyzovat interní firemní dokumenty. Výhodu mají také autoři, vývojáři nebo výzkumní pracovníci, protože mohou strukturovaně zpřístupnit velké množství informací. V podstatě tak vzniká jakýsi osobní výzkumný asistent, který rozumí vašim vlastním datům.
  13. Mohu integrovat několik zdrojů dat najednou?
    Ano, Qdrant umožňuje každému fragmentu textu přidat další metadata, například zdroj, kategorii nebo jazyk. To umožňuje spravovat různé databáze společně. Tato metadata lze při vyhledávání dokonce specificky filtrovat. UI může například brát v úvahu pouze obsah z konkrétní dokumentace nebo konkrétního projektu.
  14. Jak se tento systém liší od klasických chatbotů?
    Většina chatbotů pracuje výhradně se znalostmi své tréninkové sady dat. Nemohou tedy poskytovat žádné konkrétní informace o vašem vlastním obsahu. Systém RAG naproti tomu kombinuje jazykový model s individuální znalostní bází. To umožňuje umělé inteligenci poskytovat odpovědi, které jsou přímo přizpůsobené vašim vlastním datům. Díky tomu je mnohem užitečnější pro produktivní práci.
  15. Jakou roli hraje Python v tomto nastavení?
    Python se často používá k řízení spojení mezi jazykovým modelem a databází. Pomocí několika skriptů lze načíst texty, převést je na vektory a uložit do Qdrantu. Python může také provádět vyhledávání a přenášet nalezené výsledky do jazykového modelu. Vzniká tak flexibilní pipeline, kterou lze přizpůsobit vlastním požadavkům.
  16. Je nastavení takového systému určeno pouze pro vývojáře?
    Ne nutně. Přestože nastavení systému vyžaduje určité technické znalosti, řada potřebných nástrojů je nyní mnohem jednodušší. S trochou trpělivosti lze funkční systém nastavit i bez hlubších znalostí programování. Každý, kdo se jím jednou zabýval, rychle pozná obrovský potenciál takovýchto lokálních infrastruktur umělé inteligence.
  17. Jaké jsou limity místní paměti UI?
    Nejdůležitějším omezením je výpočetní výkon vlastního počítače. Velké modely nebo obrovské znalostní databáze mohou vyžadovat více paměti a výkonu procesoru. Kvalita odpovědí také do značné míry závisí na struktuře dat. Pokud jsou dokumenty špatně připravené, může umělá inteligence poskytovat dobré výsledky jen v omezené míře.
  18. Proč je tato kombinace Ollama a Qdrant považována za obzvláště zajímavou architekturu pro místní umělou inteligenci?
    Spojuje totiž dvě klíčové součásti: výkonný jazykový model a rychlou sémantickou databázi. Společně vytvářejí kompletní pracovní prostředí pro umělou inteligenci, které lze provozovat zcela lokálně. Díky tomu lze vytvořit osobní znalostní systémy, inteligentní vyhledávače nebo specializované asistenty - bez závislosti na cloudu a s plnou kontrolou nad vlastními daty.

Aktuální články o umění a kultuře

Markus Schall

Markus Schall je vydavatelem, autorem a vývojářem obchodních řešení založených na FileMaker od 90. let 20. století. Zaměřuje se na kombinaci technologií, podnikání a jasného strategického myšlení. Ve svých článcích a knihách se zabývá digitálními obchodními modely, umělou inteligencí a otázkou, jak vytvořit udržitelné a nezávislé systémy. Prosazuje klidný, analytický přístup s cílem srozumitelně a prakticky představit složité vzájemné souvislosti.

Napsat komentář