ഞാൻ ബ്രൗസറിൽ ഒരു CAD എഡിറ്റർ നിർമ്മിച്ചു, തുടർന്ന് ഒരു LLM-നെ അത് ഉപയോഗിക്കാൻ പഠിപ്പിച്ചു

ഞാൻ ബ്രൗസറിൽ ഒരു CAD എഡിറ്റർ നിർമ്മിച്ചു. പിന്നീട് അത് ഒരു AI-ക്ക് നൽകി.

ഒരു ഡെമോയ്ക്കിടെയാണ് ഇതിന്റെ ഫലം ഞാൻ കണ്ടത്. ഞാൻ ആ ആപ്പിനോട് ചോദിച്ചു, "അവിടെ എത്ര വാതിലുകളും ജനലുകളുമുണ്ട്?"

AI അവയെ എണ്ണി. തുടർന്ന് അത് ഇങ്ങനെ കൂട്ടിച്ചേർത്തു: "ശ്രദ്ധിക്കുക: D3 വെറും 300mm വീതിയേയുള്ളൂ. ഇത് തെറ്റായി തിരിച്ചറിഞ്ഞ ഒരു വാതിലായിരിക്കാം. ഞാൻ ഇത് പരിശോധിക്കണോ?"

AI പറഞ്ഞത് ശരിയായിരുന്നു. എന്റെ ഡാറ്റാ പൈപ്പ്‌ലൈൻ ഒരു ജ്യാമിതീയ രൂപത്തെ (geometry) 30 സെന്റീമീറ്റർ വീതിയുള്ള ഒരു വാതിലായി മാറ്റിയിരുന്നു. ഒരു മനുഷ്യനും അത് കണ്ടില്ല. എന്നാൽ ഒരു ഷൂബോക്സിനേക്കാൾ ഇടുങ്ങിയ വാതിലായി അതിനെ കണ്ട AI അത് പ്രത്യേകം ചൂണ്ടിക്കാണിച്ചു.

ഈ പ്രോജക്റ്റിൽ വലിയ സാങ്കേതിക വെല്ലുവിളികൾ പരിഹരിക്കേണ്ടി വന്നു:

• വളരെ പ്രയാസകരമായ DWG ഫയലുകൾ പാഴ്സ് (Parsing) ചെയ്യുക. • ആയിരക്കണക്കിന് ക്രമരഹിതമായ വരകളിൽ നിന്ന് കെട്ടിടങ്ങളുടെ മോഡലുകൾ പുനർനിർമ്മിക്കുക. • HTML5 Canvas ഉപയോഗിച്ച് പൂജ്യത്തിൽ നിന്ന് ഒരു 2D CAD എഡിറ്റർ നിർമ്മിക്കുക. • Claude-നെ ഒരു ഏജന്റായി ടൂളുകളുമായി ബന്ധിപ്പിക്കുക.

സിസ്റ്റം എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത് എന്ന് താഴെ നൽകുന്നു:

  1. അപ്‌ലോഡ്: നിങ്ങൾ ഒരു DWG ഫയൽ ബ്രൗസറിലേക്ക് ഡ്രാഗ് ചെയ്യുന്നു.
  2. പ്രോസസ്സ്: ഒരു ബാക്ക്ഗ്രൗണ്ട് ജോബ് ഫയൽ കൺവേർട്ട് ചെയ്യുകയും ജ്യാമിതീയ രൂപങ്ങൾ (geometry) വേർതിരിച്ചെടുക്കുകയും ചെയ്യുന്നു. ഇത് ഭിത്തികൾ, വാതിലുകൾ, ജനലുകൾ, മുറികൾ എന്നിവ തിരിച്ചറിയുന്നു.
  3. വ്യൂ: സ്നാപ്പിംഗ് (snapping), അൺഡൂ ഹിസ്റ്ററി (undo history) എന്നിവയുള്ള ഒരു 3D വ്യൂവർ, പൂർണ്ണമായ ഒരു 2D എഡിറ്റർ എന്നിവ നിങ്ങൾക്ക് ലഭിക്കുന്നു.
  4. എഡിറ്റ്: മാറ്റങ്ങൾ വരുത്താൻ ഒരു AI ഏജന്റിനോട് ആവശ്യപ്പെടാൻ നിങ്ങൾക്ക് ഒരു ചാറ്റ് പാനൽ ഉപയോഗിക്കാം.

