iec

Repository for the article in the online magazine Level Up Coding

https://github.com/stefanpietrusky/iec

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary

Keywords

beautifulsoup chatbot flask-application llama ollama python tiktoken
Last synced: 6 months ago · JSON representation ·

Repository

Repository for the article in the online magazine Level Up Coding

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
beautifulsoup chatbot flask-application llama ollama python tiktoken
Created 12 months ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

IEC V2 APP

Individual Educational Chatbot

This repository, developed by Stefan Pietrusky, is based on the article published at [1]. In this article, I describe the functionality of an enhanced version (V1.5) of the IEC application. The first version has already been tested and provided important results for improvement.

The function of controlling the response level of the model used by clicking a button was very well received by the test subjects [2]. In the extended application, the Gradio framework is no longer used, but the interface is implemented with HTML, CSS and JS. The level prompts have been optimized. The extraction of content has also been optimized. This is an open source project for educational and research purposes.

Unlike IEC V1.5, which only extracted text from URLs and PDFs and answered questions to the LLM via a simple CLI call, IEC V2 forms a fully-fledged RAG pipeline: Extracted content is divided into token chunks, semantically vectorized using Ollama embeddings, and stored in a persistent FAISS index to find only truly relevant text passages per query. The frontend now offers a selection of models and skill levels, checkbox lists for multiple sources, and dynamic content and chat overviews, while on the server side, edge-tts generates high-quality MP3s and integrates them directly into the chat with play/pause buttons. The answers are created promptly for each source, formatted with references, and merged into a consolidated overall answer, and every conversation, including timestamps, files used, and audio files, is logged completely in JSON logs.

IEC Structure

The structure of the current [V2] IEC app is shown below. ICE V2 Structure (SVG created with Mermaid

IEC working principle

Below is a short GIF showing the structure and function of the app.

ICE V1.5 (Gif by author

IEC availability

The code to run the app is already in the repository.To make the app available via the Internet and not be restricted to the local network, a tunnel tool such as ngrok must be used! Your own computer becomes the server.

Making IEC available via the Internet (Image by author)

Alternatively, modern Platform-as-a-Service solutions such as Railway can be used to publish the app quickly and easily.

Installing and running the application

  1. Clone this repository on your local computer: bash git clone https://github.com/stefanpietrusky/iecv.git
  2. Install the required dependencies: bash pip install -r requirements.txt
  3. Install Ollama and load the default model Llama3.2 (3B). Alternatively, another model can be used. bash ollama pull llama3.2
  4. Install the embedding model: bash ollama pull nomic-embed-text
  5. Install Python 3.10.11.
  6. Adjust the Edge TTS voice as needed.

  7. Start the IEC app: bash python app.py

    References

    [1] Pietrusky, S. (2025). Individual learning support made easy. IEC V1.5: Individual Educational Chatbot. A tool for individual exchange with PDF files and websites. Level Up Coding.

[2] Pietrusky, S. (2024). Promoting AI Literacy in Higher Education: Evaluating the IEC-V1 Chatbot for Personalized Learning and Educational Equity. ARXIV CS.CY

Owner

  • Login: stefanpietrusky
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you cite this repository, please use the following reference.."
title: "INDIVIDUAL EDUCATIONAL CHATBOT (IEC) V2"
authors:
  - family-names: "Pietrusky"
    given-names: "Stefan"
    orcid: "https://orcid.org/0009-0008-9739-5542"
version: "1.0.0"
date-released: "2025-07-25"

GitHub Events

Total
  • Push event: 8
Last Year
  • Push event: 8

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 26
  • Total Committers: 1
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 26
  • Committers: 1
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
stefanpietrusky 1****y 26

Issues and Pull Requests

Last synced: 7 months ago


Dependencies

requirements.txt pypi
  • Flask *
  • beautifulsoup4 *
  • pymupdf *
  • readability-lxml *
  • requests *
  • tiktoken *