Transcript 0:11 well all right uh kicking off this webinar today I'm Zach Terrell I'm the general manager here at uh at Stellar WP 0:19 and specifically uh here at learndash and I've got uh Jack kittering with me 0:25 today uh Jack is our our product manager on learndash so uh he makes all of the 0:33 decisions and all the strategies around where learn Dash is going as a product and uh and and what customer you know 0:39 Solutions we're going to build so uh Jack and I wanted to share uh really 0:45 more of a kind of an insight to a conversation he and I had a few weeks 0:50 ago uh Jack has really added uh open Ai 0:56 and chat GPT in particular to his his workflow and the way he's thinking about 1:02 being a product manager uh and how he goes about prototyping and thinking 1:08 about solutions for customers and things that he might kind of uh he might have 1:13 annoyed one of our developers with with a little bit of uh you know back and forth and experimentation over weeks 1:20 uh and he can he can now annoy um he can now annoy an AI instead so uh 1:28 I want to have Jack first uh demo one of these plugins that he built specifically 1:35 for learndash um purely in conversation with chat GPT and then he and I are going to just go 1:42 through the conversation he had with chat GPT that that led to the creation of this plugin uh and we're gonna try to 1:49 do that for two different plugins that he's built just to kind of give an Insight on that and uh a little bit of 1:55 creative thinking about how we're doing a little bit of product prototyping these days uh personally I was blown 2:03 away when I first had this conversation with Jack and I hope that all of you who tuned in will also be kind of excited to 2:10 see uh some of these interesting ways that the Jack's working these days 2:17 thank you Zach hello everyone uh I'm gonna walk you through uh one of the 2:23 first plugins I come up with chai GPT that was around custom course tabs so 2:29 for a long time we had people like hey how can I just add another tab to my learn Dash course and there's some code 2:36 hanging out there around you know I developer docs that's like hey you can take this code you can put it in 2:42 functions PHP and you create a tab but most people are at a technical level where they want to keep messing around 2:48 with child themes and functions PHP but like maybe try GPT can build us a plugin 2:54 that allows us to dynamically add these tabs and so me and try GPT we we went 3:01 back and forth over a bit and then it actually come up with a working plug-in 3:07 um for these custom tabs which I was both impressed with and surprised 3:12 with because you know when you use open AI for the first time you get back responses and you're like well this 3:18 doesn't make any sense or well this doesn't work as I expected it to but then as you get to grips with it you 3:24 realize that oh actually this stuff does work you know you're so much pickier than I am Jack like my my experience was 3:30 different I've been I've been excited about every weird conversation I've had with chat GPT but uh definitely this 3:38 seems to be what unlocked it for you yeah this really unlocks it for me and I think one locked it for me was really 3:45 chat gpt4 like Tai GPT 3.5 for coding 3:51 purposes was going absolutely nowhere like it just flat out nine times out of 3:58 ten did not work as you'd expect it to work um you know you'd get like Snippets that 4:04 made no sense you'd get back code that didn't work you'd get back made up function names 4:10 but charity p24 understands line Dash 4:15 as a plugin like it can pull out from the developer docs information obviously 4:21 only up to 2021 when it's training data cut off but yeah you know it has that data in there you can ask it to explain 4:28 a function that I know we added in 2021 it can explain it you can build it um and it can do all that kind of cool 4:34 stuff so I'm going to share my screen with you all we'll talk some more about that uh that 4:40 2021 limitation uh when we go through the second plug-in because there's a there's a fun fun little Discovery there 4:47 yeah there really is so I'm gonna share Zoom is messing up with my spring share 4:55 which is wonderful let's try this way well sorry I just need to enable in 5:01 system preferences because yeah while you're doing that Tom in the sidebar mentions uh that hallucinations being a 5:08 real Challenge and that's definitely a piece that was uh very prevalent in 3.5 5:14 is still a challenge in four sometimes where you have to you have to stop the 5:19 AI and be like is that a real thing are you is that function actually a function 5:25 or are you making that up and it is kind of funny when it will apologize to be like yeah 5:32 that really wasn't the thing I'm sorry okay is my screen showing it is yeah did 5:40 you do you want to demo the plug-in first I do yeah I was in the room oh that's great 5:46 um yeah so this is the admin of the plug-in the track GPT built and so I 5:52 work clear chat GPT built the entire thing I didn't modify any code myself 5:58 manually charge EPT done everything all I did was copy and paste in the code 6:03 editor and compress it into a plugin file um and so 6:09 first of all track GPT registered this new sub admin menu item called custom tabs 6:15 um and then it built out this admin interface so we have the title of our tab uh the icon that's going to be used 6:22 the content of our Tab and then the option to edit and delete so if we open up any of our tabs that we currently got 6:29 there and love it when it breaks on me straight away let's use this one 6:37 um so if we open up this tab we can see we buy a title we've got an icon uh we've got our content area here which is 6:43 where our content and then that is what shows up in the tab itself on the front end so if I switch over to the front end 6:50 of the site you can see now that we've got a normal course tab that we're all familiar with and it has our course 6:57 content in it has a course description obviously if we got one and on this 7:02 particular site don't have materials set up if we did we'd see the materials tab but then in this type six I got my my 7:08 test five content um and you can see that's what I got here and if I update that to me like 7:19 and save that change you're actually seed when I refresh this 7:25 I go back to tab six and I got my update content so it works really well 7:30 um obviously there's improvements that can be made to it like you know I didn't go back and forth with GPT over days 7:36 this was literally built over the span of like about 15 20 minutes just going back and 7:42 forth with church GPT on some stuff um and so yeah exactly and that that's always been I mean just for context and 7:49 we'll look at the code here a little bit in a minute but you know this is code that you know to do this for where you 7:56 know kind of our style of product development you would have written detailed specs for an engineer that 8:02 would have taken you you know Pro you're a very fast spec writer but you know a 8:07 normal product manager might have taken them an hour to get a good spec that they felt like was thorough enough to 8:13 hand off to an engineer they had handed that off to the engineer the engineer may have written it over 8:18 you know let's say optimistically two hours they create something you know 8:24 could be a half a day then you're probably gonna have a back and forth with that engineer to tweak a few things you didn't think about in the spec or 8:30 that when you saw in the final result wasn't exactly what you wanted let's say the overall effort to build 8:37 something like this is is probably eight hours and it would be spanned over multiple days just to hit everybody's 8:45 schedules and and you know not overwhelm our team make sure it met their other priorities so 8:51 15 minutes prototyped versus you know eight hours of effort across multiple 8:57 days like pretty impressive result you can see why like you I I showed up to our one-on-one 9:04 and said all right jack let's let's dig into this conversation you had with Jack gbt a little bit closer because I I want 9:10 to know how how you did eight hours of work in 15 minutes let's let's talk about this right yeah so that's uh let's 9:17 dive into that conversation we'll try GPT so 9:22 for some frame of reference like before we got to this plugin I played around with chat GPT on and off found out 9:30 different prompts and different ways of it working and what it can do um and so I gave track GPT to challenges 9:36 hey we want to build a WordPress plugin that allows people to 9:41 add custom type cell on dash course and you can see that in the initial prompt 9:46 I'm telling it one that I wanted to use PHP 7.4 and I wanted to add a namespace 9:52 so I'm already telling it like hey these are the basic coding standards that we're going to use I'm telling it what I 9:57 want the name to be for the admin menu so I want to call Custom tabs um and I'm telling it in that page I 10:04 want it to show the option to update and add a new tab and then I'm telling it when I click add a new tab these are the 10:11 things I expect to be there so I'm also telling it how that actually displays in the content and then what I 10:18 do is I give it uh um our custom code from our developer docs so if you just went to 10:24 developers.landash.com found the filter that we needed copy and pasted that into the prompt and told 10:31 chat GPT hey this is how we add a custom tab in one dash and so 10:36 yeah so you started it off with with you know a little bit of a head start because you you search the docs for some 10:42 stuff for it yeah I searched the dark throw to just be like hey this is what we need to do this is how it's going to 10:47 work and then we can see that straightaway track TPT goes into like 10:53 hey this is the skeleton of the plugin so it does everything properly based on what I told it to so you can see that 11:00 you know it's given us all the information like normal like if it was uploading and plug into wordpress.org 11:05 it's even giving us the licensing for the plugin it's done the namespace it's requiring that it's initializing 11:11 everything screen our main class let's add in our custom tabs and you can see one really 11:18 interesting thing is when you tell track GPT to build a skeleton for a plug-in it will do this first of all real behind 11:25 hey here's uh here's our functions that work for this plugin and we'll fill this in later so when you do initially use 11:32 track GPS the sort of stuff some people panic and like I don't have any of the functional stuff but it will come based 11:38 on the prompts you give it and it's only doing that because I told it to build a skeleton um 11:44 concern you can see that it's like hey because this function here in the 11:49 skeleton the display custom tabs page is actually then going to walk us through what we need to do to expand that 11:56 function so say I'm going to be basically saying hey replaced this emptiness with this complete function 12:02 and so we're going back and forth and as you can see I'm like hey can you continue because you get our adjustment 12:08 right there's a classic like it runs out of the ability to to Output enough or it 12:14 gets stuck and so continue ends up being a pretty key word for anybody who's doing this kind of stuff because you're 12:20 gonna run up against that chat GPT limit of output and then what I found was sometimes when you use continue it like 12:28 starts from a different area so what can be really useful then which I learned later on was to actually quote back at 12:34 it like the last line so I would like literally just copy this display the custom comment and then put 12:41 continue with that in Brackets and then it would know that it's got to continue from that area as opposed to just being 12:48 like Oh I'm just going to tell you the same thing again and run out of space again um 12:53 so then you can see that it goes through it continues it displays our phones right in the new tabs does everything we 13:00 need um then it adds to custom tabs based on user input it adds everything we need 13:07 there and then I was like yeah great it works like 100 legitimately works as a plugin 13:15 um so all it literally took as you can see to get an initial working plug-in was two prompts an unusual prompt to 13:22 tell it like this is the thing we need the prompts are tied to continue because it ran out of space and then it got me a 13:29 fully working plugin but then when it build a WordPress plugin watch hgpt 13:34 doesn't always do is like display things in the WordPress way so you know like the wp list table which is that UI of 13:42 actually being like the classic WordPress post table where you can like edit delete stuff update stuff 13:48 and I'm like okay yeah it looks great but now I want the WordPress admin UI to look like if you look at a post or a 13:54 page it should be the same for the tabs it's just like sure we can do that so it tells me about Adobe list table class it 14:01 walks me through it it tells me hey add this create a custom list table class inside the folder it gives me all the 14:08 content that I need for it to display as it should it gives me all the content to update 14:13 the tabs so they can be updated and then you can see here is where I use that hey please continue from now the custom tags 14:21 piece which is here exactly and then it continues a bit more it explains it now I'm like this is just 14:29 confusing now because you stop so I'm like hey provide the full clearly I'm missing something right like clearly 14:35 something's missing here something a real good prompt to Telecheck GPT if you're working with code is like please 14:41 provide me the full file with the name of the file that is working on when you do that it will just start from the very 14:48 top and be like yeah sure here's the complete file you need so as you can go 14:53 through it it gives me the full file and I'm like hey please continue from add custom 14:59 touch based and it's like sure here's the continuation so it continues exactly from where I should left off and then 15:06 it's like that's the full file I was also like okay great that works but now I want to be able to delete the tabs on 15:12 a per tab basis and this is the classic situation where if you're working with a Dev 15:18 you know they would have delivered this plug-in to you and you'd have been like okay I forgot to mention that we need to 15:23 delete a tab now you need to go back this sort of thing that adds a lot of uh you know wall clock time to to an effort 15:31 like this yeah this is the sort of thing where adds a lot of back and forth with the devs and it's also like where it 15:37 helps you though especially in product like manage the Assumption of what's going on because I could have easily 15:43 have made the assumption that like hey if I get this sort of senior level engineering you guys know I wanted to go up to delete a tab 15:49 but then you can also change that or something like why if a junior is looking at it would they have recognized 15:55 that assumption should I be clear in what I'm doing to charge GPS helps you to check GPT is literally just taking 16:00 what you say and doing it so if you're not telling it to like delete a tab it's not gonna delete a tab yeah it's not 16:07 going to make that philosophical leap yeah it's not going to make that connection and be like okay yeah this 16:12 makes sense so you know you tried to delete the tab it adds all that into it 16:18 it adds all the handling action and then I'm like hey can you see an 16:24 image if I provide one because I'm just curious what it would answer with which was really because I wanted it styled in 16:30 a certain way and it's like hey if you could understand this image it'd be way quicker than me typing this out and it 16:36 was like yeah typing out CSS like this is how I want it to look that's a lot much more challenging kind of thing to 16:41 do in text yeah it's difficult to explain it like how you want it to look and it's like yeah I can't understand as 16:48 an AI language model I'm like okay that's that's legit um but I'm like hey when you click on 16:55 this I only wanted to Output the area when you click add new because before I had it all on one page I was like you 17:01 know I want it to work like a normal WordPress site you click add new page you can add some content you save the 17:07 content it's published um it's like yeah you can achieve this just modify the current class and so it 17:13 tells me everything that I need I'm like um yeah but now you broke it and this is pretty common with chat gbt though it's 17:20 also common developers like as you go back and forth to make a change so it breaks you go back and forth you debug 17:26 it a bit and I'm like hey it's not saving and it's like oh yeah because we 17:32 missed uh we missed a code to actually handle the saving function so it takes me through it and what's 17:38 really interesting is you can see throughout because I told it to follow WordPress coding standards and I told it to follow 17:44 PHP 7.4 you know it does all the sanitization of the text fields and everything that it should do which 17:51 charge EPT 3.5 never did even if you told through sanitization it done it 17:56 wrong I also noticed it's translating all your strings and doing proper you know translation handling as well which you 18:04 know is is a very challenging thing to get right even for our devs to remember you know on our first draft prototype to 18:11 do that kind of thing exactly yeah normally on the first draft prototype we won't we won't be translatable like 18:16 we'll go back why would you buy it why would you bother right since you're going fast but chat GPT is like oh well 18:22 you need it I'll do all that too exactly and so it goes through it's like okay I can add the form I was like yeah great 18:29 this works but now I want the user to have the ability to modify the tablet added so I want to be able to edit each 18:35 photo Tab and take the changes it's like yeah we can do that this is what you need to do 18:40 so it walks us through that a bit more gives us all the necessary code and then 18:46 you can see here it kind of does its usual thing of running out of tokens I'm like hey please continue from here 18:52 and then it falls out through and I'm like this is just really 18:58 confusing now because you stopped to give it yeah you're still doing together a lot of code you're stitching together the codes I'm like please just provide 19:05 me the full modified display custom types page function it's like okay here 19:10 is the full function for that class so it gives me the full function it modifies everything as needed 19:18 um it's continuing along and I'm like okay yeah but now when I when I make a change to my tab using 19:24 edit it's actually adding it as a new tab rather updating an existing tab and it's like oh it appears that we 19:31 missed the condition for handle edit tab so it walks me through that again to update it and I'm like yeah I use this 19:38 code and it's still not working so this is a classic thing which actually PT where it's really useful sometimes to 19:44 close its own code back to it because while it's not great at doing is like understanding what it previously wrote 19:50 so it will come up with like hey yeah you can fix it like this and you're like okay but you didn't give me that code originally in the first place so quoting 19:57 back its code it lets it look at its code and be like oh yeah I made a mistake here 20:03 um it's like you're gonna see out here it's like apologies for the oversight I see the issue uh the non-saction is 20:09 completely wrong that I gave you like update this with this and you can see it's just really dumb at the end it had 20:17 the add custom tab not for the edit action instead of the edit custom type mods so when it was running it was just 20:23 added as a new tag and we went through and I was like yeah great that works and I was like but now 20:29 I want it to look like the standard WordPress poster yeah um it's like yeah we can we can incute a 20:35 classic at our prescription Styles make it look like we should and so it walks me through everything 20:41 there and then at the end I was like yeah get 20:47 in there now what the tight wear is look like when you had the post in WordPress normally in fact yep we can do that just 20:52 change these this few codes there's few lines and then that was that was the complete 20:58 a plug-in now that you see working on the site yeah that's that's great so uh there's a again very 21:07 interesting you know how does this apply how does this apply more broadly now I 21:13 think for me certainly this is like very interesting in terms of of your job but I I like the 21:21 idea that with a little bit of knowledge about how something works right you can 21:28 get chat GPT to help you with a task that would otherwise be 21:34 very very challenging or or maybe even impossible for your skill level 21:41 um and I'm not implying that you couldn't have written this code from scratch Jack but I my guess is if you 21:47 had tried to take on this particular thing all by yourself it would have been much more challenging so I think while 21:52 and we've got a few comments in the sidebar while this while this particular webinar is not about the future of 21:58 learning um with open AI which is a great topic and we ought to do a webinar about that 22:04 in the future um I think it does touch on that a little bit right it starts to to think 22:10 differently about well what kind of tasks are achievable what 22:15 kinds of things could you push a person to do that was outside their normal skill set and and learn a lot along the 22:23 way um through this kind of dialogue well hey I want to jump to to one more 22:28 example we'll go through it much faster uh but this one is is a little bit recursive in its concept of uh you built 22:36 a plug-in that will use chat GPT well you use chat gbt to write a plugin 22:43 that would use the chat GPT API to build a learndash course outline exactly yeah 22:50 and this is I think this is the plugin I'm most excited about is 22:55 just from his core you know you look at this page I'm like oh it doesn't look like much which yeah fair enough you 23:01 know it's great which actually be T didn't style it is literally just this but what it really good at is it will 23:09 take an idea a course name and it will just create that course for you 23:14 women outliner lessons so it purposely what plugin doesn't do is it doesn't add 23:20 content to the lessons it's purposely for an outline because I believe that 23:26 charge GPT shouldn't be used to actually create content for a course because as a 23:32 learner AI written content isn't at the level where it's really useful to learn from it's like yeah it's okay it's not 23:39 perfect but I believe chat GPT can be used by learndash users to speed up 23:47 their course creation like hey I got a loose idea but I need some help to inspire any of the content then this is 23:54 the perfect thing so like if we say I think I've already got some dummy but 23:59 it's why I check my dummy content real quick before I kind of decide what I'm going to tell it to do 24:04 [Music] um so I've got you don't want to duplicate yourself 24:10 yeah I just wanted to thank myself I wanted to be like brand new to show you kind of the power of what it can do so 24:19 and for reference by the way okay hey we've got it we got a great suggestion in the in the chat let's do a course 24:25 called uh Community Health nursing for homeless 24:30 okay let's get your caps lock key off there the community health 24:37 nursing for homeless 24:43 okay and we're gonna give you five lessons and then we're gonna give it a 24:48 prompt of like Community Health nursing for homeless 24:56 um maybe like a practical learn this is gonna be like uh a course that teaches 25:04 you the best practices for providing great health care 25:12 or a homeless population 25:18 now remember this is a prototype it said it said no UI work done on it this is this is certainly not polished and it's 25:24 not going to go into core quite like this but it's uh that's a proof of concept anyway 25:29 okay let's see what we can do so we've got a title and we've got a number of lessons we've 25:36 got a course idea saying we'll hit create lessons then sometimes again bad bad UI there 25:42 isn't uh there's no prompt that says hey Chad gbt is working here 25:47 um but but trust us it is so it's reloaded so now this this is the Moment of Truth we'll go to our courses we've 25:54 got our new course so consist on that successfully so if we open up the Builder 26:00 and we can see now that it's given us our five lessons for the course 26:05 which looking at these titles you know understand the unique Healthcare needs of the homeless population 26:11 strategies for providing culturally sensitive care to homeless individuals building trust and establishing rapport 26:18 with homeless patients collaborating with Community Resources to improve health outcomes homeless individuals and 26:24 addressive mental health and substance abuse issues in the homeless population now you can argue that's a pretty decent 26:30 course outline based on that idea yeah yeah certainly not my expertise area but 26:36 uh you know editing this this course outline is a whole lot faster than uh 26:41 than maybe trying to produce it to start with and I think it's really interesting way to like tackle writer's block like 26:49 even if you're an expert in the field sometimes you just need a bit of inspiration to like really push like 26:55 what content do I put in this course and it it done some really interesting stuff 27:01 so if we just take a quick look at a couple of other courses it built so I'm begging to trainers sneakers you 27:08 Americans on the on the uh on the webinar and I was like I want a history of night course like I want a history of 27:14 Nike like that's gonna be interesting for me and it done a really interesting one 27:19 where it's like hey the origins of Nike the founding story building a brand the early marketing strategies the design 27:25 Legacy the expansion into International markets and this impact on the sports industry and society as a whole 27:31 and like you can do that so well and then right and now again that is it's just an 27:38 outline right that all the course materials aren't there you know you as the expert in the history of Nike would 27:46 then need to go in and and fill out that course outline create materials different things to read link to 27:52 resources build quizzes all those sorts of things you would normally do but at least that initial framework would be 28:00 would be pretty strong yeah so this next example is this was Jack showing off to me as a big disc golf fan he was like 28:07 look I can I can build a class about disc golf uh for you to for you to share your your knowledge I 28:14 don't have a lot of knowledge I'm not very good at disc golf but I do like it but this you know this is one that I actually can speak to like this is a 28:20 good outline this is you know if someone went through and did the work to fill out this course material this is an 28:26 outline that's uh that's pretty strong for uh for learning you know what the 28:31 sport is the basics and then you know proper techniques to actually throw a disc so right pretty interesting stuff 28:38 I'm I I'm really excited about this and so I see a few questions in the sidebar which I think are are good it's like 28:45 Well Jack when can when can other people use this is this a thing that's maybe 28:51 someday going to be available yeah that's a that's a good segue into and 28:57 really highlighting how quick now we can prototype so you know I prototype this in like 30 minutes going back and forth 29:04 which igpt over building out the idea and this is a lot more complex than the 29:10 custom types plugin like to put that into context like we estimate that for 29:16 one of our mid-level Engineers it probably would have took them like a week of work to take my spec and turn it 29:23 into a fully functional course outline prototype in line Dash core and 29:28 what I managed to do was give our Dev team this plugin that I built and was 29:33 like hey let's just make it polished let's make it something that like looks really nice and so if we go over to 29:42 another WordPress site I spun up and we go into courses we now see along with 29:49 our other buttons up top here create a course outline from AI and this great of course outline from AI 29:56 is exactly what you just saw but nice and Polished in Lion Dash core and so we 30:02 now have like a fully functional prototype of hey this is style this 30:08 works um this uses our normal select twos like if you had an existing course you could 30:13 like type in and select the course if you don't it'll be like hey yeah test it's not course exist it's a brand new 30:20 course click it it'll do it um just edit the number of lessons in describe the idea hit create lessons 30:27 works exactly the same I haven't actually seen it work in the product you want to just uh course title 30:33 of uh there's another nice sidebar one of Elementary multiplication 30:41 if I could spell elementary it might be it's the most part of the test uh multiplication multiplication yeah 30:49 okay so Elementary multiplication let's just copy that it's going to be a new course 30:56 so we're going to do Five Lessons again and what do we want the uh Cook's idea to be uh all the basics of uh 31:05 of a fundamental mathematical principle for third graders 31:13 you like coming with the difficult to spell words today I'm trying to trip you up Jack all the 31:19 basics of a fundamental mathematical principles for third graders so I'm mixing big words and for little kids you 31:27 know really mess with that and change your five to seven I like prime numbers and let's show that it's not limited to 31:33 five in some way okay let's do it I love a live demo too like that the stakes are so high well for 31:40 everyone's reference on this webinar I've used this once eight minutes before this webinar 31:46 started was the first time I installed this and tried it and that's perfect this is good all I know we're missing is 31:52 a success message when it completes so we'll have a moment of suspense as we see does this work 31:59 um and yeah I think there's some ways as well just why okay it's done 32:05 that was suspiciously quick yeah we also probably need to redirect there you know work to 32:11 be done but yeah prototype's still strong oh so we have uh we have our course 32:21 and we have a we have our seven lessons 32:28 all right looks pretty looks pretty strong looks pretty strong so that's a nice a nice a nice conclusion I think 32:35 maybe because I think we're right at time Addison or Carmen could tell me if we've run over but I think we're doing 32:41 we have 30 minutes or do we have the full hour I don't remember uh we have the full hour oh we do okay well we can 32:47 we can do so we've done this nice proof of concept we can dig into this code as well 32:52 um yeah for the for the Code Heads let's let's do that let's find out where it is 32:57 in all my chat GPT requests there's a lot of uh conversation so 33:02 while you while you find that um so we were so excited about this prototype that we will be uh as as Jack 33:10 has hinted there with that demo and cleaned up this particular product uh feature should be coming in an upcoming 33:19 major release of learndash um you know I never want to commit to dates 33:24 but it's coming soon this is uh this is features and functionality that will come to the core product very very soon 33:31 uh somebody asked about wouldn't it be better to use um your own API key yes this will 33:38 require you to put in an open AI uh API key as much as we would love for 33:44 everybody to just have this power absolutely for free 33:50 API does cost a little bit of money it's not that expensive it's it's really you 33:55 know Pennies on the dollar but at scale would be very expensive for us to just give away uh API keys but 34:02 um yeah so if you can sign up with your own uh account put in your API key and all that functionality be available to 34:08 you it is yeah show that real quick we don't actually have that now in the settings area of 34:14 this a lot of shins still ever in advance we have a AI Integrations section which is just a open AI API key 34:21 right there um and touch on kind of the price of it like what you can expect uh you can see 34:28 that I view chat GPT extensively and going back and forth I've run thousands of tests using the AI on 34:36 different WordPress websites and I spent a massive 1.20 cents in the past month 34:43 so you know not not high cost not high cost for most people you're literally not 34:49 even going to be spending a dollar a month if you're going to be spending like 10 cents maximum probably like if 34:55 you create a couple of courses using the outline tool not even 10 cents it's 35:01 wildly cheap um and very helpful so this is the chat with chat GPT to 35:10 create a plugin and so yeah so let's dig into this one I think this is really interesting from 35:15 again from a developer standpoint and how how you can use this tool there's some really interesting lessons in here 35:20 so yeah let's dig in yeah so I start off with the initial prompt to turn on it like Hey we're creating a a plug-in to 35:28 create calls using track GPT inside the WordPress admin we're going to use uh we want to create a skeleton we're going to 35:33 use PHP 7.4 and a namespace Atlantis outline I told it the admin Pages it 35:38 needed to create sold it what we need to do with settings I said on that sentence page we need a place I started to put 35:44 that open AI API key um on the main learner short online page you need a text area prompt box it can 35:50 scroll and accept commands so I told it there which is interesting this one like an example of the sort of commands I 35:57 wanted to go to take so I told it like to expect things like hey create me 10 empty lessons in a course name with 36:03 title one through ten and I was like that's an example command we need to watch out for keywords like 36:09 create lessons topics quizzes um I told you it needs to save it so it 36:15 walked me through the initial piece gave me the initial code uh gave me the initial piece of the AI API key for open 36:23 AI and then again told it to continue 36:28 um it does this weird thing sometimes where it like doesn't realize that it's writing code and they were just like I'll put it as plain text which is 36:33 always interesting and then here it kind of got confused it like started telling me that in the code piece 36:40 um but then this is what's creating the attack GPT client for actually sending 36:45 and receiving the commands so it's executing everything going back and forth and then I'm like yeah please send me 36:52 the command so I can update and execute the chat GPT that actually I need and 36:58 this is where it's interesting QSC initially it's like hey you can use the 37:03 open API um DaVinci codex so that's the older 37:08 track GPT for those the not as familiar with what they're at so that's like charity pt3 that's the 37:15 really old one um it's nowhere near as advanced as like 3.5 there's nowhere near as fast it 37:22 doesn't have as much information about it and so that's what at the same time 37:27 of course it would tell you to use that API its knowledge ends in 2021. so it 37:32 doesn't it doesn't know about its own API which is to me kind of a hilarious it doesn't it 37:40 doesn't actually know how to speak to itself because it is trained on a world that existed prior to itself 37:47 yeah and that's the really interesting thing when you're trying to build a leaks it's like I don't know my own code you're like okay 37:54 and so we can send you in and then it's like doing all the passing of the 37:59 day uh and then it's like hey don't forget you're actually gonna need to do this you're 38:05 gonna need to refer to the line dashing documentation to implement the methods in in the code 38:10 and I'm like no you're gonna build it I'm not gonna build it I'm just gonna tell you roughly what it is so this is 38:17 where I tell it like hey the land Dash API is just a normal WordPress plugin has a post type of sfwd courses sfwd 38:24 lessons fsw topics Etc we need to take that response from chat GPT and create 38:29 the lessons in the correct post type in WordPress including making sure we had the title and that we assigned to the 38:35 correct course name so then it's like okay yeah I can do that so it starts 38:41 walking me through it a bit this is where it's like hey it's creating a new course and it's like hey yeah the post title with the course name 38:47 the post content and you can see it correctly remember the post type I told it sfwd courses 38:53 and then I'm like yeah but we need to provide the cook's name the number of 38:59 lessons otherwise we're just getting like a course title which isn't that impressive 39:04 and it's like yeah you can do this and I'm like just stop like modify the 39:09 prompt box for me to include uh taking a course name number of lessons and then create that based on 39:17 the output and so it's like okay yeah you can do this this is the new outline page 39:22 this is the new execution I might please provide the full codes otherwise it's 39:28 getting crazy confusing so again it goes through provides the 39:33 full code I'm like you stopped it's like sorry for that it's full code and you can see here which is really interesting 39:39 because this was before I learned like the better command to check GPT I just 39:44 told it it stopped so when I told it it stopped it was like oh apologies for that but they continued it didn't 39:50 continue it just started the whole thing again so then you know it's going to hit that limit of its token output where it's 39:57 like you're going to start the same damn place you just stopped and so definitely these moments of frustration happen you 40:04 have to keep kind of poking and prodding and finding ways to make it continue exactly and this is what I was like 40:11 you've stopped again please continue from and then that's where I gave it the code and it's like sorry here's the continuation of that which it done 40:18 successfully then I was like yeah okay great I don't see 40:24 where it actually sends it to chat GPT through the API and he was like uh yeah 40:29 yes sorry I missed that completely blank try this code for where I actually 40:34 execute that and I'm like this is getting confusing can you just provide four instructions and way to include a 40:39 what file and what each file contains it's like sure this is Adobe content plugins outline check TPT folder inside 40:47 that folder create two PHP files and here's what each file should contain and 40:53 then it gives me the full contents of each file and I'm like yeah but you're missing out 41:00 everything so you can see here it's like add the code for sending the command to the chat GPT API and the code for 41:06 passing it I'm like I want the full code with everything in it it's like yeah we 41:11 can do that it's like you stopped please continue and I was like I'd actually wait to have 41:18 my chat GPT API key I was like oops I missed that is how you register the settings page 41:24 and in the display registering and I was like you need to update the 41:30 chat GPT client to use the movie saved API key because before it was hard coded in the in the request so it's like oh 41:37 yeah you're right I do need to update that so it's like hey hey here here's how you can get the uh the API key 41:44 and I was like yeah I got a syntax error and it was like oops Yeah I miss 41:49 something try this and I was like I have this syntax error here's my full file and this is where when you get into 41:55 debugging code we check GPT you need to keep quoting his code back to it otherwise it just gets completely lost 42:03 I'm like this is my error this is my file which I actually think is similar to 42:09 working with a developer too you've got to keep telling them like no no I see your code right exactly 42:14 and it's like oh sorry I just missed a closing brace which has all developers now listen to close Embrace and missing 42:20 the semi classic is the classic of a developer and uh 42:25 it's like something's wrong I have a I have a course called test I need to test there's a cool thing to add lessons to 42:32 instead of new course was created but no lessons were added to it at all and it was like oh I think there's an issue you 42:38 would get paid by title and so it went through that try to update it 42:43 and I was like I gotta syntax error again here's my full file 42:49 and it's like oh I provided you with that function outside the class here's the fix 42:55 and I was like I was confused by now just give me the full code and so it again provides me with the 43:01 full code for that file High twice while watching you go through this and entertain both by your infinite 43:08 persistence and just because it's an AI it also has infinite patience with you 43:14 it never gets frustrated that you're asking it to do anything 43:20 so still asking it to continue I think I think the most frustrating part using Tech GBC at the moment is its limit on 43:27 the tokens when you're communicating like I just wanted to give me a full file that doesn't need to keep being 43:33 stopped and started um once that's like solved in the future then it's extremely powerful even more 43:39 so than it is now and it's like I was like yeah there are no lessons are created like you just give me all this code no weapons are 43:46 created it was like I'll review the code and I found that we didn't update the password PT response 43:53 and so I've dated that pass up and I was like I think the charge EPT response needs to 43:59 be modified this is what it currently is which doesn't match the parser 44:05 and it was like oh yeah we need to modify the same command to return Json instead of just plain text 44:11 so okay that works tells me to update it I'm like here's my 44:16 file we go down 44:21 and then I was like no lessons are being created and then it's trying to debug its own code it goes back and forth it 44:27 thinks it can fix it it's like nope doesn't work still and it's like I think this is the issue and I was like this is 44:34 my full code I was like no lessons are still added I was like oh I had an oversight uh the 44:42 function returned to null try this it's like that didn't work are you sure the person is saving 44:48 and he was like I see a possible problem with the passing and that's where it gets really interesting Church EPT when 44:54 debugging if you give it a slight suggestion like if you have enough knowledge of how a code works and 44:59 functions you can kind of give it a suggestion of like I think this piece is wrong you should go and review what you 45:05 gave me to see if it's great and so I'm like are you sure passing's saving and working correctly it's like 45:12 let's try and modify that it's like no no lessons we should have to debug output to see what's going on it was 45:19 like yeah we should do this I was like okay so now I've got PHP warnings which 45:24 you know and I've also got a past response where you can see I've got like zero lessons created no lesson titles 45:30 there's like science going wrong with that try this okay I'll get a 404 on that that API and 45:38 this is where it gets really interesting so it's like as my knowledge my calf day in September 2021 the correct API URL is 45:45 this and I'm like yeah well it's not so this well that 45:53 that changed sorry I went off to open AIS docs found the correct URL that it 46:00 should be and then just posted that in and I was like okay I'll paste that in but now I'm getting a 400 error and then 46:07 it's like oh I see you updated API URL to the new version but just now I told me it didn't know 46:13 the new version existed now it's like oh the new version I know about that 46:18 and this is where it goes really interesting because it pretends it doesn't know but it tells me that the reason that I'm getting this error is 46:24 because my data array is not set correctly it's like this is 46:30 what it should be and it's funny because it's Gotta just be making a logical conclusion and not actually having that 46:36 information and it's weird though because this is the exact model that's in the API AI box 46:42 this is the exact thing so it's almost as if it's pulling it and doing it though in theory it can't do that 46:49 yeah I'm like yeah this still isn't working and it's like oh the stock feels a 46:55 problem we don't need that I was like these are not that you're all right missing the prompt like they just 47:01 completely ignored the prompt it was like oh yeah sorry like that's a mistake here's the updated prompt 47:08 and I was like no still getting a 400 error and this morning and so we go back and forth a bit more I'm like I'm just 47:14 confused here's my code send me the five day code it does check GPT uh class 47:23 and then I'm like yeah the response connects to the API but it returns to empty I think it's related to our 47:29 request form this is the code so I give it the code for the request form 47:34 and it's like oh it's returning an empty response possibly because it's not providing the output based on the given 47:40 prompt in the same command try this and I'm like yeah PHP warning and it's 47:47 like try this like I don't know there's an issue with the older this is the past response 47:53 gives me some more to try I was like okay we're getting closer the course was created but no lessons or output 48:00 and it's like oh that's weird it's empty let's try updating the command variable I was just like no that's done we've 48:06 been waiting so here's where it had an idea but you're like listen here your ideas aren't good you need to you know 48:13 redirect you back right that's I think that that's kind of a close yeah approximation and actually Jack I I 48:20 wanna I'm actually gonna pause you before you go any further this this ends up working I want to actually leave a 48:26 little bit of time for questions because we've got about 12 minutes left so I'm gonna I'm gonna pause you 48:31 this is amazing I think the the persistence and the keeping it on the rails piece is really expressed in this 48:37 longer example which I anybody who's trying to do this should remember that piece but uh Addison D are you gonna 48:45 moderate questions should I just pull them from the Q a how do you want to handle this uh it's totally up to you uh this I am 48:52 completely out of my element so um but I can read off the questions if you like or if you just want to snag the 48:59 ones that um are most relevant maybe to okay yeah everyone let's I'll pull a few 49:06 from the Q a and let's uh let's start with 49:14 so Bram van AUST sorry if I butchered your name this probably means an 49:20 explosion of plugins how we'll learn Dash manage this avoiding having many chat GPT develop plugins that creates a 49:28 mess that's a good question and I think the 49:35 main answer to that is that you saw in the the Polish the more polished prototype 49:41 that we showed at the course outline you saw that Sands area which is like a global AI sends area and that's why the 49:50 key importance is that I am strutting to the developers when we're looking at the AI it's like we don't want to just add a 49:57 bajillion chat GPT plugins we want to add sensible AI functionality that helps 50:04 people either do their work quicker improves the quality of their work and 50:09 generally assist them and that's why we've got that Global AI setting so we'll add key features two line Dash 50:16 core like we don't want to be being like hey go and install these five track GPT 50:21 plugins that each do this different thing like the core of this code exists in line Dash core for that very reason 50:27 to get around that oh I got 10 track GPT plugins they all do so different they 50:32 all communicate in different ways we have that Global class now in core that will power all the future of our AI 50:39 Integrations exactly so in this you know using these two examples 50:46 we create a plug-in to prototype the idea and then when we decide oh this is 50:52 actually an interesting idea we want to roll into the core product that goes you know into our workflow into our work 50:58 cycle to get polished up reviewed integrated somewhere where it 51:03 belongs and it doesn't just become lots of little micro Solutions 51:09 exactly yeah I think that makes a lot of sense 51:14 um Tom Brown asks outside chat GPT what was your workflow were you using an external 51:20 code editor like vs code or something to compile the entire code set how did you how did you go from code in the chat box 51:27 to testing it in WordPress yeah that's a really good question um and yeah I did use vs code 51:35 um so I literally just copied and pasted the code from chatgpt into vs code on my 51:41 desktop I've got a folder open AI plugins so whenever I create a new plugin with chat EBT I just go in create 51:48 a new folder for that plugin create the files paste the code in and then uh the 51:54 very retro way of connecting to FTP to my my test site to upload the plugin and 52:01 then I can modify it back and forth because that gets really slow if you keep like 52:06 oh changing it locally then updating it and you're not integrated git or anything 52:12 um so that's just a classic FTP change so it wasn't too bad it does get 52:18 confusing sometimes which is why you're like okay check EBT it's gonna be the full code where it's like edit these 10 52:23 files with all these functions and it's like I don't even know where we were like just give me the full thing 52:30 yeah that's that's great uh Ryan Moore asks is learn Dash recommending that 52:37 customers start creating their own random plugins to add features to learn Dash how do support and compatibility 52:43 fit in and I'm going to take just the first part of this and then I want you to follow up um one of the beauties of Wordpress is 52:49 that anybody can create plugins for and add-ons and extensions to anything that 52:55 exists it's all open source it's all gpl'd um and and we do the best that we can to 53:01 create hookable actions filters extendable functions lots of things to make our products developer friendly to 53:08 do that now do a lot of customers do that some do 53:13 right some use developers to work on their products and they they create these things uh we've got a very robust 53:19 set of third-party integrators that build plugins and either sell or give them away for learndash so so that stuff 53:25 exists today that's not necessarily new I do think that chat gbt does lower the 53:33 bar to that and and has a possibility of of lots more people being able to do 53:39 um sort of exploratory work not just with learn Dash but with with anything in WordPress because it is so extensible 53:48 yeah and I think like we see now on our Facebook group we see people come in and are like hey I found this code on the 53:55 developer documentation site but I don't know how to get it working on my website like charity PT is a really good example 54:01 where you could take that code and have it build a plug-in that's relatively simple because you've given it the code and you're telling it what you wanted to 54:08 do and you can get a work in Prototype that you know you're not battling back and forth with because like 54:14 as the support team that learned that you know we we do a really great job of helping people out with all their line 54:20 Dash queries but we don't custom code things for people so this is a great way 54:25 where if like the the support team point you to documentation like developer docs it's like here's the function you need 54:31 you can then take that go to chat gbt and be like hey I have this function I need it to do this thing and nine times 54:39 out of ten you can get a pretty decent result from that which for me is really interesting to save that frustration of 54:46 like oh I have this code I'm not a developer I don't know what to do with it you don't have to get it onto my site 54:51 it doesn't work as I expected it to and charity GPT you can just take that and get it working for you in no time and 54:58 those are examples where we might send people to codable or one of these other services where you're going to have to 55:03 go you know pay a developer to help you which you know we're not interested in putting developers out of work what 55:09 we're interested in is developers having their time to work on more complicated and more interesting problems rather 55:16 than you know the the 45 minute task or half a day task that uh that's sometimes 55:22 hard to get somebody to to Really to really get get locked in on um Tom Brown asks as product owner Jack 55:30 is clearly an expert on the code base for learndash maybe not the code base 55:35 but definitely the way the product works uh what is your thoughts about getting General this getting generalized to less 55:41 experienced designers you know providing you 55:48 for reference just so we can touch on the code base I know to code based on extend I can play around with it I do 55:55 not know the code base anywhere near as well as senior Engineers do like I'm the 56:01 one that goes to them it's like hey can you point me to this piece in the code because I want to like take a look at it they're like yeah sure here it is I know 56:07 the product very well as the product owner of line Dash so I think even as a 56:13 you know if you've used lion Dash even for a couple of months you're familiar with how it works 56:19 it's really easy to take that and give it to church GPT and get something built 56:25 like you don't need to be an expert of experts in how learn Dash works or how it functions you just need to be able to 56:32 write a clear prompt for chat GPT and you don't need to know coding it helps 56:39 if you have a base understanding of like prompts and what you can get it to do 56:44 um it helps if you can tell it to like debug itself and you kind of understand how it's doing that you don't need to do 56:51 that but it speeds up the workflow and that's the key point 56:58 agreed uh we've had a couple sort of varied questions around uh you know and 57:06 also from the chat and so I'm just kind of summarize this rather than directly ask the question but um 57:13 where does and this is philosophical I don't think we have an answer for this 57:18 question necessarily but but where does the uh the the AI end and the human 57:24 course creator begin like where that I think that's one of those questions that 57:31 we're all going to be dealing with as this explosion of AI uh really takes off but I'm sorry curious Jack you're you're 57:38 steeped in all of this and are an opinionated person like what do you what do you think 57:43 I think I think the key of AI is to help speed up and refine what a human creates 57:50 and outputs like a key piece for me is you know you see AI content all around 57:57 the internet you see AI content everywhere like AI generated room content 58:03 is generally fine at a surface level unless you have a technical understanding of what it is if you're a 58:09 subject matter expert in that content you can tear apart the AI written content in minutes 58:15 you know I've done that at learndash I'm sure marketing will tell like like you 58:21 know they sent me something I'm like oh yeah but the product doesn't do that we need to do it this way and then I rewrite it based on what charging PT 58:27 done but it gives you that head style lets you get an outline it actually get an idea and so I think if you look at AI 58:35 with learn Dash I think the outliner is a really good example like it can help 58:40 you get that initial idea I think know some ideas I got in my head where it could help you refine an existing idea 58:47 that you've already input but I don't think it's a replacement for the subject matter expert that knows their content 58:54 really well and can create a course and sell it to someone there's also that human interaction element where like a 59:01 lot of people buy courses based on the community around the course whether as other students taking the course whether 59:06 that's through instructors helping them with the course whether that's through exams and Grading and charity BT can't 59:13 replace a human in that element and it probably never can you know it's not the same yeah it's not the same talking to 59:20 our boss talking to a live instructor that's had the personal experience to help you through the question that 59:25 you're stuck on yeah and I think a lot of it ends up coming back to critical thinking skills 59:31 too both in the way you interact with the AI and then kind of the key thing that we're trying to teach is to know 59:38 enough about a subject area and to be deep enough in it that you can think critically about you know what you're hearing what you're reading what you're 59:44 seeing uh and so I'll just wrap with one last question which is 59:49 we saw one really cool AI feature when when's that coming to learn Dash Jack soon very very soon very very soon 59:58 um well and I don't I don't think that's going to be the end uh I think AI assistant in in learndash is going to 1:00:05 become a thing uh we'll be playing playing with lots more Concepts here uh thanks everybody for for hanging out and 1:00:11 listening to Jack and I ramble on about Dev and courses and uh and Ai and our 1:00:18 particular workflows and how this is um disrupting the way we think about the world 1:00:24 thanks everyone