<b>In this video, I will show you 8 hidden</b> <b>features of Flowwise that will greatly</b> <b>improve your chat flows. </b> <b>For instance, did you know that you can</b> <b>allow users to upload images by enabling</b> <b>this "Allow images upload"</b> <b>toggle on some of the chat models? </b> <b>This will allow us to upload an image to</b> <b>the chat by clicking on</b> <b>this "Add image" button.
</b> <b>And for this example, let's upload this</b> <b>menu for this fake restaurant and let's</b> <b>ask the model what the</b> <b>name of the restaurant is. </b> <b>So let's enter what is the name of the</b> <b>restaurant and we do get</b> <b>the correct response back. </b> <b>Let's try another example.
</b> <b>Let's upload this meme and let's say</b> <b>"explain the meme" and this explanation</b> <b>is 100% correct that you know that you</b> <b>can enable speech to</b> <b>text recognition as well. </b> <b>This will enable the user to ask</b> <b>questions using their voice. </b> <b>We can enable this by going to settings,</b> <b>configuration, we can click</b> <b>on the speech to text menu.
</b> <b>Under providers, let's select open AI,</b> <b>select your open AI credentials. </b> <b>Optionally, we can set the language which</b> <b>will help improve the</b> <b>accuracy of the model. </b> <b>We can also set the prompt</b> <b>as well as the temperature.
</b> <b>I'll simply leave it as is. </b> <b>Let's click on save and now we can chat</b> <b>to the model using our voice by clicking</b> <b>on this microphone button. </b> <b>Tell me a joke about horses.
</b> <b>And first we can see that it's converted</b> <b>my voice into text and</b> <b>the model is responding. </b> <b>Nice. </b> <b>Another useful feature for larger chat</b> <b>flows is sticky notes.
</b> <b>We can add sticky notes to our canvas by</b> <b>clicking on add notes,</b> <b>utilities and then sticky note. </b> <b>We can move the sticky notes around on</b> <b>the canvas and we can then</b> <b>leave notes for ourselves. </b> <b>So let's say we wanted to replace this</b> <b>buffer memory note</b> <b>with a redus note instead.
</b> <b>We can simply change the text</b> <b>and leave a note for ourselves. </b> <b>These can be extremely useful for keeping</b> <b>track of certain decisions</b> <b>or to-dos in the chat flow. </b> <b>Another useful</b> <b>feature is starter prompts.
</b> <b>These prompts will show up just above the</b> <b>chat box when a user</b> <b>starts a new conversation. </b> <b>And this can be very useful for getting</b> <b>the conversation started. </b> <b>We can add starter prompts for going to</b> <b>settings, configuration and we can click</b> <b>on the starter prompts menu.
</b> <b>From here we can add</b> <b>multiple starter prompts. </b> <b>For instance, schedule an appointment. </b> <b>Let's add get my order status and maybe</b> <b>what services do you offer?
</b> <b>It's saved as it's close to pop up. </b> <b>And now when we open the chat, we can see</b> <b>those initial prompts showing up. </b> <b>Another user has the option of typing a</b> <b>message or simply clicking on one of</b> <b>these to get started.
</b> <b>Next, I'm going to show you a few more</b> <b>important features like getting feedback</b> <b>from the user during the conversation</b> <b>as well as preventing</b> <b>duplicates in our vector stores. </b> <b>But first, if you like this video, then</b> <b>please hit the like button</b> <b>and subscribe to my channel. </b> <b>Also, let me know down in the comments if</b> <b>you like this type of video where I show</b> <b>you quick tips about flow wise.
</b> <b>And also let me know if I missed any</b> <b>features in the comments below. </b> <b>The following two features are extremely</b> <b>important for protecting</b> <b>your chat flows in production. </b> <b>The first is rate limiting.
</b> <b>We can use rate limiting to prevent users</b> <b>from spamming our chatbot by sending</b> <b>multiple messages and</b> <b>driving up your costs. </b> <b>We can set rate limiting by going to</b> <b>settings, configuration, and then go to</b> <b>the rate limiting tab. </b> <b>From here, you can set how many messages</b> <b>should be allowed within</b> <b>a certain period of time.
</b> <b>For example, let's say that we only</b> <b>allowed 10 messages</b> <b>within a one minute period. </b> <b>If we exceed this limit, we will show the</b> <b>following message to the user like, "Sly</b> <b>your horses, try again in a few seconds. "</b> <b>Another great option of preventing people</b> <b>from embedding your chat flow into their</b> <b>websites is to set an allowed domain.
</b> <b>You can access that from the settings by</b> <b>going to allowed domains. </b> <b>And as per this description, your chatbot</b> <b>will only work when used</b> <b>from the following domains. </b> <b>So here, you can simply enter the name of</b> <b>your website and this chatbot will only</b> <b>work from the specific domain.
</b> <b>Another incredibly useful</b> <b>feature is chat feedback. </b> <b>When users send messages to your chatbot,</b> <b>these conversations are recorded and you</b> <b>can view them by going to</b> <b>settings and view messages. </b> <b>View messages is extremely helpful for</b> <b>figuring out what's going well and what's</b> <b>not working with your chat flows.
</b> <b>And it's very useful</b> <b>for priming your models. </b> <b>But did you know that we can also receive</b> <b>feedback from the users, which will</b> <b>further help us in</b> <b>improving our chat flows? </b> <b>On the screen, we can see these blocks</b> <b>for the total amount of feedback received</b> <b>as well as a positive</b> <b>feedback percentage.
</b> <b>But how does this actually work? </b> <b>This is extremely easy. </b> <b>We can enable chat feedback by going to</b> <b>settings, configuration, then click on</b> <b>chat feedback, enable this, save.
</b> <b>Now let's have a look at our chat window. </b> <b>We now get these buttons to like or</b> <b>dislike this response. </b> <b>Let's go ahead and like this response.
</b> <b>We can also leave</b> <b>feedback like this was cool. </b> <b>Let's submit this. </b> <b>Let's continue the conversation.
</b> <b>What is your name? </b> <b>Let's actually dislike this comment. </b> <b>Let's say I don't like the name.
</b> <b>Let's submit this. </b> <b>Now let's go back to our view messages. </b> <b>And now we can see that we receive</b> <b>feedback from our users with a 50%</b> <b>positive feedback rate.
</b> <b>And in the conversation, we can also see</b> <b>that the user liked this message as well</b> <b>as the feedback provided. </b> <b>And we can also see that dislike with the</b> <b>reasons for the dislike. </b> <b>This is so useful for</b> <b>improving our chatbots.
</b> <b>Now lastly is a very important feature</b> <b>that some of you have been</b> <b>asking for for quite a while. </b> <b>Here I have a rack chatbot that upsets</b> <b>data into a pinecone database. </b> <b>And if I go to the pinecone database, I</b> <b>can see my one record over here.
</b> <b>Now some of you might be familiar with</b> <b>this very common issue. </b> <b>When we change data in our source file</b> <b>and we click on absurd again,</b> <b>this is simply going to create a</b> <b>duplicate record in the vector database</b> <b>instead of deleting the old record. </b> <b>Now this is slightly more technical to</b> <b>set up, but I do think</b> <b>it's worth mentioning.
</b> <b>In flow wise, we have</b> <b>something called the record manager. </b> <b>And we can see that this keeps tracks of</b> <b>records to prevent duplication. </b> <b>So what we can do is add a record manager</b> <b>to this flow and that will ensure that</b> <b>records are not duplicated.
</b> <b>And when we make changes to our source</b> <b>data, only the updates are inserted. </b> <b>So we can simply click on add notes, then</b> <b>go to record manager. </b> <b>And at the moment, we have the options of</b> <b>adding a MySQL record</b> <b>manager, Postgres or SQLite.
</b> <b>So if you do have access to one of these</b> <b>databases, you can</b> <b>simply add it to your canvas,</b> <b>then connect it to this pinecone node and</b> <b>this will help ensure that</b> <b>we do not insert duplicates. </b> <b>Setting up these</b> <b>databases can take some time. </b> <b>So let me know in the comments if you</b> <b>would like to see a</b> <b>dedicated video on record manager.
</b> <b>But what I do want to show you is if you</b> <b>click on additional parameters,</b> <b>we can select from</b> <b>different cleanup options. </b> <b>And these options are very well</b> <b>documented in the</b> <b>flow wise documentation. </b> <b>So we will use incremental when you want</b> <b>to upset multiple documents without</b> <b>deleting any of the existing documents</b> <b>that is not part of the</b> <b>current upsetting process.
</b> <b>With full mode, when you</b> <b>upset multiple documents,</b> <b>it will automatically delete any vector</b> <b>embeddings that are not part of the</b> <b>current upsetting process. </b> <b>Or you can just leave it on none, which</b> <b>will not perform any cleanup process. </b> <b>This video was a lot of fun to make and</b> <b>it is different to my usual format.
</b> <b>Please let me know in the comments if you</b> <b>would like to see more of</b> <b>these quick tip flow wise videos. </b> <b>If you like this video, then please hit</b> <b>the like button and</b> <b>subscribe to my channel.