x2027
AI: ChatGPT & Claude, Gemini, OpenAI, Hugging Face, NVIDIA/NIM
AI: ChatGPT & Claude, Gemini, OpenAI, Hugging Face, NVIDIA/NIM
10:16
Ik pak dit nu als X2027 Intelligence v1.2 aan: niet alleen “meer links”, maar een nieuws- en kennisinfrastructuur die zichzelf kan vullen. Ik combineer drie lagen: curated officiële padelbronnen + honderden meertalige zoek/RSS-feeds + automatische bronontdekking, zodat X2027 naar 1000+ bronnen kan groeien zonder dat jij ze handmatig hoeft te onderhouden.
De belangrijkste technische beperking is quota/tijd: 1000 feeds in één klik ophalen gaat Apps Script niet betrouwbaar volhouden. Daarom maak ik het als een echte crawler: 1000+ bronnen staan wel direct in de Sheet, maar X2027 verwerkt ze in batches met een cursor, kan elk uur automatisch verdergaan, dedupliceert artikelen en onthoudt waar hij gebleven is. Zo groeit de nieuwslaag continu zonder betaalde nieuws-API.
Ik maak ook de lokale AI slimmer zonder externe key. Als je bijvoorbeeld “wat gebeurt er vandaag rond padel AI?” vraagt en de Sheet heeft weinig context, doet X2027 voortaan eerst een live meertalige RSS-zoekronde, slaat nieuwe artikelen op en bouwt daarna een brongebaseerd lokaal antwoord. Een externe AI-key wordt dan verdieping, niet meer een voorwaarde om nuttige intelligence te krijgen.
Ik kan de gekoppelde x2027 Sheet zelf al voorbereiden, ook al kan ik je Apps Script-project niet rechtstreeks overschrijven. Ik voeg nu de nieuwe nieuwsstructuur aan de echte Sheet toe: extra bronvelden, publishervelden, een DiscoveredSources-tab en de nieuwsconfiguratie. Daarna hoeft de nieuwe Code.gs alleen nog x27Setup() te draaien om de 1000 discovery-feeds in bulk te vullen.
Dit was precies de ontbrekende laag. Ik heb X2027 Intelligence v1.2 nu verder ontwikkeld zodat “lokale intelligence” niet langer betekent: geen bronnen, stel een API-key in.
De nieuwe flow wordt:
vraag → lokale Knowledge/FeedItems → onvoldoende? → live internationale RSS-search → artikelen opslaan → publishers ontdekken → context bouwen → LOCAL intelligence óf externe AI → resultaat
X2027 krijgt 1000 meertalige discovery-feedconnectors verdeeld over ongeveer 40 landen/taalinstellingen en 25 zoekgebieden, waaronder padel, padel news, players, coaching, lessons, training, tactics, technique, clubs, courts, business, technology, padel AI, Premier Padel en FIP.
Ik heb daarbij bewust niet gedaan alsof er precies “1000 unieke gespecialiseerde padelnieuwssites” bestaan. De betere architectuur is:
1000 discovery-connectors → artikelen → echte publishers/sites ontdekken → DiscoveredSources
Zo groeit de database vanzelf.
Daarnaast heb ik een curated laag opgenomen voor onder andere Premier Padel, FIP, NL Padel/KNLTB, Spaanse en Franse federatiebronnen en internationale padelmedia.
Ik heb de gekoppelde Google Sheet daadwerkelijk uitgebreid met:
Sources
→ extra velden voor origin, homepage, query, locale, publisher domain, prioriteit, fetchfrequentie enz.
FeedItems
→ publisherName, publisherUrl, language en country.
DiscoveredSources
→ nieuwe tab voor automatisch ontdekte nieuwswebsites/publishers.
Config
→ NEWS_BATCH_SIZE = 12
→ NEWS_CURSOR = 0
→ NEWS_UNIVERSE_TARGET = 1000
→ NEWS_LIVE_SEARCH = TRUE
→ NEWS_AUTO_REFRESH = TRUE
De bestaande data is daarbij behouden.
In de nieuwe Nieuws-pagina komen knoppen voor:
Live zoeken · gratis RSS — bijvoorbeeld padel AI, Premier Padel, padel Nederland, bandeja.
Laatste updates — leest je opgebouwde FeedItems.
Volgende feedbatch — verwerkt 12 van de 1000 bronnen en schuift daarna de cursor door.
Nieuwsstatus — toont bijvoorbeeld:
1000 discovery-feeds · 87 publishers ontdekt · 426 artikelen · cursor 144/1012
Bronnen — toont de feed/search-connectors.
Ontdekte sites — toont de echte uitgevers die X2027 onderweg heeft gevonden.
Automatisch elk uur — installeert x27NewsTick() als Apps Script-trigger.
Dat laatste is belangrijk: Apps Script moet niet proberen 1000 websites in één uitvoering te verwerken. De crawler gaat er in kleine batches doorheen.
Zonder Gemini/OpenAI/Claude/HF/NVIDIA-key kan een vraag zoals:
Wat zijn de nieuwste ontwikkelingen rond padel en AI?
nu eerst automatisch actuele RSS-resultaten ophalen.
LOCAL kan vervolgens bijvoorbeeld teruggeven:
X2027 vond 8 relevante bronitems...
met de artikelen en bronlinks.
Een externe AI-provider wordt daardoor een verdiepingslaag, geen noodzakelijke voorwaarde voor het vinden van informatie.
Met een provider wordt het:
gratis nieuws/RSS → X2027 RAG-context → Gemini/HF/OpenAI/Claude/NVIDIA → analyse
zonder provider:
gratis nieuws/RSS → X2027 lokale intelligence
X2027 gebruikt nu een provider-onafhankelijke AI-router:
AUTO -> Gemini -> Hugging Face -> NVIDIA/NIM -> OpenAI -> Claude -> LOCAL
Alleen providers met een ingestelde API-key worden in AUTO extern aangeroepen. LOCAL werkt altijd en gebruikt de bestaande Sheet/Feed/Knowledge-context zodat Genereer slim niet meer eindigt met Geen AI-model actief.
vervang Code.gs door x2027_Code_v1_1.gs
vervang Index.html door x2027_Index_v1_1.html
sla op
voer x27Setup() opnieuw 1 keer handmatig uit
x27Setup() voegt nieuwe v1.1 modelregels toe zonder de bestaande data te wissen.
Apps Script -> Projectinstellingen -> Script Properties.
Voeg alleen de providers toe die je zelf wilt gebruiken:
GEMINI_API_KEY = Google Gemini API key
HF_API_KEY = Hugging Face token
NVIDIA_API_KEY = NVIDIA build/NIM API key
OPENAI_API_KEY = OpenAI API key
ANTHROPIC_API_KEY = Anthropic/Claude API key
Zet nooit API-keys in Index.html, Google Sites of een publieke Sheet-cel.
Apps Script -> Deploy -> Manage deployments -> Edit -> New version -> Deploy.
Open daarna de /exec URL opnieuw en kies:
AI Brein -> Provider -> AUTO -> vraag -> Genereer slim
Open Providerstatus om te zien welke routes klaar zijn.
LOCAL: volledig gratis; gebruikt eigen Sheet/PadelStudy-context, maar is geen extern generatief model.
Gemini: Google biedt voor bepaalde modellen een developer free tier; quota en modelbeschikbaarheid kunnen wijzigen.
Hugging Face Inference Providers: heeft een free tier en routeert open modellen via een uniform endpoint.
NVIDIA NIM: NVIDIA biedt free serverless development endpoints voor geselecteerde modellen.
OpenAI: API is los van een ChatGPT-abonnement en voor de gebruikte GPT API-modellen moet je API-billing/credits hebben.
Claude: Claude API is los van een Claude-chatabonnement en is normaal verbruiksgebaseerd betaald.
AUTO voorkomt vendor lock-in. De Site vraagt alleen om een taak. Apps Script kiest de beschikbare provider. Het resultaat wordt samen met provider/model in AIRequests en AIResults opgeslagen.
Architectuur:
vraag -> PadelStudy context -> AI Router -> provider -> model -> resultaat -> Sheet -> evaluatie/NEXT
Ik bouw dit als één PadelOS/PadelStudy “brein” boven Site → Sheet → Apps Script, met jouw huidige login/MES-opzet als fundament. Ik neem je bestaande Code.gs en Index.html als patroon en werk van architectuur → datamodel → AI-engine → zoek/nieuws/RSS → user-based views → concrete eerste build.
Used padelos skill
De huidige basis is al sterk genoeg om niet opnieuw te beginnen: je backend heeft mailcode, wachtwoord, 24-uurs sessies, user state, lessen, observaties, bootstrap en health-check, terwijl je frontend al responsive navigatie, lesbouwer, lokale opslag, synchronisatie en import/export bevat.
De nieuwe stap wordt daarom geen losse “AI-chat”, maar een Padel Intelligence Engine die bronnen verzamelt, normaliseert, beoordeelt en per gebruiker omzet in nieuws, lessen, analyses, stappenplannen en coachingkennis.
Used spreadsheets skill
Ik zie ook een belangrijk ontwerpprincipe uit je huidige frontend: de bestaande app kan al lokaal blijven werken wanneer google.script.run niet beschikbaar is, en schakelt naar de Apps Script-backend zodra die actief is. Dat is precies de juiste basis voor “portable runtime”: browser/UI blijft los van Sheet en AI-provider.
Voor het AI-brein maak ik daarom dezelfde abstractie: taak → padelcategorie → bron/data → model/provider → resultaat → evaluatie → opslag. Zo kan later Gemini, OpenAI, Hugging Face, NVIDIA/NIM of een eigen endpoint worden gewisseld zonder je Site of Sheet opnieuw te bouwen.
Ik maak dit nu provider-onafhankelijk: één AI Router waarin de gebruiker een provider kan kiezen, met automatische fallback en duidelijke status per provider. Belangrijk verschil: ChatGPT en Claude als websites zijn niet rechtstreeks “gratis” vanuit Apps Script aan te roepen; daarvoor gebruiken we hun API’s of een open/free-tier provider. Ik bouw daarom zowel officiële API-koppelingen als gratis/fallback routes in, zodat de app niet meer eindigt op “Geen AI-model actief”.
Voor “gratis waar mogelijk” zet ik AUTO bovenaan: eerst een geconfigureerde free-tier/open-model route, daarna andere providers, en uiteindelijk een lokale PadelStudy/Sheet-contextfallback. Daarmee blijft Genereer slim altijd bruikbaar, ook als één API-key ontbreekt of een provider tijdelijk weigert.
Daarnaast krijgt de gebruiker een zichtbare providerkeuze:
AUTO · Gemini · ChatGPT/OpenAI · Claude · Hugging Face · NVIDIA/NIM · lokaal.
De API-sleutels blijven uitsluitend server-side in Apps Script Properties.
Google Site → gedeployde Apps Script webapp → Google Sheet x2027 → bronnen + AI providers.
Open het bestaande Apps Script project.
Vervang/maak Code.gs met x2027_Code.gs.
Maak HTML-bestand Index en plak x2027_Index.html.
Sla op.
Voer in de editor éénmalig x27Setup() uit en geef de gevraagde rechten.
x27Setup() maakt de tabbladen en seed-data automatisch in Sheet x2027.
API keys staan alleen in Apps Script → Project Settings → Script Properties.
Voor OpenAI-compatible/NVIDIA NIM:
AI_API_KEY = de sleutel
optioneel AI_ENDPOINT als het endpoint niet in tab Models staat
Voor Hugging Face:
HF_API_KEY = Hugging Face token
Ga daarna naar tab Models en zet één model op enabled = TRUE.
Vul provider, model, endpoint, runtime en hardware in.
Providers die deze basis ondersteunt:
OPENAI_COMPAT
HUGGINGFACE
NVIDIA_NIM (OpenAI-compatible endpoint)
Tab AIRoutes bepaalt per taak welk model wordt gebruikt.
Voorbeeld:
routeId
task
category
provider
model
runtime
priority
enabled
route_lesson
LESSON
PADEL_LESSON
OPENAI_COMPAT
jouw-model
CLOUD_API
1
TRUE
route_news
SUMMARY
PADEL_NEWS
HUGGINGFACE
jouw-open-model
CLOUD_API
1
TRUE
Zonder AIRoute gebruikt het systeem het eerste actieve model uit Models.
Tab Sources:
type = RSS voor RSS/Atom feeds
type = WEB voor een gewone webpagina
enabled = TRUE om de bron te activeren
x27RefreshSources() haalt de bronnen op en bewaart nieuwe items in FeedItems.
De functie is beperkt tot TRAINER, ADMIN en SUPERADMIN.
Maak later een tijdtrigger voor x27RefreshSources als je automatisch nieuws wilt ophalen.
Flow:
mailcode aanvragen
code controleren
account wordt bij eerste login aangemaakt
gebruiker kan wachtwoord instellen
sessie blijft standaard 24 uur geldig
Nieuwe users krijgen standaard rol PLAYER. Verander de rol in Users naar TRAINER, ADMIN of SUPERADMIN wanneer nodig.
Deploy Apps Script als webapp en embed die webapp in:
https://sites.google.com/view/x2027
De Apps Script webapp is de interactieve applicatie. Google Sites is de shell/navigatie/publicatie-laag.
taak → categorie → lokale kennis/feed → prompt → AIRoute → provider/model/runtime/hardware → resultaat → AIRequests/AIResults → evaluatie/kennis
PadelStudy leerflow:
speler → niveau → hoofdspelsituatie → slag → bedoeling → NBF → GRAS/FACT → A1 → A2 → B → Socratisch → evaluatie → NEXT
x27Setup()
Deploy webapp
Open webapp
Login met mailcode
Test Diagnose
Zet één AI-model aan
Vraag: Maak een service-les voor niveau 7 met timing als NBF en focus op de eerste volley.
Voeg een RSS-feed toe en test Bronnen vernieuwen