DEV Community

InterSystems Developer for InterSystems

Posted on β€’ Originally published at community.intersystems.com

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.

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Introducing RTABench

To meet the need for real-time analytics workloads, we developed RTABench, a benchmark designed to test databases with these specific requirements. RTABench focuses on essential query patterns such as joins, filtering, and pre-aggregations.