On this article, you’ll discover ways to prepare and take a look at your individual chatbot utilizing the OpenAI API, and how one can flip it into an internet app that you would be able to share with the world.

Desk of Contents
  1. Why Make a Chatbot?
  2. Getting Started with the OpenAI API
  3. Preparing Your Data
  4. Training and Testing a Simple Chatbot on Your Data
  5. Making the Chatbot
  6. Implementing Your Chatbot into a Web App
  7. Conclusion

Why Make a Chatbot?

With AI having revolutionized data applied sciences, many have leveraged it utilizing API suppliers comparable to OpenAI to combine AI into their information.

A very great way of utilizing AI in your information is to make your individual chatbot.

For instance, think about you’ve gotten a dataset consisting of 1000’s of firm earnings studies. You’d prefer to discover and analyze it with out spending hours of your time. A superb possibility can be to make a chatbot to reply any questions you’ll have in regards to the paperwork — to avoid wasting you having to manually search by them.

For instance, you might need to ask “which firm had the most effective earnings final quarter?” — a query that you just’d normally must reply by manually digging by your dataset. By utilizing a chatbot skilled in your information, you may get the reply to that query in a matter of seconds.

Getting Began with the OpenAI API

To get began in your very personal chatbot, you first want entry to the OpenAI API. To get your OpenAI API key, enroll on the OpenAI website. Then click on your profile icon positioned on the top-right nook of the house web page, choose View API Keys, and click on Create New Secret Key to generate a brand new API key.

Making ready Your Information

For this tutorial, I’ll be utilizing the Wikipedia web page for computer systems to make a easy chatbot that may reply any common query about computer systems and their historical past.

You may obtain the dataset in textual content format from this article’s GitHub repo.

Create a brand new folder the place you’ll be making your chatbot. Then create a folder named chatbot_docs inside your undertaking folder, and paste the dataset file into that folder. (The title of the folder doesn’t matter, however for this tutorial it’s a lot simpler to call it chatbot_docs.)

Coaching and Testing a Easy Chatbot on Your Information

After getting your API key and dataset file, you may get began with the precise code.

Go to your undertaking folder and create an empty Python file inside your new undertaking folder.

When you’ve executed that, obtain the libraries that we’re going to be utilizing by working the next in your terminal:

pip3 set up langchain flask llama_index gradio openai pandas numpy glob datetime

Lastly, when you’ve put in all the required libraries, paste in this Python code from our repo into your Python file.

For this tutorial, I’m utilizing the gpt-3.5-turbo OpenAI mannequin, because it’s the quickest and is probably the most value environment friendly. As you’ll have seen should you’ve seemed on the code, I set the temperature of the chatbot to 0. I did this to make the chatbot as factually correct as attainable. The temperature parameter determines the creativity of the chatbot, the place a temperature of 0 implies that the chatbot is at all times factually correct and a temperature of 1 implies that the chatbot has full freedom to make up solutions and particulars for the sake of creativity, even when they’re not correct. The upper the temperature, the extra inventive and fewer factually correct the chatbot is.

All through this code, I point out the phrase “embeddings”. That is simply what the textual content in your Wikipedia doc will get was with a view to be understood and made sense of by the chatbot. Every embedding is a listing of numbers starting from -1 to 1 that affiliate each bit of knowledge by how carefully it’s associated to a different. In case you’re questioning what the text-embedding-ada-002 means, that is simply the mannequin that’s getting used to make the embeddings, as a result of it’s probably the most value and time environment friendly.

This code makes an embeddings CSV file for every doc in your chatbot_docs folder, and because you solely have one (for the needs of this tutorial), it solely creates one embeddings file. However should you had extra paperwork, the code would create an embeddings file for every doc. This strategy makes your chatbot extra scalable.

You’re additionally most likely questioning in regards to the half with the chunks:

text_splitter = RecursiveCharacterTextSplitter(separators=["nn",  "n"], chunk_size=2000, chunk_overlap=250) 
texts = text_splitter.split_text(content material)  

Let me clarify. This code splits the Wikipedia web page about computer systems into chunks of 2000 characters and a piece overlap of 250 characters. The larger the chunk dimension, the larger the context of the chatbot, however this could additionally make it slower, so I selected 2000 as a pleasant center floor between 0 and 4096 (the utmost chunk dimension) for this tutorial.

As for the chunk overlap, ChatGPT recommends preserving the chunk overlap between 10% to twenty% of the chunk dimension. This retains some context between the completely different chunks. It additionally makes certain the chunks aren’t redundant, by preserving them from containing an excessive amount of of the earlier chunks information.

The smaller the chunk overlap, the smaller the context between the chunks. The larger the chunk overlap, the larger the context between the chunks and the extra redundant the chunk information.

This code additionally splits the doc by paragraphs — by splitting the textual content each time there’s a newline (n or nn). This makes the chunks extra cohesive, by guaranteeing the chunks aren’t cut up mid-paragraph.

Making the Chatbot

When you’ve run your code, you’ve ready your information for use by the chatbot. This implies now you can make the precise chatbot.

Whereas the Python file you simply ran created the embeddings wanted for the chatbot to perform, you’re now going to must make one other Python file for the precise chatbot. This can take a query as enter, and output a solution made by the chatbot.

When you’ve created a brand new Python file, add this Python code from the repo.

Now, should you run your chatbot, you must get the next output after a few seconds of processing.

Answer demo

Now that you’ve got your chatbot, you may experiment with completely different questions! You can even experiment with completely different chunks and chunk overlaps, in addition to temperature (should you don’t want your chatbot to be 100% factually correct).

Implementing Your Chatbot right into a Internet App

Whereas having a easy chatbot is good, you’re most likely searching for the true deal — the place you’ve gotten a UI in your chatbot that lets customers from everywhere in the world use it.

To get began together with your chatbot internet app, create a templates folder inside your undertaking listing. Inside that, create an HTML file referred to as bot.html and a CSS file referred to as model.css.

Additionally ensure that to create an empty chat folder inside your undertaking listing. That is going for use for the backend–frontend communication.

Now add this css code to your model.css file.

After you’ve executed that, add this HTML to your bot.html file.

Now, you’re going to have to vary your Python chatbot script to obtain requests out of your internet web page and ship again responses utilizing Flask. Change your Python script to this code.

Now let’s take a look at your chatbot internet app! Run your Python file and open localhost:8001. You need to now see your internet web page, as pictured beneath.

Our UI

Now should you enter a query, you must see a loading animation whereas the chatbot is processing it.

Our loading animation

Lastly, after just a few seconds, you must get a response from the chatbot, as pictured beneath.



Now you may experiment together with your chatbot. Use completely different units of knowledge and construct on prime of this straightforward internet app to make your individual totally functioning internet apps. The great thing about chatbots is that they are often skilled on something — from podcast transcripts to philosophy books.

I hope you discovered this tutorial useful. Completely happy coding!