0% found this document useful (0 votes)
12 views52 pages

Anjali Fin Fin

The project report presents an NLP-driven virtual educator aimed at enhancing smart teaching in computer science education. It discusses the application of advanced NLP techniques to automate educational tasks, improve student engagement, and provide personalized learning experiences. The proposed system utilizes transformer-based models for intelligent query handling and aims to address the limitations of existing rule-based educational systems.

Uploaded by

Sathish Loal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views52 pages

Anjali Fin Fin

The project report presents an NLP-driven virtual educator aimed at enhancing smart teaching in computer science education. It discusses the application of advanced NLP techniques to automate educational tasks, improve student engagement, and provide personalized learning experiences. The proposed system utilizes transformer-based models for intelligent query handling and aims to address the limitations of existing rule-based educational systems.

Uploaded by

Sathish Loal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

A

Project Report

on

NLP - DRIVEN VIRTUAL EDUCATOR FOR


SMART TEACHING

Submitted in partial fulfillment of the requirement


For the award of the degree of

BACHELOR OF TECHNOLOGY
IN

COMPUTER SCIENCE AND ENGINEERING

Submitted by

SUNKARA SATHISH 21A31A05J1


REPAKA M V S D K ANJALI 21A31A05F3
MUPPANA ANAND KUMAR 21A31A05H9
TALASILA KOWSHIK RAM 21A31A05J2
BANDARU VENKATA SANDEEP 21A31A05G6

Under the esteemed guidance of


Mrs. D. Kanaka Mahalakshmi Devi
Assistant Professor
Department of CSE

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

PRAGATI ENGINEERING COLLEGE


(AUTONOMOUS)
(Approved by AICTE, Permanently Affiliated to JNTUK, KAKINADA, Accredited by NBA)
1-378, ADB Road, Surampalem, Near Peddapuram-533437
2024-25
PRAGATI ENGINEERING COLLEGE
(AUTONOMOUS)
(Approved by AICTE, Permanently Affiliated to JNTUK, Kakinada, Accredited by NBA)

1-378, ADB Road, Surampalem, Near Peddapuram-533437

CERTIFICATE
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

This is to certify that the project report entitled “NLP - DRIVEN VIRTUAL EDUCATOR
FOR SMART TEACHING” is being submitted by Sunkara Sathish (21A31A05J1), Repaka
M V S D K Anjali (21A31A05F3), Muppana Anand Kumar (21A31A05H9), Talasila
Kowshik Ram (21A31A05J2), Bandaru Lakshmi Venkata Sandeep (21A31A05G6) in
partial fulfillment for the award of the Degree of Bachelor of Technology, during the year 2024-
25 in Computer Science and Engineering of Pragati Engineering College, for the record of a
bonafide work carried out by them.

Project Guide: Head of the Department:


Mrs. D Kanaka Mahalakshmi Devi Dr.D.V.Manjula
Assistant Professor Associate Professor & HOD
Department of CSE Department of CSE

External Examiner
ACKNOWLEDGEMENT

We express our thanks to project guide Mrs. D. Kanaka Mahalakshmi Devi, Assistant
Professor of Computer Science and Engineering, who deserves a special note of thanks
and gratitude, for having extended their fullest co-operation and guidance, without this,
project would never have materialized.

We express our deep sense of gratitude to Dr. D. V. Manjula, Associate Professor and
Head of the Department of Computer Science and Engineering, for having shown keen
interest at every stage of development of our project and for guiding us in every aspect.

We wish to express our special thanks to our beloved Dr. K. SATYANARAYANA,


Professor & Academic Director for giving guidelines and encouragement.

We wish to express our special thanks to our beloved Dr. G. NARESH, Professor &
Principal for giving guidelines and encouragement.

We wish to express sincere gratitude to our beloved and respected Dr. P. KRISHNA RAO,
Chairman and Sri. M. V. HARANATHA BABU, Director (Management) and Sri. M.
SATISH, Vice-President for their encouragement and blessings.

We are thankful to all our faculty members of the Department for their valuable
suggestions. Our sincere thanks are also extended to all the teaching and non-teaching staff
of Pragati Engineering College.

We also thank our parents whose continuous support has helped us in the successful
completion of the project.

SUNKARA SATHISH 21A31A05J1


REPAKA M V S D K ANJALI 21A31A05F3
MUPPANA ANAND KUMAR 21A31A05H9
TALASILA KOWSHIK RAM 21A31A05J2
BANDARU VENKATA SANDEEP 21A31A05G6
NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

ABSTRACT
This research explores the use of natural language processing (NLP) techniques to
answer complex questions in the context of computer science education. Applying
connectivism as the theoretical framework, the study demonstrates the effectiveness of
web scraping to extract large datasets from publicly available sources and applies these
insights to inform educational practices. Additionally, the research highlights how NLP
can be used to extract relevant information from textual data, supporting qualitative
analysis. A practical example is provided, showcasing current trends in the job market
for computer science students. The findings emphasize the need to enhance
programming and testing skills in the curriculum. To facilitate this, the paper introduces
a chatbot framework using LangChain and Streamlit that integrates multiple document
types such as PDFs, DOCX, and TXT files. Powered by FAISS for vector-based
document retrieval and Replicate’s Llama 2 for conversational AI, the system enables
interactive question answering and document analysis, providing a tool for educators
and researchers to efficiently gather and analyze knowledge.

Keywords: Web Scraping, Natural Language Processing, Connectivism, LangChain,


