aikb — osvežavanje istorije jednom komandom

Skidanje razgovora sa ChatGPT/Gemini/AI Mode, uvoz i indeksiranje bez LLM poziva: komanda, prekidači, vodeni žig i kvarovi

↑ Nazad

Skidanje razgovora sa ChatGPT-a, Gemini-ja i Google AI Mode-a, uvoz u korpus i indeksiranje. Ceo lanac je bez ijednog LLM poziva — skripte pričaju sa Chrome-om preko CDP-a i parsiraju DOM/API. Jedini korak koji troši model je graf, i on se lako izostavi.

Projekat: E:\Work\AI\chathistory (paket aikb). Stanje na dan 21.09.2026: 4858 razgovora, 40.778 vektora.

Komanda

cd E:\Work\AI\chathistory
python -m aikb refresh --harvest

To je sve. Komanda sama:

  1. upali Chrome sa zasebnim profilom (C:\chrome-cdp) ako ne radi — od verzije 136 Chrome ignoriše --remote-debugging-port nad podrazumevanim profilom, zato zaseban;
  2. upali ollama serve ako ne radi (treba samo za vektorski indeks);
  3. skine novo sa Gemini, AI Mode i ChatGPT-a;
  4. uveze u corpus/, pa sync (keyword indeks) i vindex (vektori);
  5. zatvori Chrome koji je sama upalila;
  6. pusti nadzornika grafa u pozadini.

Jedino što traži od tebe: da profil C:\chrome-cdp bude ulogovan na nalozima. Ako nije, skripta to kaže jasno ([x] nema accessToken — uloguj se na ...) i prolaz staje.

Prekidači

prekidaččemu služi
--no-graphizostavi jedini korak koji troši model
--dry-runispiši plan, ne pokreći ništa
--since 2026-09-01ručni vodeni žig za ChatGPT umesto izračunatog
--keep-chromeostavi prozor otvoren posle skidanja
--no-vindexpreskoči vektorski indeks (onda ne treba ni Ollama)
--no-sessionspreskoči uvoz agent-sesija (Claude Code, Codex, OpenCode)
--stop-on-errorstani na prvom koraku koji padne

Bez --harvest komanda radi samo uvoz postojećeg sirovog materijala + indeksiranje, bez diranja naloga.

Vodeni žig: zašto iz korpusa, a ne iz vremena pokretanja

ChatGPT se ne lista ceo svaki put — uzima se samo ono izmenjeno posle žiga. Žig se računa kao najnoviji updated_at u corpus/openai/ minus dva dana.

Alternativa je bila da se pamti kad je update poslednji put pokrenut. Odbačena je zato što vreme pokretanja beleži da se posao desio, a ne da je rezultat stigao na disk. Ta dva se razilaze čim nešto pukne na pola, a ovde je puklo dva puta:

Da se žig u tim trenucima pomerio na „sad", sledeći prolaz bi počeo ispod tih razgovora i oni bi tiho ostali van baze — bez ijedne poruke o grešci. Žig iz korpusa taj scenario ne poznaje: ako uvoz padne, korpus se nije pomerio, pa se isto povuče ponovo (importer je idempotentan, ponovljeno prolazi kao „nepromenjeno"). Greši samo na stranu viška, nikad na stranu preskakanja.

Gemini i AI Mode ne koriste žig — oni porede listu iz naloga sa onim što već stoji na disku.

Graf (jedini korak koji košta)

tools/graph_supervisor.py obrađuje nove dokumente kroz model (opencode/GPT kvota). Sam prati limit preko oc-usage, spava do reseta i nastavlja — ne treba ga nadgledati. Stanje:

Get-Content index\supervisor.log -Tail 30

Ako u preseku piše LIMIT, nadzornik samo spava do reseta — to nije kvar. Dva nadzornika ne mogu da rade uporedo: drugi vidi prvog, ispiše presek njegovog posla i izađe.

Zasebno pokretanje: python tools/graph_supervisor.py, zaustavljanje: --stop.

Kad nešto ne radi

Prazna lista razgovora, ili klik na nit ne prolazi. Uzrok je najčešće uzak prozor: ispod ~1000 px Gemini i AI Mode sakriju bočnu traku, a dugmad ostanu u DOM-u kao nevidljiva (0×0), pa klik visi do isteka. Skripte sada same postave prozor na 1440×900 i otvore traku — ako se ponovi, prvo proveri širinu, pa tek onda traži promenjen selektor.

vindex stoji i ništa ne ispisuje. Ollama nije pokrenuta — ne puca nego ponavlja u tišini (mereno: 500 s bez ijednog reda). Provera: curl 127.0.0.1:11434/api/version.

Prolaz ubijen „zbog memorije". vindex snima napredak usput, pa ga je dovoljno pokrenuti ponovo — nastavlja odakle je stao.

Poruka „Nema novih razgovora ... (sve već stoji u korpusu)" nije greška nego uredan ishod. Greška je samo kad ulaz ne postoji ili je prazan.

Šta je gde

putanjasadržaj
raw/openai_live, raw/gemini_live, raw/aimode_livesirovo skinuto — izvor istine, ne briše se
corpus/<izvor>/*.mdkanonski markdown sa frontmatterom
index/index.jsonlkeyword indeks
index/vector/vektorski indeks (lokalno, ollama:all-minilm)
index/supervisor.logdnevnik nadzornika grafa
tools/browser_harvest.mdrunbook: šta je izmereno na živim stranicama

Pretraga

python -m aikb search "pojam"          # keyword
python -m aikb vsearch "pitanje"       # semantički (traži Ollamu)
python -m aikb status                  # broj razgovora po platformi

Izvor: aikb-osvezavanje.md