Article
· Nov 11 3m read

EduVerse: Accessible Learning Assistant

🌍 Inclusion & Innovation in Education 🌍
Our project reimagines learning for all students, with a focus on accessibility and interactive experiences. Built with the goal of making education engaging and inclusive, the tool is designed to support students of all abilities in learning complex material in an intuitive way.

💡 What It Does
This educational app transforms lesson presentations into interactive study sessions:

  • Transform Presentations: With Optical Character Recognition (OCR) technology, the app scans and converts presentation slides into digital text and vector data, creating accessible content from standard slideshows.
  • AI Conversations: Our app brings presentations to life with an AI chat assistant, allowing users to ask questions about any topic covered in the slides. The AI utilizes Natural Language Processing (NLP) and LangChain for intelligent, context-aware responses.
  • Retro-Style Quizzes: After each session, users can test their knowledge with auto-generated, retro-style quizzes that make learning fun and reinforce their understanding.

🔧 How It’s Built
We combined powerful technologies to create a responsive and accessible app:

  • Frontend: Developed in Next.js for a responsive and user-friendly interface.
  • Data Storage: We use InterSystems IRIS Vector Database to store and efficiently retrieve vectorized presentation content.
  • AI & NLP: A Language Learning Model (LLM) is integrated with LangChain, making conversations meaningful by referencing both user input and the vectorized presentation data.
  • Backend: FastAPI backend for secure, scalable performance.
  • Quiz Generation: NLP algorithms create dynamic, interactive quizzes that personalize learning with every session.

This tool represents a step forward in making education inclusive, engaging, and accessible for everyone.

Integrating InterSystems IRIS Vector Search: A Practical Guide

InterSystems IRIS Vector Search is a powerful tool for developers building applications with advanced vector search capabilities. By leveraging IRIS Vector Search with FastAPI, we can create a robust document processing and querying system. This article will walk you through integrating IRIS Vector Search into a FastAPI project and setting it up on your local machine, highlighting key features for intelligent document analysis.

Setting Up IRIS Locally

  1. Clone the Repository:

git clone https://github.com/intersystems-community/iris-vector-search.git

  1. Start the Docker containers (one for IRIS, one for Jupyter):

docker-compose up

 

Integration with FastAPI

Our project uses IRIS Vector Search to handle document processing and similarity-based queries, allowing for efficient storage and search across large volumes of text data. Here's how we integrated IRIS Vector Search into FastAPI.

Step 1: Initialization

First, install the required package:

pip install langchain-iris

Now we initialize our vector store using the IRISVector class from the langchain_iris module:

from langchain_iris import IRISVector

vector_store = IRISVector.from_documents(

    embedding=embeddings,

    documents=docs,

    collection_name=COLLECTION_NAME,

    connection_string=IRIS_CONNECTION_STRING

)

This code snippet creates a vector store from the provided documents using embeddings, storing the results in IRIS for fast and efficient querying.

 

Step 2: Document Processing

When a user uploads a PDF, the application processes the document by extracting text and splitting it into chunks. These chunks are then added to the IRIS vector store:

docs = text_splitter.split_documents(docs)

initialize_vector_store(docs)

By breaking down each document into smaller segments, we ensure that each chunk is indexed and stored, improving the accuracy of similarity-based searches.

 

Step 3: Querying Documents

Once our documents are processed and stored, we can use the vector store for similarity searches:

docs_with_score = vector_store.similarity_search_with_score(query, k=3)

This command returns the top three most relevant documents based on the query, each with an associated relevance score.

Discussion (0)1
Log in or sign up to continue