FAISS, Chatbot, Replicate Llama 2, Data Acquisition

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

TABLE OF CONTENT
ACKNOWLEGEMENT

ABSTRACT

LIST OF FIGURES

CHAPTER-1 Introduction 1-3

CHAPTER-2 Literature Survey 4-5

CHAPTER-3 System Analysis 6-10

3.1 Existing System

3.2 Proposed System

3.3 Hardware Requirements

3.4 Software Requirements

CHAPTER-4 System Design 11-18

4.1 System Architecture

4.2 Flow Chart

4.3 Class and Sequence Diagrams

4.4 UML Diagrams

CHAPTER-5 Implementation 19-22

CHAPTER-6 Results------ 23-26

CHAPTER-7 System Testing 27-31


27-31

CHAPTER-8 Conclusion and Future Work --------------------------------------------- 32-34

REFERENCES 35

APPENDIX 36-39

PAPER PUBLICATION 40-47

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

LIST OF FIGURES

Figure No. Name of the figure Page no

4.1 System Architecture 13

4.2 Flow Chart Diagram 14

4.3 Class diagram 16

4.4 Use - case diagram 17

4.5 Sequence diagram 18

6.1 Document Processing 24

6.2 Multi-Document Specialist Chat Interface -------------------------------------- 25

6.3 Understanding Random Variables ------------------------------------------------ 25

6.4 Examples of Random Variables --------------------------------------------------- 26

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-1
INTRODUCTION

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 1|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-1
INTRODUCTION
The rapid advancements in artificial intelligence (AI) and natural language processing
(NLP), the education sector is experiencing a significant transformation. Traditional
methods of teaching are evolving, incorporating digital tools that enhance the learning
experience for students and provide better support for educators. Among these
innovations, NLP-based teaching assistants stand out as a revolutionary development,
offering personalized, interactive, and intelligent educational support.
Evolution of AI in Education
Artificial intelligence has been shaping various industries, and education is no exception.
From early computer-assisted learning programs to modern AI-driven platforms, the role
of technology in education has grown exponentially. Initially, e-learning platforms
provided basic automation in content delivery. However, with advancements in machine
learning and NLP, AI-powered teaching assistants now provide real-time, interactive
support to students. These intelligent systems have significantly enhanced learning by
making it more adaptive, efficient, and student-centric.
Understanding NLP in Education
The incorporation of NLP in education also promotes inclusivity by supporting multiple
languages and accommodating diverse linguistic backgrounds. Language barriers often
hinder effective learning, particularly in multicultural and international educational
settings. NLP-powered assistants can offer multilingual support, translating content and
assisting non-native speakers in understanding complex concepts. This capability
enables students from different regions to access quality education without being
restricted by language constraints. Additionally, the application of NLP in education
extends beyond student engagement and assessment. This helps educators stay updated
with the latest advancements and enhances their teaching strategies.
Automating Routine Tasks for Educators
Educators often face time constraints due to administrative tasks such as grading
assignments, evaluating essays, and providing feedback. NLP-based teaching assistants
can automate many of these tasks, allowing teachers to focus more on interactive
learning and mentorship. Some key automation capabilities include NLP-based teaching
assistants play a crucial role in automating various aspects of the educational process,
particularly in grading, feedback, and content summarization.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 2|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Content Summarization for Efficient Studying


Many students struggle with processing large volumes of information, especially when
dealing with complex academic texts. NLP technology plays a crucial role in
summarizing lengthy study materials into concise, digestible formats, allowing students
to grasp key concepts quickly. By using natural language understanding techniques,
these assistants can extract the most important points from textbooks, lecture notes,
research papers, or articles and present them in a structured manner. Summarization can
be achieved through different methods, such This feature is particularly useful for
students who need quick revision notes or those who prefer a more structured
breakdown of information.

Personalized Feedback for Enhanced Learning


NLP-based teaching assistants are not only improving the efficiency of grading and feedback but
also transforming the way students engage with learning materials. These AI-powered tools offer
a highly interactive and adaptive learning experience, catering to the unique needs of individual
learners. Unlike traditional learning methods, which often follow a one-size-fits-all approach,
NLP-based assistants can analyze student behavior, track progress, and personalize learning paths
based on strengths and weaknesses. By continuously monitoring student responses, these
assistants can adjust the complexity of questions, suggest relevant study materials, and even
modify teaching strategies to match a student’s preferred learning style. This level of
customization ensures that each learner progresses at their own pace, making education more
inclusive and effective.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 3|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-2
LITERATURE REVIEW

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 4|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-2
LITERATURE REVIEW
Author(s): S. Fincher and M. Petre.
Title: " Computer Science Education Research"
This book provides a comprehensive analysis of research in computer science education. It
explores methodologies, teaching practices, and challenges faced in imparting computer science
knowledge. The authors emphasize the importance of empirical studies in understanding how
students learn programming and other core computer science concepts. By discussing different
instructional methods and assessment techniques, the book serves as a foundational guide for
educators and researchers looking to improve computer science curricula..

Author(s): J. J. Randolph, G. Julnes, E. Sutinen, and S. Lehman


Title: " A Methodological Review of Computer Science Education Research"
This paper presents a methodological review of research conducted in the field of
computer science education. The authors analyze various approaches used to assess
learning outcomes, instructional effectiveness, and curriculum design. They highlight
trends in educational research methodologies, such as qualitative, quantitative, and
mixed-method approaches, and discuss the implications of these methodologies on the
future of teaching computer science.