AI വെറുതെ ചാറ്റ് ചെയ്യുക മാത്രമല്ല ചെയ്യുന്നത്. ഡാറ്റാബേസ് എഡിറ്റ് ചെയ്യാൻ അത് ടൂളുകൾ ഉപയോഗിക്കുന്നു. നിങ്ങൾ "ഏറ്റവും നീളമുള്ള ഭിത്തിയിൽ ഒരു ജനൽ ചേർക്കുക" എന്ന് പറഞ്ഞാൽ, AI ആ ഭിത്തി തിരിച്ചറിഞ്ഞ് അവിടെ ജനൽ വെക്കുന്നു.

നിർമ്മാണത്തിൽ നിന്നുള്ള പ്രധാന പാഠങ്ങൾ:

• ഫയൽ ഹെഡറുകളെ (file headers) ഒരിക്കലും വിശ്വസിക്കരുത്. DWG ഫയലുകൾ യൂണിറ്റുകളെക്കുറിച്ച് പലപ്പോഴും തെറ്റായ വിവരങ്ങൾ നൽകുന്നു. അതിനാൽ ഹെഡർ അവഗണിച്ച് സ്കെയിൽ കണ്ടെത്താൻ യഥാർത്ഥ കോർഡിനേറ്റ് നമ്പറുകൾ നോക്കാൻ ഞാൻ പഠിച്ചു. • ഒരു സിംഗിൾ റൈറ്റ് പാത്ത് (single write path) ഉപയോഗിക്കുക. UI, ഇംപോർട്ട് പൈപ്പ്‌ലൈൻ, AI എന്നിവയെല്ലാം ഒരേ വാലിഡേറ്റഡ് പാത്ത് ഉപയോഗിക്കുന്നു. ഇത് AI അസാധ്യമായ ജ്യാമിതീയ രൂപങ്ങൾ നിർമ്മിക്കുന്നത് തടയുന്നു. • AI-ക്ക് ഒരു അൺഡൂ സ്റ്റോറി (undo story) നൽകുക. AI ഒരു മാറ്റം വരുത്തുമ്പോൾ, ആ മുഴുവൻ പ്രക്രിയയെയും സിസ്റ്റം ഒരു സിംഗിൾ അൺഡൂ സ്റ്റെപ്പായി മാറ്റുന്നു. AI എന്തെങ്കിലും തെറ്റ് ചെയ്താൽ, എല്ലാം പഴയപടിയാക്കാൻ നിങ്ങൾക്ക് Ctrl+Z അമർത്താം. • ഗണിതപരമായ പരിധികളേക്കാൾ (math thresholds) ടോപ്പോളജിക്കൽ നിയമങ്ങൾ (topological rules) ഉപയോഗിക്കുക. തുടക്കത്തിൽ ഞാൻ വിസ്തീർണ്ണം (area) അടിസ്ഥാനമാക്കി മുറികൾ കണ്ടെത്താൻ ശ്രമിച്ചു. എന്നാൽ L-ആകൃതിയിലുള്ള കെട്ടിടങ്ങളിൽ ഇത് പരാജയപ്പെട്ടു. തുടർന്ന് ഞാൻ ഒരു ടോപ്പോളജിക്കൽ നിയമം സ്വീകരിച്ചു: ഒരു കണക്റ്റഡ് അറേഞ്ച്മെന്റിലെ ഏറ്റവും വലിയ ഫേസ് (face) എപ്പോഴും പുറംഭാഗമായിരിക്കും. ബാക്കിയുള്ളവ മുറികളായി കണക്കാക്കാം.

പ്രയാസകരമായ ഭാഗം AI ആയിരുന്നില്ല. മറിച്ച്, അജ്ഞാതമായ വരകളെ യഥാർത്ഥ കെട്ടിട ഡാറ്റയാക്കി മാറ്റുന്നതായിരുന്നു. അടിസ്ഥാനം ശക്തമായതുകൊണ്ട് AI ഫീച്ചർ വികസിപ്പിക്കാൻ ഏതാനും ദിവസങ്ങൾ മാത്രമേ എടുത്തുള്ളൂ.

Source: https://dev.to/arif/i-built-a-cad-editor-in-the-browser-then-taught-an-llm-to-use-it-1l92

Optional learning community: https://t.me/GyaanSetuAi