-- "Что было в этот день в истории" — Wikipedia API + LLM сжатие. local t = jarvis.context.time -- Wikipedia's "On this day" Featured Content API: -- https://api.wikimedia.org/feed/v1/wikipedia/ru/onthisday/events/MM/DD local url = string.format( "https://api.wikimedia.org/feed/v1/wikipedia/ru/onthisday/events/%02d/%02d", t.month, t.day ) local data = jarvis.http.json(url) if not data or not data.events or #data.events == 0 then -- fallback: EN url = string.format( "https://api.wikimedia.org/feed/v1/wikipedia/en/onthisday/events/%02d/%02d", t.month, t.day ) data = jarvis.http.json(url) end if not data or not data.events or #data.events == 0 then return jarvis.cmd.not_found("На этот день в истории ничего интересного.") end -- Pick first 5 events to feed into LLM for summarisation local sample = {} for i = 1, math.min(5, #data.events) do local ev = data.events[i] local year = ev.year or "?" local text = ev.text or "" if text ~= "" then table.insert(sample, year .. ": " .. text) end end local context = table.concat(sample, "\n") local reply = jarvis.llm({ { role = "system", content = "Ты — историк. Из списка событий выбери 2-3 самых интересных для русскоязычного слушателя, расскажи коротко на русском. Без преамбул." }, { role = "user", content = "Сегодня " .. t.day .. " число месяца " .. t.month .. ". События в этот день:\n\n" .. context } }, { max_tokens = 350, temperature = 0.4 }) if not reply or reply == "" then -- Fallback: just speak first event return jarvis.cmd.ok(sample[1] or "Не нашёл интересного.") end return jarvis.cmd.ok(reply)