Author(s): A. M. Christie
Title: "Software Process Automation: The Technology and Its Adoption "
This book delves into the concept of software process automation, explaining how
automation tools and technologies can improve the software development lifecycle. It
explores different frameworks, best practices, and adoption strategies that help
organizations optimize development processes. By automating repetitive tasks, teams
can enhance productivity, reduce human errors, and streamline workflows in software
engineering..

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 5|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-3
SYSTEM ANALYSIS

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 6|P a ge


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-3
SYSTEM ANALYSIS

Current AI tutors, such as Duolingo, use NLP and rule-based systems for adaptive
responses.Existing System

In the existing system, research has been conducted on virtual assistants used in
education, where rule-based chatbots respond to predefined student queries. These
systems use keyword matching or pattern-based techniques to generate responses.
Studies show that while rule-based systems are easy to implement, they lack the ability
to understand context or handle dynamic queries. A few systems have integrated basic
NLP methods like tokenization and part-of-speech tagging; however, they still fall short
in providing meaningful interactions or adaptive learning. Most of these systems operate
without deep learning models and rely heavily on static responses. The significance of
this approach was to offer basic tutoring help, but with limited accuracy and
engagement. Datasets used in such systems are often small and domain-specific,
restricting their performance. The average response accuracy is estimated at around
55%. These systems aimed to reduce student support load, but were not scalable or
personalized. Models used include simple decision trees and bag-of-words models with
no real contextual understanding.

Moreover, these earlier systems lacked adaptability and could not update themselves
based on user interaction or feedback. As a result, students often encountered repetitive
answers or irrelevant responses, leading to poor user experience. Since most rule-based
systems do not leverage semantic analysis, they fail to handle paraphrased or
grammatically incorrect inputs, which are common among learners. These limitations
significantly reduce their effectiveness in real-world classroom or e-learning
environments. Although some platforms attempted to incorporate speech recognition
and basic sentiment detection, the absence of deep contextual NLP models limited their
functionality. However, they often rely on predefined content limiting their adaptability
to individual learner needs.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 7|P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Challenges of the Existing System:

1. Low Accuracy in text creation:

The existing fraud detection models achieve only around 50% accuracy in identifying
sentiment analysis. Many text related problems are like name identification are remain
same.

2. High False Positives and False Negatives:

False positives: Legitimate transactions are mistakenly flagged as negative, causing


inconvenience to students

False negatives: Actual fraudulent transactions go undetected, allowing fraudsters to


escape unnoticed.

3. Inability to Handle Large and Imbalanced Datasets:

document data is highly imbalanced, with fraud cases making up only a small portion of
total transactions. Many machine learning algorithms struggle to classify fraudulent
transactions correctly.

Processing large transaction datasets in real-time is difficult, leading to delays in text


generation.

4. High Computational Cost:

Artificial Neural Networks (ANN) and Cluster Analysis require high processing power
Data normalization and pre processing steps increase complexity and system.

High computational cost makes it inefficient for real-time fraud detection

5. Privacy and Data Security Concerns:

Text summarization relies on sensitive transactional data, raising privacy concerns

Regulations restrict the sharing of fraud detection datasets, limiting the system's
learning ability.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 8|P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Proposed System
In the proposed system, we are implementing advanced NLP models for building a
virtual educator capable of understanding and responding to student queries
intelligently. The architecture integrates transformer-based models like BERT for
question understanding and GPT for generating accurate and context-aware responses.
These models process input text using tokenization, attention mechanisms, and
contextual embeddings to derive semantic meaning. Unlike traditional rule-based
systems, the NLP-driven approach can handle complex sentence structures, ambiguous
queries, and natural variations in language. A preprocessed dataset of student-teacher
dialogues is used to train the system. The model learns to map questions to relevant
answers, enabling personalized and meaningful interaction with users. The proposed
system is designed to adapt and improve through continuous learning and feedback
loops.

The following steps include:

1. Data collection and preprocessing using tokenization and lemmatization.

2. Training a BERT model for intent recognition and semantic understanding.

3. Generating responses using GPT or sequence-to-sequence models.

4. Integrating the model with a user interface for real-time interaction.

5. Evaluating system performance using metrics like accuracy, precision, and response
relevance.

To further enhance the system's capabilities, a feedback mechanism is introduced where


user ratings and corrections are analyzed to retrain and fine-tune the model periodically.
This ensures the virtual educator evolves with usage, improving both accuracy and
relevance of responses. Additionally, domain-specific knowledge bases are integrated
to support curriculum-aligned learning in subjects like mathematics, science, and
programming. The proposed system also supports multilingual input, allowing a
broader reach to diverse student groups. Speech-to-text modules can be added for
voice-based queries, making the educator more accessible. With these features, the
NLP-driven virtual educator offers a scalable, intelligent, and adaptive solution for
modern digital learning environments.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 10| P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

System Requirements Specification:

1. Hardware Requirements:

a) Processor-Intel i5/i7 or equivalent (for local processing)

b) RAM-8GB or more (for smooth ML model execution)

c) Storage SSD with at least 100GB (for storing transactional datasets)

d) GPU (Optional) Required for large-scale fraud detection using deep learning

2. Software Requirements:

a) Programming Language Python (for ML model development)

b) Libraries & Frameworks-Scikit-learn, Pandas, NumPy, Matplotlib

