{"nodes":{"1udsdb4suo2p31e54nfodrcm41tavdu6":{"type":"start","x":0,"y":0,"properties":{"title":"Tools in browser-native on-device LLMs","excerpt":"In GraVersal, an LLM tool is simply a subflow that you can design freely. The LLM dynamically discovers the tool at runtime and can use it, regardless of whether the tool contains forms, buttons, APIs, or other nodes.","slug":"","post":"","author":"GraVersal","license":"CC BY 4.0","channel":"chat","category":"AI","private":false}},"uxvjmbwpz7sssqov8op52kwbsp36uxz9":{"type":"languageModel","x":-1068.5730488281251,"y":230.74101220703125,"properties":{"systemPrompt":"You are a helpful bot on a website. Respond in a friendly manner. You can forward pet adoption inquiries to support, collect user data, share fun cat facts, and assess whether a user is ready for a cat. Don't link anything.","userPrompt":"{{value}}","onReentry":"respond","onChange":"nothing","manageHistory":true}},"uiaw8f5xzt8sz856bh2936l997bb5pmr":{"type":"message","x":-1497.3891331558132,"y":-241.80387935906344,"properties":{"text":"Downloading local model...\nPlease wait...\nDetails: chrome://on-device-internals/","repeatOnReentry":false,"repeatOnChance":false}},"gj36q2rjsleedn7vnx0ukl7xipzcpbv1":{"type":"message","x":-1565.3111331558132,"y":-179.64187935906344,"properties":{"text":"The local model is available. Please wait...","repeatOnReentry":false,"repeatOnChance":false}},"r7f7num2vbf7077k85tqg38w55e8g17i":{"type":"prompt","x":-588.9530350248921,"y":-191.67050926111784,"properties":{"label":"How can I help you?","placeholder":"Type your message","hideAfterSent":false}},"0ee8sdadbbda8soeth9r4ps5fgdlws0c":{"type":"message","x":-167.4931916963974,"y":-332.8544046450279,"properties":{"text":"In GraVersal, an LLM **tool is simply a subflow** that you can design freely. The LLM dynamically discovers the tool at runtime and can use it, regardless of whether the tool **contains forms, buttons, APIs, or other nodes**.","repeatOnReentry":true,"repeatOnChance":true}},"8m44yp6qbr5yjxgkpvnt6efpoqfjn59r":{"type":"message","x":-1597.4761331558132,"y":-102.84487935906344,"properties":{"text":"The local model is not available on this device.","repeatOnReentry":false,"repeatOnChance":false}},"x5q3xbd6qqdbymmrhtdkgs7lyu1o61s4":{"type":"message","x":-405.3270106108296,"y":108.64644191075715,"properties":{"text":"{{answer}}","repeatOnReentry":true,"repeatOnChance":true}},"ufpe7czdennrv9ew199xj15t2yg1skai":{"type":"message","x":-1610.778133155813,"y":-11.132879359063452,"properties":{"text":"You don't seem to have a local model available. Use Google Chrome on a strong device instead!","repeatOnReentry":true,"repeatOnChance":true}},"y5vjrhdxoyyg2ec3op0st0yuvo3qgtt0":{"type":"board","x":-1051.1665366869915,"y":-59.42977218920532,"properties":{"text":"🧠 I'm thinking..."}},"5f4er2ypqpks0p31ztnxrnj4c88v1jie":{"type":"tool","x":-2084.649031340074,"y":854.9117146217089,"properties":{"name":"get_user_data","description":"This tool first collects user data such as name, email address and telephone number and automatically sends the request to the shelter."}},"peuxx000efpzu18ikf35kdlozpp69wfd":{"type":"tool","x":-986.3351326947641,"y":1141.232477658638,"properties":{"name":"get_cat_fact","description":"Use this tool to provide the user with useful cat facts."}},"hvy1daa4sfz48ry5dws6936n3fnbaiw8":{"type":"fetch","x":-816.8611326947641,"y":1546.0894776586379,"properties":{"url":"https://catfact.ninja/fact","data":"{}","method":"GET","repeatOnReentry":true}},"ikmqu2zdv4th0d3v56x02epv5wwl68po":{"type":"used","x":-719.6101326947642,"y":1767.9514776586377,"properties":{}},"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2":{"type":"form","x":-2360.055031340074,"y":1264.0187146217088,"properties":{"text":"Please fill out this form","reviewable":true,"repeatOnReentry":true}},"vaas6hhq3jm0myzc0uijysrd9kz3z0aj":{"type":"input","x":-2199.255031340074,"y":1497.618714621709,"properties":{"name":"lastname","label":"Lastname","inputType":"text","required":false}},"gq2zqv8n2wf0vdfwgkbsuj4r3u7nd2tg":{"type":"input","x":-2260.055031340074,"y":1532.0187146217088,"properties":{"name":"name","label":"Name","inputType":"text","required":true}},"tddfwrpkcyf60xog2kj5xtid0y95d64u":{"type":"submit","x":-2415.5414039557686,"y":1575.755989144848,"properties":{"label":"Submit"}},"599x019hp7rrh5k4d3e1rfejf2et1yqv":{"type":"used","x":-2746.303031340074,"y":1685.378714621709,"properties":{}},"ygs19241bakcn81ibcf491z8gatbdv0c":{"type":"board","x":-574.9791326947641,"y":1288.5534776586378,"properties":{"text":"🐈 Gathering some cat facts..."}},"7g1cs8dphd09au75vmsv0zirsbwum1v1":{"type":"message","x":-2202.360031340074,"y":1069.3927146217088,"properties":{"text":"Please fill out the following form. I will then forward your information to the animal shelter.","repeatOnReentry":true,"repeatOnChance":true}},"nwidb1t63wi7rointlkjx916c54997wz":{"type":"message","x":-906.9381326947641,"y":1342.3974776586379,"properties":{"text":"I'll look up a cat fact online.","repeatOnReentry":true,"repeatOnChance":true}},"ixv06i94t0zmh1tduniivi06iwp5fnxa":{"type":"input","x":-2147.914031340074,"y":1473.523714621709,"properties":{"name":"email","label":"E-Mail","inputType":"email","required":true}},"tz7ed2ajbzmpj5v9ix11eq0gcvpy0zns":{"type":"input","x":-2109.959031340074,"y":1435.340714621709,"properties":{"name":"telephone","label":"Telephone","inputType":"tel","required":true}},"7csnj5wzjjelcwuhimg0iu6yuy502z64":{"type":"message","x":-2737.959031340074,"y":1352.1137146217088,"properties":{"text":"OK. I'll send out an email.\n\n(This is a demo. No email is actually being sent here.)","repeatOnReentry":true,"repeatOnChance":true}},"ex4oox0w9ralf4w4taart5do29izbnxb":{"type":"tool","x":124.47724861046758,"y":726.6569937256567,"properties":{"name":"ready_cat_test","description":"Use this tool to guide the user through a structured test to determine whether they are ready for a cat."}},"eu2g40dowlpsqaigxl8rixxsdpahfokd":{"type":"message","x":376.5622445026343,"y":827.9424683295288,"properties":{"text":"Just take this test, and I'll tell you if a cat is a good match for you.","repeatOnReentry":true,"repeatOnChance":true}},"l0vodtxybmp8jy4kln47osgrciczdpk8":{"type":"question","x":564.1578119439164,"y":1020.3279113506693,"properties":{"text":"What is your living situation?","multiple":false,"reviewable":true,"repeatOnReentry":true}},"ur36bkh2e1psf1u4rclcxsaq3hjwhm4p":{"type":"suggestion","x":388.415892310178,"y":1068.250608913718,"properties":{"label":"House","value":"House"}},"3cvyo6tq5uviljn5rapto59hdursdrab":{"type":"suggestion","x":456.1462539104674,"y":1149.7045792002896,"properties":{"label":"Apartment","value":"Apartment"}},"z469qiedc3mlp3044mf65sh47rhf7aix":{"type":"suggestion","x":378.37789231017797,"y":980.5576089137179,"properties":{"label":"House with a garden","value":"House with a garden"}},"3zbddhkydcuava5ep4fu250wvt1yg49a":{"type":"question","x":682.2975203327057,"y":1324.2076427608656,"properties":{"text":"How much time do you have for a cat each day?","multiple":false,"reviewable":true,"repeatOnReentry":true}},"p609rp9sqrnf57ipicimpnjdeffdoukv":{"type":"suggestion","x":469.165892310178,"y":1271.981608913718,"properties":{"label":"1–3 hours","value":"1–3 hours"}},"9bv7rzhdulmj41dxm9inj0ofru51bvf9":{"type":"suggestion","x":510.857892310178,"y":1338.7476089137178,"properties":{"label":"Less than 1 hour","value":"Less than 1 hour"}},"svw37mqs8sskj5suujxqb930jbtiw6pz":{"type":"suggestion","x":500.867892310178,"y":1402.474608913718,"properties":{"label":"More than 3 hours","value":"More than 3 hours"}},"8zur4i5dh75xidx21wcrhdnw3v21aac7":{"type":"question","x":699.7167062108296,"y":1625.8702706665701,"properties":{"text":"Do you have prior experience with cats?","multiple":false,"reviewable":true,"repeatOnReentry":true}},"xfweuet49s4aqtvz7mud27srbunhcf3m":{"type":"suggestion","x":555.3538478553062,"y":1549.6089957556683,"properties":{"label":"some","value":"some"}},"kfm0r8xhjs6rswvi3i2bzufg5y08iezx":{"type":"suggestion","x":558.9898478553062,"y":1671.1219957556682,"properties":{"label":"none","value":"none"}},"xurjvjnfnh2uotayzz3ygb64cqej1kvm":{"type":"suggestion","x":497.7608478553061,"y":1592.4009957556682,"properties":{"label":"a lot","value":"a lot"}},"kka2s3d7egetmxoarycpxzqs1wha4fl2":{"type":"conclusion","x":1113.2482065467213,"y":1295.1673551169683,"properties":{"text":""}},"s2dvstdtyykijdu9u53077bm70rcrxwj":{"type":"used","x":1443.8933146789925,"y":1280.5054312999275,"properties":{}},"acg46g7bt27ajw0e84pis0783vlzcoe8":{"type":"message","x":-255.1504762533753,"y":-478.374766906477,"properties":{"text":"This is a cat advisor. It can **share fun cat facts** with you, check if you are **ready for a cat**, or **collect your details** if you wish to **submit an adoption inquiry** to the animal shelter.","repeatOnReentry":true,"repeatOnChance":true}},"1l99mv7t8ea0b8kj8pqhexdc98h6tif6":{"type":"input","x":-2084.793137552988,"y":1389.8219825822516,"properties":{"name":"message","label":"Message","inputType":"textarea","required":true}}},"edges":{"ywntq4i6gdz56j0qdsx2qdryywvgk250":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"uiaw8f5xzt8sz856bh2936l997bb5pmr","properties":{"priority":6,"condition":"status == \"downloading\""}},"mgg2pz7k2d90wdczylmaerjh4w0vu1j2":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"gj36q2rjsleedn7vnx0ukl7xipzcpbv1","properties":{"priority":6,"condition":"status == \"available\""}},"bhgyachtp6k17qvsbi8w08idok10eih2":{"type":"may","from":"r7f7num2vbf7077k85tqg38w55e8g17i","to":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","properties":{"priority":4,"condition":"sent","push":"value"}},"hq7bsg2ng4bxyk987c6ms3f44sj81y48":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"8m44yp6qbr5yjxgkpvnt6efpoqfjn59r","properties":{"priority":6,"condition":"status == \"unavailable\""}},"ws34n2aa6qnbpoe92jwvkzrh3l37cbt1":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"x5q3xbd6qqdbymmrhtdkgs7lyu1o61s4","properties":{"priority":4,"condition":"done","push":"answer"}},"fk9mwtwbupl1x4bar4sn0bi8rqez824b":{"type":"call","from":"x5q3xbd6qqdbymmrhtdkgs7lyu1o61s4","to":"r7f7num2vbf7077k85tqg38w55e8g17i","properties":{"priority":4,"condition":"arrived","method":"reset"}},"s2x7qs4gn3iwts5baj4ypgre4dt2oeo4":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"ufpe7czdennrv9ew199xj15t2yg1skai","properties":{"priority":4,"condition":"error"}},"q3l5gfbe36h686seto5ak8b7th39m6dz":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"y5vjrhdxoyyg2ec3op0st0yuvo3qgtt0","properties":{"priority":4,"condition":"thinking"}},"iea9hxlahhnq5hp4nrrma71fuy0em2s7":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"5f4er2ypqpks0p31ztnxrnj4c88v1jie","properties":{"priority":4,"condition":""}},"smmpbc0j8fltg9vfq20egbsq8beo4yfm":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"peuxx000efpzu18ikf35kdlozpp69wfd","properties":{"priority":4,"condition":""}},"zl9za8b03a3b5xl5g31lfrr991dz092a":{"type":"may","from":"1udsdb4suo2p31e54nfodrcm41tavdu6","to":"0ee8sdadbbda8soeth9r4ps5fgdlws0c","properties":{"priority":4}},"wr6p9jf5xfa20qlzhx31akv7j5wdiheq":{"type":"may","from":"hvy1daa4sfz48ry5dws6936n3fnbaiw8","to":"ikmqu2zdv4th0d3v56x02epv5wwl68po","properties":{"priority":4,"condition":"done","push":"result.fact","as":"fact"}},"jw47cewdzm6h410nk44brbeq0sghvpr5":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"gq2zqv8n2wf0vdfwgkbsuj4r3u7nd2tg","properties":{"priority":8,"condition":""}},"py19xvslk2vribcq12ut5dm8ksaj8trh":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"tddfwrpkcyf60xog2kj5xtid0y95d64u","properties":{"priority":4,"condition":""}},"g0tbyesgazexhvngo20pyxuh95hhsy5k":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"599x019hp7rrh5k4d3e1rfejf2et1yqv","properties":{"priority":4,"condition":"send and valid","push":"values"}},"r5dpuzz06upsg1dgdaqd8cnh4x4fnb4t":{"type":"may","from":"peuxx000efpzu18ikf35kdlozpp69wfd","to":"ygs19241bakcn81ibcf491z8gatbdv0c","properties":{"priority":4,"condition":"using"}},"xcpn5h34eyqwzg0xz6wp0sfqu82bjq8q":{"type":"may","from":"5f4er2ypqpks0p31ztnxrnj4c88v1jie","to":"7g1cs8dphd09au75vmsv0zirsbwum1v1","properties":{"priority":4,"condition":"using"}},"zf5kr811t1l0z7vejvc56qcvmr2two3w":{"type":"may","from":"7g1cs8dphd09au75vmsv0zirsbwum1v1","to":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","properties":{"priority":4,"condition":"arrived"}},"1ry0vgv0b79wnujvnucczkvbx1b4ey3k":{"type":"may","from":"peuxx000efpzu18ikf35kdlozpp69wfd","to":"nwidb1t63wi7rointlkjx916c54997wz","properties":{"priority":4,"condition":"using"}},"x5lrbjwt0iotfeo8huek0o6tkvqyr2fl":{"type":"may","from":"nwidb1t63wi7rointlkjx916c54997wz","to":"hvy1daa4sfz48ry5dws6936n3fnbaiw8","properties":{"priority":4,"condition":"arrived"}},"xr6jjylq59fx051b6qpmrqkliis23c91":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"ixv06i94t0zmh1tduniivi06iwp5fnxa","properties":{"priority":6,"condition":""}},"7z33etyfjutpta83to3n3psibpu9jh7j":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"tz7ed2ajbzmpj5v9ix11eq0gcvpy0zns","properties":{"priority":5,"condition":""}},"qr9b9l07pc4fpbamvpigh4tq3n8zygpb":{"type":"may","from":"uxvjmbwpz7sssqov8op52kwbsp36uxz9","to":"ex4oox0w9ralf4w4taart5do29izbnxb","properties":{"priority":4,"condition":""}},"e3g14lf2okpik1m7as6msybo06mfp6dz":{"type":"may","from":"ex4oox0w9ralf4w4taart5do29izbnxb","to":"eu2g40dowlpsqaigxl8rixxsdpahfokd","properties":{"priority":4,"condition":"using"}},"1n04kkwys6514qh1uzj8kovoufhty03z":{"type":"may","from":"l0vodtxybmp8jy4kln47osgrciczdpk8","to":"ur36bkh2e1psf1u4rclcxsaq3hjwhm4p","properties":{"priority":4,"condition":""}},"0g6fzich7nf08gytifd365ugocvebqnr":{"type":"may","from":"l0vodtxybmp8jy4kln47osgrciczdpk8","to":"3cvyo6tq5uviljn5rapto59hdursdrab","properties":{"priority":4,"condition":""}},"ad0xo94y5g3y7qqnqfd7rce4cmyhpk57":{"type":"may","from":"eu2g40dowlpsqaigxl8rixxsdpahfokd","to":"l0vodtxybmp8jy4kln47osgrciczdpk8","properties":{"priority":4,"condition":"arrived"}},"yv3x4p1niz0c0poy1oivp5qtn9bmh3uz":{"type":"may","from":"l0vodtxybmp8jy4kln47osgrciczdpk8","to":"z469qiedc3mlp3044mf65sh47rhf7aix","properties":{"priority":4,"condition":""}},"6z4lm49aapuiikr85vhzsl3tyhk0dwpp":{"type":"may","from":"3zbddhkydcuava5ep4fu250wvt1yg49a","to":"p609rp9sqrnf57ipicimpnjdeffdoukv","properties":{"priority":4,"condition":""}},"ujit7v084ynrzl6oi06n1cyg824c4uat":{"type":"may","from":"3zbddhkydcuava5ep4fu250wvt1yg49a","to":"9bv7rzhdulmj41dxm9inj0ofru51bvf9","properties":{"priority":4,"condition":""}},"envg483jhvytu356v8zhvqgzg5vyjo11":{"type":"may","from":"l0vodtxybmp8jy4kln47osgrciczdpk8","to":"3zbddhkydcuava5ep4fu250wvt1yg49a","properties":{"priority":4,"condition":"answered"}},"g9g7fb866m81lhw7wf7oc0xrhkj0o3vb":{"type":"may","from":"3zbddhkydcuava5ep4fu250wvt1yg49a","to":"svw37mqs8sskj5suujxqb930jbtiw6pz","properties":{"priority":4,"condition":""}},"xilaw5zpdqmzuo16nlblmecd18m2emwe":{"type":"may","from":"8zur4i5dh75xidx21wcrhdnw3v21aac7","to":"xfweuet49s4aqtvz7mud27srbunhcf3m","properties":{"priority":4,"condition":""}},"3a03dqomedb1im6mgnjoyw3xqovj3t9z":{"type":"may","from":"8zur4i5dh75xidx21wcrhdnw3v21aac7","to":"kfm0r8xhjs6rswvi3i2bzufg5y08iezx","properties":{"priority":4,"condition":""}},"ygiz9uj0tprhimlegy1z4lbf48hhw4vq":{"type":"may","from":"3zbddhkydcuava5ep4fu250wvt1yg49a","to":"8zur4i5dh75xidx21wcrhdnw3v21aac7","properties":{"priority":4,"condition":"answered"}},"44vdrmzavhhv8yeajuyobkcv2ix5lw1t":{"type":"may","from":"8zur4i5dh75xidx21wcrhdnw3v21aac7","to":"xurjvjnfnh2uotayzz3ygb64cqej1kvm","properties":{"priority":4,"condition":""}},"02675rkaa3nzjejj4pc777bucscclwjy":{"type":"must","from":"l0vodtxybmp8jy4kln47osgrciczdpk8","to":"kka2s3d7egetmxoarycpxzqs1wha4fl2","properties":{"priority":4,"condition":"answered","push":"value","as":"living"}},"gm0coo8647h1p78b0gm1972cbrugkjg6":{"type":"must","from":"3zbddhkydcuava5ep4fu250wvt1yg49a","to":"kka2s3d7egetmxoarycpxzqs1wha4fl2","properties":{"priority":4,"condition":"answered","push":"value","as":"time"}},"gvhyi8ae33nrh3ioafn28mmql10v5j90":{"type":"must","from":"8zur4i5dh75xidx21wcrhdnw3v21aac7","to":"kka2s3d7egetmxoarycpxzqs1wha4fl2","properties":{"priority":4,"condition":"answered","push":"value","as":"experience"}},"vgcbl9qyv64w0jauhupj6p37hl0xlw6g":{"type":"may","from":"kka2s3d7egetmxoarycpxzqs1wha4fl2","to":"s2dvstdtyykijdu9u53077bm70rcrxwj","properties":{"priority":4,"as":"values"}},"eieh79jk44j3e13wyarbrj2jdgtwi0d6":{"type":"may","from":"0ee8sdadbbda8soeth9r4ps5fgdlws0c","to":"acg46g7bt27ajw0e84pis0783vlzcoe8","properties":{"priority":4,"condition":"arrived"}},"t2wfpwor1rigf9839wq3ywilmre6obdb":{"type":"may","from":"acg46g7bt27ajw0e84pis0783vlzcoe8","to":"r7f7num2vbf7077k85tqg38w55e8g17i","properties":{"priority":4,"condition":"arrived"}},"1bft2xeccb60gaxzbqzqocnk6aei955r":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"7csnj5wzjjelcwuhimg0iu6yuy502z64","properties":{"priority":5,"condition":"send and valid"}},"aaai9aoj99tkbdrhuw0h9aj08goyt63s":{"type":"must","from":"7csnj5wzjjelcwuhimg0iu6yuy502z64","to":"599x019hp7rrh5k4d3e1rfejf2et1yqv","properties":{"priority":4,"condition":"arrived"}},"o08zbbj5yscoidwdrltcbg7d4a5qao6l":{"type":"may","from":"11gyxgcmgkqxun5k4xwo5a6lf0md3ko2","to":"1l99mv7t8ea0b8kj8pqhexdc98h6tif6","properties":{"priority":4,"condition":""}}}}