Second language acquisition (SLA) is a complex process influenced by several factors, including motivation, learning environment, and practice opportunities. Traditional SLA methods often lack sufficient opportunities for interactive conversation practice, which is crucial for fluency development.
TEACHme aims to address these challenges by providing accessible and cost-effective conversational practice opportunities. The system will utilize Large Language Models (LLMs) embedded in embodied agents to facilitate language learning, specifically targeting Italian native speakers learning English.
Name | Github profiles | |
---|---|---|
Andrea Federici | andrea3.federici@mail.polimi.it | |
Alireza Yahyanejad | alireza.yahyanejad@mail.polimi.it | |
Mahdi Valadan | mohammadmahdi.valadan@mail.polimi.it | |
Paolo Pertino | paolo.pertino@mail.polimi.it | |
Pietro Moroni | pietroguglielmo.moroni@mail.polimi.it |
Client
Server
Database
Misc
Teachers have the following functionalities:
- Register/login to the platform
- Create conversation rooms and invite students to join them.
- Customize the register, topic, time limits of the activity, and level of difficulty of conversation agents to ensure they are tailored to the students' needs.
- Track their students' activities and visualize the conversations they are engaging with on the platform.
Students have the following functionalities:
- Register/login to the platform
- Join conversation rooms created by teachers and assigned to them.
- Engage in conversations with the conversational agents.
- Receive feedback on their performance during a specific conversation.
- Visualize their conversation history.
To run this project, you will need to add the following environment variables to your .env
file inside the backend folder:
OPENAI_API_KEY=<YOUR OPENAI API KEY>
MONGODB_URI=<YOUR MONGODB ATLAS URI>
For running the frontend you will need to add the following environment variables to your .env.local
file inside the ui folder:
NEXT_PUBLIC_SPEECH_KEY=<YOUR AZURE TTS API KEY>
NEXT_PUBLIC_SPEECH_REGION='westeurope'
NEXT_PUBLIC_BACKEND_URL_BASE=<URL FOR THE BACKEND>
To install the project using Docker
, you must have Docker installed on your machine. You can find the installation instructions here. Additionally, you need to install docker-compose
to run the project. You can find the installation instructions here.
Once Docker and docker-compose are set up, follow the instructions in the wiki of the project to install the project using Docker.
This project runs on a Node.js environment. Make sure you have Node.js installed on your machine. You can install it from here.
Moreover, it uses npm
as package manager. The application is built using Next.js
. If you don't have npm
installed, you can install it from here. If you don't have Next.js
installed, you can follow the installation instructions here.
Regarding the backend, it is built using Python 3
. You can install it from here. It uses pip
packet manager. You can install it following the guide here.
The full installation guide can be found in the wiki of the project.
Frontend installation | Backend installation | Docker installation |
---|---|---|
Find the instructions to run the project locally in the wiki of the project. |
The deployment of the project is not yet available.
Feature name | Description | Status |
---|---|---|
Registration and Login | Users, students and teachers, must sign up and log into the platform to use it | ✅ |
Teacher conversation creation | Teachers can create conversations specifying topic, difficulty, and length | ✅ |
Student and teacher dashboard | Students and teachers have a dashboard containing the conversations they created/have been assigned respectively | ✅ |
Speech-to-text | Speech-to-text functionality to transcribe the user's speech during the conversation | ✅ |
Conversational Agent | LLM implementation for handling the conversation between students and conversational partner | ✅ |
Text-to-speech | Text-to-speech functionality for allowing the conversational partner to speak | ✅ |
Viseme for facial position | The artificial agent must look like an avatar and make reasonable mouth movements while talking according to visemes | ✅ |
Post-conversation feedback | Once a conversation has ended, the platform must provide feedback to students regarding the conversation itself | ✅ |
Post-conversation challenges | The platform must provide additional challenges (synonyms, pronunciation, ...) to students once the conversation ends | ✅ |
Pilot-test | Test the system and its functionalities with external people | ✅ |
Final report | Write the final report of the project | ✅ |
Deployment | Deploy the platform on a cloud service | ❌ |
Which language models are used in the project?
- We leverage OpenAI's GPT-3.5 model for generating conversational responses. feedbacks and challenges. The chatbot structure has been defined using the Langchain library so that other solutions can be easily integrated over the existing one in the future.
Why are the endpoints in the backend not properly secured?
- The project is a prototype and the focus was on the conversational agent and the interaction with the user. The backend is a simple Flask server that serves the front end and handles the conversation with the OpenAI API and other conversation-related features. For a production-ready version, a more secure authentication system should be implemented to handle correctly both the user data and the privileges to perform certain requests.
Code | Wiki | Report |
---|---|---|
You can contact us by email. You can find all the information regarding our contacts in the 👥 Team Members section.
Project Link: https://github.com/itsPeetah/polimi-mdproject-2024-teachme
All the animated icons used in this repository are provided by Lordicon.com.