c) Database-MySQL/PostgreSQL/MongoDB (for storing transaction records)

d) Cloud Services (Optional) AWS/Google Cloud for large-scale deployment

Visualization Streamlit/Flask for Ul dashboards we aim to overcome the limitations of


existing systems. By combining NLP with Mistral-7B-Instruct model built with
Streamlit, LangChain, and FAISS we aim to create a highly adaptive AI tutor that
delivers personalized, interactive, and context-aware learning experiences and there by
facilitating seamless interaction.Mistral-7B-Instruct model(lightweight yet powerful
LLM) mainly assists in generating structured, clear, and precise explanations as well as
providing optimized low latency responses.The system dynamically adjusts content and
difficulty based on learner proficiency enhancing personalization and performance.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 10| P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-4
SYSTEM DESIGN

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 11 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-4
SYSTEM DESIGN

SYSTEM ARCHITECTURE:

The system architecture depicted in the image represents an AI-powered document-based


question-answering system, structured into multiple layers for efficient processing and
retrieval of information. At the top, the Client Layer consists of the Streamlit UI, which
serves as the front-end interface where users can upload documents and submit queries.
The Application Layer forms the core of the system, comprising two main components:
the Conversation Engine and Document Processing. The Conversation Engine is
responsible for managing user interactions, utilizing a Conversational Retrieval Chain to
retrieve relevant information and maintain context through Conversation Buffer Memory.
It also includes Session Management to handle ongoing conversations and a Vector
Retriever that fetches relevant document chunks. The Document Processing component
manages uploaded documents by utilizing Document Loaders, which support formats
such as PDFs, DOCX, and TXT files. These documents are further processed using a
Text Splitter, which divides them into smaller chunks for efficient retrieval. The Data
Layer employs a FAISS Vector Store for storing and retrieving document embeddings,
enabling fast similarity-based search. It leverages Hugging Face Embeddings to convert
text into vector representations, ensuring accurate matching of user queries with relevant
document sections. Lastly, the External Services layer integrates powerful AI models via
the Replicate LLM API and Hugging Face Models, which generate intelligent responses
based on retrieved document chunks. This multi-layered architecture ensures seamless
document retrieval, efficient conversation management, and AI-driven responses, making
it suitable for applications like chatbots, research assistants, and automated knowledge
retrieval systems.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 12 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Fig 4.1 System Architecture for NLP Based Teaching Assistant

The given image represents a flowchart of an AI-powered document-based question-


answering system. The process begins with the initialization of the application
(InitializeApp), which sets up the session state (WaitForDocuments). The user then
uploads files that need to be processed (ProcessDocuments). The system processes and
splits the documents, storing them in a FAISS-based vector store (CreateVectorStore).
Once the vector store is created, the system is ready to accept queries
(ReadyForQueries). When a user enters a query, the system processes it (ProcessQuery),
retrieves relevant contextual information from the vector store (RetrieveContext), and
extracts relevant document chunks. Alternatively, if the user closes the application, the
session ends, and no further interactions take place. This structured flow ensures efficient
document-based conversational AI by leveraging natural language processing (NLP),
vector retrieval, and memory-based contextual awareness, making it ideal for
educational, research, and enterprise applications where users need fast and precise
answers from large document repositories.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 13 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Fig 4.2 Flow Chart Diagram for NLP Based Teaching Assistant

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 14 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

UML Diagrams

The Unified Modeling Language (UML) is a standardized modeling language widely


employed in object-oriented software development. It provides a consistent approach
for visualizing the structure and design of software systems, helping developers and
stakeholders communicate effectively and comprehend intricate system architectures.

Objectives of UML

The core objectives behind the creation of UML include:

 Visual Modeling: To provide a flexible language that allows developers to


create and share meaningful models of software systems.

 Extensibility: To give users the ability to adapt and extend the language to meet
the specific needs of different projects.

 Platform Independence: To ensure the language can be used across various


programming languages and development platforms.

Types of UML Diagrams

UML diagrams are categorized into two main groups:

1. Structural Diagrams: These diagrams depict the static components of a system


and their interrelations.

o Class Diagram

o Component Diagram

o Object Diagram

o Deployment Diagram

o Package Diagram

o Composite Structure Diagram

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 15 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

2. Behavioral Diagrams: These diagrams focus on the dynamic aspects of a


system, illustrating how objects interact and evolve over time.

o Use Case Diagram

o Activity Diagram

o Sequence Diagram

o Communication Diagram

o State Diagram

o Interaction Overview Diagram

CLASS DIAGRAM

The Class Diagram is a core UML diagram that describes the static structure of a
system. It shows the system's classes, their attributes (data fields), methods (functions
or procedures), and the relationships between the classes. They act as a blueprint for
defining the system's architecture and help in efficiently structuring and organizing the
system’s elements.

Fig 4.3 Overview of NLP-Based Conversational System Class Diagram

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 16 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

USE CASE DIAGRAM

A Use Case Diagram is a type of behavioral diagram in the Unified Modeling


Language (UML), derived from use-case analysis. It is designed to provide a visual
representation of the functional requirements of a system, focusing on the interactions
between actors (which can be users or other systems) and the use cases (functions or
actions) of the system. The primary goal of a use case diagram is to illustrate which
system functions are available to each actor. It highlights the roles and responsibilities
of the actors and demonstrates the relationships between them and the use cases they
interact with.

Fig 4.4 Use-Case Diagram for NLP Based Teaching Assistant

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 17 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

