A local call is one that is placed and received within the same zip code—or technically within the same switching center. Below, we’ll break down what a local call is, how it differs from a long distance call, and why local calls are now irrelevant. An Example of a Local […]
Backups are the most important security step and are often the most neglected by website owners.
Manually backing up a WordPress database is a quick and easy way to download all your WordPress data. It is not a complete WordPress website backup, but it is handy for recovering a WordPress site.
In this article, we will show you how to back up a WordPress database manually.
Here is a quick overview of the topics we will cover in this tutorial:
When and Why Make a WordPress Database Backup Manually?
You should always install and set up a WordPress backup system for your site. This allows you to restore your site should something go wrong.
There are several situations when you may need to manually back up a database.
For instance, you could be making some big changes to your WordPress website and just to be on the safe side, you want to have a database backup.
If you have access to the admin area of your website, then you can use a plugin to make an on-demand database backup (We will show you how and which plugin to use later in this article).
On the other hand, in some instances, you may not have access to the admin area of your WordPress website.
Note: There is also a free version of Duplicator, which can be used to create database backups. We recommend upgrading to the paid version because it offers more features.
Upon activation, you need to go to the Duplicator Pro » Packages page and click on the ‘Create New’ button.
On the next screen, Duplicator allows you to choose what you want to include in the backup.
Select ‘Database Only’ and then click on the ‘Next’ button.
Duplicator will now scan your WordPress site and database.
After that, it will show you the scan results. There may be a notice next to the Database section informing you that you are creating a database-only package.
Click on the ‘Build’ button to continue.
Duplicator will now prepare your database backup in the background and show you the progress.
Once finished, you will be able to download the backup files. We recommend downloading both Archive and Installer files. This will allow you to restore your website more easily.
2. Backing Up WordPress Database Manually Using phpMyAdmin
For this method, we will be using phpMyAdmin. It is an open-source software that allows you to manage your MySQL database using a web-based interface.
For the sake of this article, we will show you screenshots from Bluehost. However, the basic procedure is the same for most hosting providers.
First, you need to log in to your WordPress hosting control panel and click on the ‘Settings’ button under your website.
Under your website settings, scroll down to the Quick Links section.
Next, click on the ‘phpMyAdmin’ button to continue.
This will launch the phpMyAdmin app in a new browser tab.
From here, click to select your WordPress database from the left column and then click on the ‘Export’ button at the top.
You will be asked to select the export method.
Next, you need to select ‘Custom’, as it will give you more options to explore.
Once you choose the Custom option, it will show all your tables in your WordPress database as selected.
Sometimes, WordPress plugins add their own tables to your database. If there are any tables that you would like to exclude from export, then you can deselect them. If you are unsure, it is better to keep them all selected.
You now need to scroll down to the ‘Output’ section.
By default, phpMyAdmin will show you the output of the export process as text.
You need to change that by selecting the ‘Save output to a file’ option.
For compression, you must select the zipped or gzipped option.
Now, you need to scroll down to the bottom of the page and click on the ‘Go’ button. phpMyAdmin will now send you the database export as a zip or gzip file.
That’s all. You have successfully made a manual WordPress database backup.
3. Creating a Manual WordPress Database Backup From cPanel
Most good WordPress hosting companies also offer easy ways to download on-demand backups. Here is how to make a manual WordPress database backup from your hosting dashboard.
For the sake of this tutorial, we will show you screenshots of Bluehost. However, the basic procedure is quite similar for other hosts.
First, log in to your hosting account dashboard and click on the ‘Settings’ button under your website.
On the next screen, you need to switch to the ‘Advanced’ tab.
From here, simply scroll down to the cPanel section and click the ‘Manage’ button.
This will launch the cPanel interface in a new browser tab.
From here, just scroll down to the files section and click on the ‘Backup’ button.
On the backups page, scroll down to the partial backups section.
From here, you need to click on your database name to download your database backup file.
You can also download the backup of your WordPress files from this page if you need to.
Restoring a WordPress Database Backup
Once you have downloaded the WordPress database backup, you can continue fixing your hacked WordPress site or make any other changes you need to.
In many cases, you probably won’t need to restore your website from the backup.
But in case you do, we have a detailed step-by-step guide on restoring WordPress from backup. It covers all common WordPress backup options including restoring from a database backup.
Set Up a Proper Automated Backup System for the Future
You can make WordPress database backups manually, but keep in mind that this is not an alternative to a proper backup solution for your WordPress site.
There are situations when you may not have access to your WordPress database. For example, this can happen if your hosting company suspends your account or loses your website data.
Another possible scenario is when some hacker injects malicious code into your WordPress database. Cleaning an infected database will be a lot more difficult.
That’s why we suggest using a proper backup plugin to store your WordPress database backups on the cloud automatically.
We recommend using Duplicator. It automatically creates and stores your backups on a cloud storage service like Google Drive, Dropbox, OneDrive, and more.
Recently, our users have asked our thoughts on the best video conferencing software for small businesses.
With many teams working remotely, having a video conferencing solution is essential for firms. It allows you to communicate with team members and clients over video from all around the world.
In this article, we will show you the best video conferencing software so you can pick the right solution for your website.
How to Choose the Best Video Conferencing Software
Video conferencing software helps improve business communication by allowing participants to connect via video. Whether you have a fully remote team or have client dealings from around the world, a video chatting solution is essential for meetings in today’s world.
When choosing a video chat solution for your business or WordPress site, there are multiple things to look for. Plus, the size of your team and your budget also play a key role in picking the right software for your business.
Here are some key factors to look for when choosing a video conferencing solution:
Video and Audio Quality – One of the most important things to look for is the reliability and quality of video and audio during meetings.
Ease of Use – Another important factor to consider is how easy it is to connect to meetings, schedule meetings, integrate it with a calendar, share call links, and more. The right software should be beginner-friendly and should not have a huge learning curve.
Number of Participants Allowed – Many platforms have a limit on how many members can join a video conference. You should look for a solution that allows a maximum number of participants.
Video Recording & Additional Features – The right video conference solution should go beyond offering basic features of video calling. For instance, look for video recording options, collaborative features like whiteboards, screen sharing, mobile apps, and more.
That said, let’s look at some of the best video conferencing software you can pick for your business.
RingCentral is the best video conferencing software in the market. The VoIP phone service offers powerful features that let you connect teams and clients via video without any interruption.
You get features like video call scheduling, secure meeting hosting, screen sharing, whiteboard, breakout rooms, meeting recordings, and more. RingCentral supports up to 200 participants in a single meeting and lets you expand the capacity even further with addons.
Other than that, the video conferencing software offers advanced meeting insights, live transcription, AI-powered noise reduction, presentation mode, webinars, and more.
One of the standout features of RingCentral is that it easily integrates with third-party tools like Slack, Microsoft 365, Google Workspace (G Suite), and more. You even get apps for iOS and Android, so your team can attend video calls on the go.
Pros:
Powerful video conferencing features
Up to 200 meeting participants
Seamless integrations
Apps for desktop, mobile, and tablet
Powerful real-time analytics
AI-powered noise reduction
Join calls without installing software or creating an account
Cons:
Lacks social media integration
Why We Recommend RingCentral: If you’re a small to medium sized business that’s looking for a video conferencing solution, then we highly recommend RingCentral. It is packed with features and makes it very easy to set up video conferencing for your business.
Pricing: RingCentral prices start from $20 per month per user, and you can invite up to 100 participants.
Nextiva is a popular business phone service that offers a video conferencing feature. It is a cloud-based platform that helps businesses of all sizes solve their phone needs.
With Nextiva, you get desktop and mobile apps, so your team members can connect remotely from anywhere. It also provides high-quality video and audio during meetings.
Other features offered by Nextiva include screen sharing, file sharing, whiteboard, live streaming, and webinar support.
Besides that, Nextiva also provides a toll-free number, dedicated apps for different devices, call forwarding, live chat, CRM, call analytics, advanced interactive voice response (IVR), internet FAX, and more.
Note: We use Nextiva at WPBeginner for our business phone service. In our experience, Nextiva is the best small business phone system in the market from both features and pricing points of view.
Why We Recommend Nextiva: We highly recommend Nextiva to small businesses that need an enterprise-level business phone service with a video conferencing feature at affordable prices.
Pricing: Nextiva prices start from $14.95 per user per month.
It is an excellent solution for small businesses and teams that need a video conferencing solution. You can use a Google account to create a free video conference and invite up to 100 participants for up to 60 minutes at no cost.
The best part about using Google Meet is that you get to use it with other Google products. For instance, it easily integrates with Google Calendar, Sheets, Docs, and more. You can also use a professional business email address and cloud storage.
Google Meet offers high-quality video calls, noise cancellation features, live captions, presentation mode, whiteboard, and secure encrypted calls.
Pros:
Invite up to 100 participants for free
Simple and easy to use
Seamless Google Workspace integration
Professional email address
Encrypted video calling
Cons:
Lacks VoIP business phone features
No transcription feature
Difficult to integrate with third-party tools outside of Google
Why We Recommend Google Meet: We believe Google Meet is the perfect video conferencing solution for new startups and small teams. It offers a free version that lets you invite up to 100 participants and works smoothly with other Google Workspace apps.
Pricing: Google Meet is a free solution. However, it also offers premium plans starting from $6 per user per month.
Zoom is one of the most popular video conferencing software in the world. You can easily set up an online conference call or meetings, as the software is beginner-friendly to use.
The best part about Zoom is that it supports up to 100 participants and unlimited 1 on 1 meetings in the free plan. However, you’re restricted to only 40 minutes of video conferencing time in the free version.
Besides that, Zoom offers apps for different operating systems and devices. This allows cross platform compatibility and gives flexibility to team members and clients to easily join meetings from any device.
Zoom also offers other features like 2-factor authenticated meetings, screen sharing, whiteboards, live polls, video annotations, and more.
Supports up to 100 participants in the free version
Cons:
Free plan limited to 40 minutes meeting duration
Premium plans can be expensive for small businesses
Why We Recommend Zoom: If you’re a small business or a remote team that’s looking for a cost-effective video conferencing solution, then we highly recommend Zoom. Its free version has all the basic features for video conferencing and supports 100 attendees.
Pricing: Zoom is a free video conferencing software. However, its premium plans start from $149.90 per year per user.
Microsoft Teams is another popular video conferencing software and is a great alternative to Google Meet.
It is perfect for enterprises, small businesses, educational institutes, and personal users who are already in the Microsoft ecosystem.
You get all the standard video conferencing software features with Microsoft Teams. For instance, it offers screen sharing, call recording, group chat during video calls, and more.
Why We Recommend Microsoft Teams: If you’re already using Office 365 and other Microsoft products, then we highly recommend Microsoft Teams. It supports up to 10,000 members in a single meeting and offers great features.
Pricing: Microsoft Teams prices start from $4 per month per user and supports up to 300 participants per meeting.
GoToMeeting is the next video conferencing software on our list. It offers great features and is versatile software for businesses of all sizes.
For starters, you get mobile apps for iOS and Android devices. They are very easy to use and allow clients and team members to take video calls from anywhere.
Besides that, the software offers screen sharing, meeting drawing tools, customizable backgrounds, and presenter controls. You also get cloud storage to save recordings and meeting transcription. GoToMeeting easily integrates with other tools like Slack, Outlook, and Salesforce.
Pros:
Easy and versatile software
Screen sharing and video recording feature
Meeting transcription
Cloud storage
Integrates with other tools
Cons:
No free version to try the software
Why We Recommend GoToMeeting: GoToMeeting is great for companies looking for a video conferencing solution that is mobile-friendly. It offers dedicated apps that are beginner-friendly to use.
Pricing: GoToMeeting prices start from $12 per user per month and supports up to 150 participants.
It offers HD video calling, call scheduling, a desktop app, conference calls, call analytics and queuing, call recording, and more.
One of the benefits of using Ooma Meetings is that it easily integrates with Google and Microsoft Office 365, Salesforce, and other tools. Another unique feature of Ooma Meetings is that 2 or more people can share their screen at the same time.
Pros:
High-quality video conferencing
Simultaneous screen sharing
Video call recording
Voicemail transcription
Seamless CRM integration
Toll-free number
Cons:
Lacks video conferencing collaborative features
Why We Recommend Ooma Meetings: If you require multiple people to present at the same time and share their screens, then Ooma Meetings is the perfect solution.
Pricing: Ooma Meetings is available in the Ooma Office Pro plan, which will cost you $24.95 per month.
Skype is one of the most popular video chatting software in the industry. The best part is that it is completely free to use.
With dedicated apps for mobile and desktops, Skype is extremely versatile and easy to use. In the free version, you can invite up to 50 participants for a video call.
Skype also offers basic features like call recording and live subtitles, smart messaging, screen sharing, and more. However, it doesn’t offer more collaborative features like other video conferencing software.
Pros:
HD video calling
Call recording and live subtitles
Screen sharing feature
Private conversations
Dedicated apps for all devices
Cons:
Lacks a lot of collaborative features
Why We Recommend Skype: If you are looking for a free solution to connect your team and clients via video, then Skype is an excellent solution.
Pricing: Skype is a free video conferencing software. It also offers premium plans that start from $5 per month.
Which is the Best Video Conferencing Software?
After reviewing and testing multiple video conferencing software, we believe that RingCentral is the best solution for all types of businesses.
It offers powerful features and supports up to 200 participants in a single video call. Plus, it is very easy to use and set up. You get dedicated apps for all devices and other features like AI-powered noise reduction, analytics, and integrations.
As an honorable mention, you can also check out Nextiva. It is a popular business phone service that also offers a video conferencing feature.
On the other hand, if you’re looking for a free option, then Google Meet is perfect. You can invite up to 100 people in the free version for a video call.
If you’re looking for a robust tool that transcribes your calls in real-time, integrates with the most popular meeting platforms, and can even attend meetings in your place, Otter.ai is for you. In this post, we’ll share exactly how to use Otter, plus we’ll give you some alternative options for […]
In my previous article, I explained how I developed a simple chatbot using LangChain and Chat-GPT that can answer queries related to Paris Olympics ticket prices.
However, one major drawback with that chatbot is that it can only generate a single response based on user queries. It can not answer follow-up questions. In short, the chatbot has no memory where it can store previous conversations and answer questions based on the information in the past conversation.
In this article, I will explain how to add memory to this chatbot and execute conversations where the chatbot can respond to queries considering the past conversation.
So, let's begin without further ado.
Installing and Importing Required Libraries
The following script installs the required libraries for this article.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains.combine_documents import create_stuff_documents_chain
from langchain.chains import create_retrieval_chain
from langchain_core.documents import Document
from langchain.chains import create_history_aware_retriever
from langchain_core.prompts import MessagesPlaceholder
from langchain_core.messages import HumanMessage, AIMessage
import os
Paris Olympics Chatbot for Generating a Single Response
Let me briefly review how we developed a chatbot capable of generating a single response and its associated problems.
The following script creates an object of the ChatOpenAI llm with the GPT-4 model, a model that powers Chat-GPT.
openai_key = os.environ.get('OPENAI_KEY2')
llm = ChatOpenAI(
openai_api_key = openai_key ,
model = 'gpt-4',
temperature = 0.5
)
Next, we import and load the official PDF containing the Paris Olympics ticket information.
We then split our PDF document and create embeddings for the different chunks of information in the PDF document. We store the embeddings in a vector database.
Subsequently, we create a ChatPromptTemplate object that accepts our input query and context information extracted from the PDF document. We create a documents_chain chain that passes the input prompt to our LLM model.
from langchain.chains.combine_documents import create_stuff_documents_chain
prompt = ChatPromptTemplate.from_template("""Answer the following question based only on the provided context:
Question: {input}
Context: {context}
"""
)
document_chain = create_stuff_documents_chain(llm, prompt)
Next, we create our vector database retriever, which retrieves information from the vector database based on the input query.
Finally, we create our retrieval_chain that accepts the retriever and document_chain as parameters and returns the final response from an LLM.
Let's ask a query about the lowest-priced tickets for tennis games.
query = "What is the lowest ticket price for tennis games?"
generate_response(query)
Output:
The lowest ticket price for tennis games is 30.
The model responded correctly.
Let's now ask for a follow-up query. The following query clearly conveys that we want to get information about the lowest-priced tickets for volleyball games.
However, since the chatbot does not have any memory to store past conversations, it treats the following query as a new standalone query. The response is different from what we aim for.
query = "And for beach volleyball?"
generate_response(query)
Output:
Beach Volleyball is played by two teams of two players each. They face off in the best of three sets on a sand court that is 16m long and 8m wide. The net is at the same height as indoor volleyball (2.24m for women and 2.43m for men). The game is contested by playing two sets to 21 points, and teams must win at least two points more than their opponents to win the set. If needed, the third set is played to 15 points. The matches take place at the Eiffel Tower Stadium in Paris.
Let's pass another query.
query = "And what is the category of this ticket?"
generate_response(query)
Output:
The context does not provide specific information on the category of the ticket.
The time model refuses to return any information.
If you have conversed with Chat-GPT, you would have noticed that it responds to follow-up questions. In the next section, you will see how to add memory to your chatbot to track past conversations.
Adding Memory to Paris Olympics Chatbot
We will create two chat templates and three chains.
The first chat template will accept user input queries and the message history and return the matching documents from our vector database. The template will have a MessagesPlaceholder attribute to store our previous chat.
We will also define history_retriever_chain, which takes the chat template we defined earlier and returns the matched document.
The following script defines our first template and chain.
prompt = ChatPromptTemplate.from_messages([
MessagesPlaceholder(variable_name="chat_history"),
("user", "{input}"),
("user", "Given the above conversation, generate a search query to look up in order to get information relevant to the conversation")
])
history_retriever_chain = create_history_aware_retriever(llm, retriever, prompt)
You can test the above chain using the following script. The chat_history list will contain HumanMessage and AIMessage objects corresponding to user queries and chatbot responses.
Next, while invoking the history_retriever_chain object, we pass the user input and the chat history.
In the response, you will see the matched documents returned by the retriever. As an example, I have only printed the first document. If you look carefully, you will see the ticket prices for the beach volleyball games. We will pass this information on to our next chain, which will return the final response.
chat_history = [
HumanMessage(content="What is the lowest ticket price for tennis games?"),
AIMessage(content="The lowest ticket price for tennis games is 30.")
]
result = history_retriever_chain.invoke({
"chat_history": chat_history,
"input": "And for Beach Volleyball?"
})
result[0]
Output:
Let's now define our second prompt template and chain. This prompt template will receive user input and message history from the user and context information from the history_retriever_chain chain. We will also define the corresponding document chain that invokes a response to this prompt.
prompt = ChatPromptTemplate.from_messages([
("system", "Answer the user's questions based on the below context:\n\n{context}"),
MessagesPlaceholder(variable_name="chat_history"),
("user", "{input}")
])
document_chain = create_stuff_documents_chain(llm, prompt)
Finally, we will sequentially chain the history_retriever_chain, and the document_chain together to create our final create_retrieval_chain.
We will pass the chat history and user input to this retrieval_chain, which first fetches the context information using the chat history from the history_retriever_chain. Next, the context retrieved from the history_retriever_chain, along with the user input and chat history, will be passed to the document_chain to generate the final response.
Since we already have some messages in the chat history, we can test our retrieval_chain using the following script.
retrieval_chain = create_retrieval_chain(history_retriever_chain, document_chain)
result = retrieval_chain.invoke({
"chat_history": chat_history,
"input": "And for Beach Volleyball?"
})
print(result['answer'])
Output:
The lowest ticket price for Beach Volleyball games is 24.
In the above output, you can see that Chat-GPT successfully generated a response to a follow-up question.
Putting it All Together - A Command Line Chatbot
To create a simple command-line chatbot, we will instantiate an empty list to store our past conversations.
Next, we define the generate_response_with_memory() function that accepts the user query as an input parameter and invokes the retrieval_chain to generate a model response.
Inside the generate_response_with_memory() function, we create HumanMessage and AIMessage objects using the user queries and chatbot responses and add them to the chat_history list.
Finally, we can execute a while loop that asks users to enter queries as console inputs. If the input contains the string bye, we empty the chat_history list, print a goodbye message and quit the loop.
Otherwise, the query is passed to the generate_response_with_memory() function to generate a chatbot response.
Here is the script and a sample output.
print("=======================================================================")
print("Welcome to Paris Olympics Ticket Information Chatbot. Enter your query")
print("=======================================================================")
query = ""
while query != "bye":
query = input("\033[1m User >>:\033[0m")
if query == "bye":
chat_history = []
print("\033[1m Chatbot>>:\033[0m Thank you for your messages, have a good day!")
break
response = generate_response_with_memory(query)
print(f"\033[1m Chatbot>>:\033[0m {response}")
Output:
Conclusion
A conversational chatbot keeps track of the past conversation. In this article, you saw how to create a Paris Olympics ticket information chatbot that answers user queries and follow-up questions using LangChain and Chat-GPT. You can use the same approach to develop conversational chatbots for other problems.
Feel free to leave your feedback in the comments.