SEQUENCE DIAGRAM

A Sequence Diagram in the Unified Modeling Language (UML) is an interaction


diagram that illustrates the sequence of messages exchanged between various objects
or processes in a system. It shows the order in which these interactions occur, capturing
the dynamic flow of control and data throughout the system.

The main purpose of a sequence diagram is to model the dynamic behavior of a system,
providing a clear view of how objects collaborate over time to accomplish a specific
task or goal. By visualizing the interactions and message flow, the diagram helps
developers understand the system’s execution order and the relationships between
components involved in the process.

Fig 4.5 Sequence Diagram

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 18 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-5
IMPLEMENTATION

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 19 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-5
IMPLEMENTATION
Modules

1.Option Selection Module: The Option Selection module is the initial interaction point
for learners within the Adaptive AI Tutor system. It allows learners to choose from a set of
predefined options, such as selecting a quiz topic, difficulty level, or specific learning
activity. The selected options are then processed by the system to tailor the learning content
accordingly. Key features of this module include:
o Interactive Interface: Utilizes Streamlit to provide a user-friendly dropdown or
button-based selection mechanism for choosing quiz topics or difficulty levels.
o Dynamic Content Loading: Based on the learner’s selection, the system retrieves
relevant content (e.g., questions on binary search trees) using FAISS for semantic
search.
o Personalization Trigger: The selected option informs the Personalization Engine
to adapt the content to the learner’s proficiency and preferences, ensuring a tailored
experience.

2.Answer Evaluation Module: The Answer Evaluation module is responsible for


assessing the learner’s responses to quiz questions or activities. It uses the Mistral-7B-
Instruct model and LangChain to process and evaluate the learner’s input, determining
whether the answer is correct or incorrect. Key Features of this module include:
o NLP-Driven Evaluation: Employs the Mistral-7B-Instruct model to understand
and evaluate natural language responses, supporting both multiple-choice and
open-ended answers.
o Real-Time Feedback: Provides instant feedback on the correctness of the answer,
including detailed explanations to enhance understanding.
o Progress Tracking: Updates the learner’s performance metrics in the Progress
Data store, which are used to adjust the difficulty of subsequent questions.

3.Final Score & Restart Module: The Final Score & Restart module concludes the
learning activity by presenting the learner with their overall performance summary, such as
the final score, number of correct answers, and areas for improvement. It also provides an
option to restart the activity or begin a new one, allowing learners to retry and reinforce

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 20 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

their understanding. Key Features of this module include:


o Performance Summary: Displays the learner’s final score, percentage of correct
answers, and a breakdown of performance across topics (e.g., “Score: 8/10, 80%”).
o Restart Functionality: Offers a “Restart” button to allow learners to retry the same
quiz or activity, promoting iterative learning and mastery.
o Personalized Recommendations: Based on the final score, the system suggests next
steps, such as revisiting weak areas or advancing to a more challenging topic,
ensuring continuous learning progression.

Software Environment

Python Programming Language


Python is chosen as the primary programming language for the system due to its
simplicity, versatility, and strong support in data science and machine learning.
Key Features of Python:
 Interpreted: Python code is executed line by line, providing ease of testing and
debugging. This makes Python ideal for quick development cycles and iterative
testing, crucial in machine learning model development.

 Object-Oriented: Python supports object-oriented programming (OOP), which


helps in structuring the code effectively and promotes code reusability. This is
beneficial for scalable software development, as it enables the use of modular classes
and objects to maintain complex systems.

 Beginner-Friendly: Python's syntax is intuitive and natural, resembling English


language, which makes it ideal for those just starting out in programming. Its
minimalistic approach allows developers to focus on problem- solving rather than
dealing with complex syntax.
Additional Benefits of Python:

 Ease of Use: Python’s clear and readable syntax makes it easy to learn, reducing the

learning curve for beginners and making it easier to maintain code.


 Rich Library: Python comes with an extensive standard library, providing pre-
built for handling tasks such as file handling, data processing, networking, and more.
 Scalability: Its scalability allows it to be used in everything from simple prototypes to
full-fledged enterprise-level applications.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 21 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Streamlit Framework:
Streamlit is an open-source Python framework designed to simplify the creation of interactive,
web-based applications, particularly for data science, machine learning, and educational projects.
It allows developers to build user-friendly interfaces with minimal effort, enabling rapid
prototyping and deployment of applications without requiring extensive knowledge of traditional
web development technologies like HTML, CSS, or JavaScript
Key Features of Streamlit:
1.Rapid Development with Python: Streamlit allows developers to create web applications
entirely in Python, eliminating the need for separate front-end development skills. This means the
team can focus on integrating NLP models (e.g., Mistral-7B-Instruct) and backend logic while
quickly building an interactive interface using Python scripts.

2.Interactive Widgets for User Input: Streamlit provides a variety of built-in widgets, such as
buttons, dropdowns, sliders, text inputs, and radio buttons, to capture user inputs seamlessly. In
the tutor system, these widgets are used in the Option Selection module to let learners choose quiz
topics or difficulty levels, enhancing user engagement through interactive elements.

3.Real-Time Updates: Streamlit apps automatically update in real-time as users interact with the
interface. For example, changing a slider value or selecting an option from a dropdown instantly
refreshes the app to reflect the new input, providing a seamless and responsive user experience.

4.Easy Deployment and Sharing: Streamlit offers straightforward deployment options through
platforms like Streamlit Community Cloud (formerly Streamlit Sharing), Heroku, or AWS.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 22 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-6
RESULTS

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 23 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-6
RESULTS

Fig 6.1: Document Processing System


The image showcases a Document Processing interface designed for uploading and managing
document files in various formats such as PDF, DOCX, and TXT. The system allows users to drag
and drop files into a designated area or use the Browse Files button to manually select documents.
A file size limit of 200MB per file is imposed to ensure efficient processing. In this specific
instance, a file named "combined_text.txt" with a size of 4.5KB has been successfully uploaded.
Users can remove the uploaded file using the provided "X" button. This document processing
feature is likely part of a larger application that enables document storage, retrieval, and analysis,
possibly for AI-driven text processing, chatbots, or information extraction. The interface is clean,
user-friendly, and structured to facilitate smooth document handling.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 24 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

Fig 6.2: Multi-Document Specialist Chat Interface


The image displays a chat-based user interface for a system called "Multi-Document Specialist."
This system is designed to assist users with document-related queries. The interface has a
friendly and engaging tone, as indicated by the greeting message: "Hello! Ask me anything about
your documents 😊." A user has initiated a conversation by sending a message: "Hey! 👋", and
the system responds with a smiling emoji. The layout suggests an AI-powered chatbot or virtual
assistant specializing in multi-document management, possibly offering features such as
document search, summarization, comparison, and information extraction. The modern and
intuitive design ensures a smooth user experience for interacting with documents efficiently.

Fig 6.3: Understanding Random Variables

A random variable is a way to map the outcomes of a random process to numbers, allowing the
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 25 | P a g e
NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

quantification of uncertain events such as flipping a coin or rolling dice by assigning numerical
values to possible outcomes. For example, if we flip a coin, we can define a random variable "X"
as 1 if it lands heads up and 0 if it lands tails up. Similarly, if we roll a die, a random variable "Y"
can represent the sum of the upward faces after rolling seven dice. Unlike traditional variables,
random variables can take different values with varying probabilities, making it more common to
discuss the probability of a random variable equaling a certain value or falling within a range
rather than assigning a fixed value. The chatbot in the image provides this explanation in response
to a user’s query about random variables, ensuring a clear and interactive learning experience.

Fig 6.4: Examples of Random Variables


Random variables are used to quantify outcomes of random processes. In the given conversation, the
chatbot provides examples of random variables based on the context of the discussion. One example is
"Capital X," which is defined as 1 if a fair die rolls heads and 0 if it rolls tails. Another example is
"Capital Y," which represents the sum of the upward faces of 7 dice. For example, the height of a person
is a continuous random variable since it can vary within a range, such as between 5 feet and 6 feet 5
inches. This distinction between discrete and continuous random variables helps in understanding their
applications in probability and statistics.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 26 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-7
SYSTEM TESTING

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 27 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-7
SYSTEM TESTING
Purpose of Testing
The main goal of software testing is to detect issues within the software by methodically
checking its components. Testing ensures that the software operates as intended and
complies with its predefined specifications, confirming the system’s overall functionality.
Key Testing Methodologies:

Unit Testing: Tests individual components or functions of the system in isolation to


ensure they work as intended.

Example:

Verifying that the evaluate_answer() function correctly identifies "All of the above" as
the answer to "What is the purpose of decentralization in India?".

 Test Objective: To confirm that the NLP response parsing function accurately
extracts answers from text inputs for the tutor’s evaluation module.

Functional Testing: Validates that the system’s features perform as intended based on
specified requirements.

Example:

Submitting a quiz answer (e.g., "All of the above" for "What is the purpose of
decentralization in India?") and checking if the tutor provides correct feedback and
updates the score.

 Test Objective: To ensure the quiz evaluation and feedback system correctly
assesses answers and adapts content per the learner’s performance.

Black Box Testing: Examines the system’s functionality without knowledge of its
internal code, focusing on inputs and outputs.

Example:

Entering an ambiguous prompt (e.g., "Tell me about government") and verifying the tutor
responds with a clear, context-aware explanation (e.g., federalism basics).

 Test Objective: To verify that the AI tutor delivers relevant, personalized


responses to user inputs without requiring insight into its NLP or prompt
engineering logic.
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 28 | P a g e
NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

UNIT TESTING
Test Test Description Expected Output Actual Output Status
Case
ID

UT-01 Test the Quiz data with 10 Quiz data with 10 Pass
load_quiz_data() questions and options is questions
function to load loaded into memory successfully loaded
JSON quiz data without errors. into memory.
correctly.

UT-02 Test the Returns "Correct!" for Returns "Correct!" Pass


evaluate_answer() "What is the purpose of for the given question
function with a decentralization in and answer.
correct answer ("All India?" with "All of the
of the above"). above".

UT-03 Test the Returns "Incorrect. The Returns "Incorrect. Pass


generate_feedback() correct answer is 'Central The correct answer is
function for an government can order 'Central government
incorrect answer state government'." can order state
using NLP. government'."

UT-04 Test the Parses "The capital of Successfully parses Pass


parse_user_input() India is Delhi." into a "Delhi" from the
function with a valid answer ("Delhi") input for evaluation.
natural language for Q&A evaluation.
response.

UT-05 Test the Parses "The capital of Successfully parses Pass


parse_user_input() India is Delhi." into a "Delhi" from the
function with a valid answer ("Delhi") input for evaluation.
natural language for Q&A evaluation.
response.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 30| P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

FUNCTIONAL TESTING
Test Test Description Expected Output Actual Output Status
Case
ID

FT-01 Verify that the quiz Displays "Which of the Question and 4 Pass
page displays a following is NOT a options displayed
question and its feature of federalism?" correctly on the quiz
options correctly. with 4 options from page.
JSON data.

FT-02 Test submission of a Submitting "Zilla "Correct!" displayed Pass


correct answer and parishad chairperson" and next question
feedback generation. shows "Correct!" and loaded successfully.
proceeds to the next
question.

FT-03 Test adaptive Next quiz includes a mix Next quiz generated Pass
difficulty adjustment of medium and hard with medium and
after completing a quiz questions based on prior hard questions as
with 80% accuracy. performance. expected.

FT-04 Verify that the final Completing a 10- "Your Score: 70% Pass
score is calculated and question quiz with 7 (7/10)" displayed
displayed after quiz correct answers shows correctly after quiz
completion. "Your Score: 70% completion.
(7/10)".

FT-05 Test the restart Restarting after 60% New quiz generated Pass
functionality to ensure score generates a quiz with focus on local
a new quiz is focusing on weaker government topics.
generated with prior topics (e.g., local
data. government).

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 30| P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

BLACK BOX TESTING


Test Test Description Expected Output Actual Output Status
Case
ID

BB-01 Input a correct answer Submitting "All of the "Correct!" displayed Pass
on the quiz page and above" for "What is the after submitting "All
submit without constitutional status of of the above".
knowing internal logic. local government?"
shows "Correct!".

BB-02 Submit an incorrect Submitting "Lack of Feedback shows Pass


answer and check powers" for "What is "Incorrect. All of the
feedback without code the main challenge above are
insight. facing local challenges."
government?" shows
detailed correction.

BB-03 Start a quiz, complete After scoring 80%, New quiz with Pass
it, and restart to verify restarting shows a new tailored questions
new content quiz with different displayed after
generation. questions tailored to restart.
performance.

BB-04 Submit an empty Submitting nothing for "Please select an Pass


response and check "What is the role of the option" error
error handling from a gram sabha?" shows message displayed.
user view. "Please select an
option."

BB-05 Test the quiz page load Quiz page loads within Page loads in 1.8 Pass
time and question 2 seconds, showing seconds with the
display without "What is the question displayed
technical details. significance of the correctly.
Porto Alegre
experiment?"

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 31 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-8
CONCLUSION AND FUTURE WORK

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 32 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

CHAPTER-8
CONCLUSION AND FUTURE WORK

CONCLUSION
Random variables play a crucial role in probability and statistical analysis by assigning
numerical values to outcomes of random events. They serve as fundamental components
in understanding randomness and variability in real-world scenarios. The discussion
highlights two types of random variables: discrete (having countable values, like the
result of a coin toss or rolling dice) and continuous (having an infinite range of possible
values, like height, temperature, or time measurements).
By providing a structured way to model uncertainty, random variables allow us to make
data-driven decisions, perform risk assessments, and predict future outcomes in various
domains. Their application extends beyond theoretical probability into practical uses,
such as quality control in manufacturing, customer behavior analysis in business, and
medical diagnosis predictions in healthcare. Statistical techniques like expected value,
variance, and probability distributions (e.g., binomial, normal, and Poisson distributions)
further enhance the understanding and utility of random variables in decision-making.

Furthermore, random variables enable computational simulations, such as Monte Carlo


methods, which are widely used in finance, physics, and artificial intelligence to model
complex, unpredictable systems. Their ability to quantify uncertainty makes them
invaluable in designing algorithms for machine learning, optimizing engineering
processes, and improving economic forecasting models. such as voice and image
recognition, to support diverse learning styles, and incorporating reinforcement learning
to enable long-term adaptation based on learner progress. Additionally, expanding the
system to support multiple languages and integrating advanced AI models for broader
subject coverage will further enhance its global accessibility and effectiveness.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 35 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

FUTURE SCOPE

1.Advanced Statistical Applications: The study of random variables can be extended to


complex probability distributions, such as the Gaussian distribution, Poisson
distribution, and exponential distribution, which are widely used in statistical modeling.

2.Machine Learning & AI: Random variables form the foundation for probabilistic
models in AI, including Bayesian networks and deep learning techniques that rely on
uncertainty estimation.

3.Finance & Risk Analysis: Financial markets use random variables to model stock
price fluctuations, risk assessment, and investment strategies based on probabilistic
predictions.

4.Engineering & Scientific Research: Random variables are used in reliability testing,
quality control, and simulations in physics, engineering, and medical sciences.

5.Big Data & Analytics: With the rise of data-driven decision-making, the application of
random variables in big data analytics helps in predictive modeling, anomaly detection,
and optimization problems.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 35 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

REFERENCES

 S. Fincher and M. Petre, Computer science education research. CRC Press, 2004.
 J. J. Randolph, G. Julnes, E. Sutinen, and S. Lehman, “A methodological review of
computer science education research,” Journal of Information Technology Education:
Research, vol. 7, no. 1, pp. 135–162, 2008.
 A. M. Christie, Software process automation: the technology and its adoption.
Springer Science & Business Media, 2012.
 G. Siemens, “Connectivism: Learning as network-creation,” ASTD Learning News,
vol. 10, no. 1, pp. 1–28, 2005.
 G. Siemens, “Connectivism: Learning theory or pastime of the selfamused,” 2006.
 G. Siemens, “Connectivism,” Foundations of Learning and Instructional Design
Technology, 2017.
 S. d. S. Sirisuriya, “A comparative study on web scraping,” 8th International
Research Conference, KDU, p. 135–140, November 2015.
 D. Jurasky and J. H. Martin, “Speech and language processing: An introduction to
natural language processing,” Computational Linguistics and Speech Recognition.
Prentice Hall, New Jersey, 2000.
 K. M. Alhawiti, “Natural language processing and its use in education,” Computer
Science Department, Faculty of Computers and Information technology, Tabuk
University, Tabuk, Saudi Arabia, 2014.
 R. B. Mbah, M. Rege, and B. Misra, “Discovering job market trends with text
analytics,” in 2017 International Conference on Information Technology (ICIT). IEEE,
2017, pp. 137–142.
 M. A. Mardis, J. Ma, F. R. Jones, C. R. Ambavarapu, H. M. Kelleher, L. I. Spears,
and C. R. McClure, “Assessing alignment between information technology educational
opportunities, professional requirements, and industry demands,” Education and
Information Technologies, vol. 23, no. 4, pp. 1547–1584, 2018.
 R. Florea and V. Stray, “Software tester, we want to hire you! an analysis of the
demand for soft skills,” in International Conference on Agile Software Development.
Springer, 2018, pp. 54–67.
 S. Downes, “Learning networks and connective knowledge. Instructional technology
forum: Paper 92,” 2006.

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 35 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

APPENDIX
SOURCE CODE
Launcher Sample Python Code:

App layout,file upload, coordination


# app.py
import streamlit as st
from logic import process_uploaded_files, create_conversational_chain
from ui import initialize_session_state, display_chat_history
from dotenv import load_dotenv

def main():
load_dotenv()
st.title("MultiDoc Chatbot")
initialize_session_state()

st.sidebar.title("Document Processing")
uploaded_files = st.sidebar.file_uploader("Upload files", accept_multiple_files=True)

if uploaded_files:
# 1. Extract and chunk text
text_chunks = process_uploaded_files(uploaded_files)

# 2. Create LLM-based chain


chain = create_conversational_chain(text_chunks)

# 3. Display chat UI
display_chat_history(chain)

if __name__ == "__main__":
main()
Handles document parsing, embedding and building the conversational chain:

import os, tempfile


from langchain.document_loaders import PyPDFLoader, TextLoader, Docx2txtLoader
from langchain.text_splitter import CharacterTextSplitter
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 36 | P a g e
NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

from langchain.embeddings import HuggingFaceEmbeddings


from langchain.vectorstores import FAISS
from langchain.llms import Replicate
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationalRetrievalChain
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

def process_uploaded_files(uploaded_files):
documents = []
for file in uploaded_files:
extension = os.path.splitext(file.name)[1]
with tempfile.NamedTemporaryFile(delete=False) as temp:
temp.write(file.read())
path = temp.name

loader = {
".pdf": PyPDFLoader,
".docx": Docx2txtLoader,
".doc": Docx2txtLoader,
".txt": TextLoader
}.get(extension)

if loader:
documents.extend(loader(path).load())
os.remove(path)

# Split text into chunks


splitter = CharacterTextSplitter(separator="\n", chunk_size=1000, chunk_overlap=100,
length_function=len)
return splitter.split_documents(documents)

def create_conversational_chain(text_chunks):
embeddings = HuggingFaceEmbeddings(

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 37 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

model_name="sentence-transformers/all-MiniLM-L6-v2",
model_kwargs={'device': 'cpu'}
)
vector_store = FAISS.from_documents(text_chunks, embedding=embeddings)

llm = Replicate(
streaming=True,
model="replicate/llama-2-70b-
chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781",
callbacks=[StreamingStdOutCallbackHandler()],
input={"temperature": 0.01, "max_length": 500, "top_p": 1}
)

memory = ConversationBufferMemory(memory_key="chat_history",
return_messages=True)

return ConversationalRetrievalChain.from_llm(
llm=llm,
chain_type='stuff',
retriever=vector_store.as_retriever(search_kwargs={"k": 2}),
memory=memory
)

Handles the chatbot UI and session memory management:

import streamlit as st
from streamlit_chat import message
from chat import conversation_chat

def initialize_session_state():
if 'history' not in st.session_state:
st.session_state['history'] = []
if 'generated' not in st.session_state:
st.session_state['generated'] = ["Hello! Ask me anything about your lecture 🤗"]

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 38 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

if 'past' not in st.session_state:


st.session_state['past'] = ["Hey! 🤗"]

def display_chat_history(chain):
with st.form(key='my_form', clear_on_submit=True):
user_input = st.text_input("Question:", placeholder="Ask about your Documents",
key='input')
submit_button = st.form_submit_button(label='Send')

if submit_button and user_input:


with st.spinner('Generating response...'):
output = conversation_chat(user_input, chain, st.session_state['history'])
st.session_state['past'].append(user_input)
st.session_state['generated'].append(output)

for i in range(len(st.session_state['generated'])):
message(st.session_state["past"][i], is_user=True, key=str(i) + '_user',
avatar_style="thumbs")
message(st.session_state["generated"][i], key=str(i), avatar_style="fun-emoji")

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 39 | P a g e


NLP - DRIVEN VIRTUAL EDUCATOR FOR SMART TEACHING

PAPER PUBLICATION

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 40 | P a g e

You might also like