AIKO

    Welcome to AIKO. This project is an academic project undertaken as part of our Bachelor of Technology graduation course. AIKO is a proof-of-concept for now. You are welcome to use it and give us your thoughts. We make no guarantees on uptime since this is not a paid offering. You can help us out by filling in the survey link given below.

    Take the survey
External Links
Documentation

CHANGELOG

2025-03-16

  • Changed Landing Page Design + BG
  • Updated Extension popup.ts, partially
  • updated modal with a longer timeout
  • added an extension page, that provides details on the extension authentication procedure
  • removed the weird unpkg polyfill, it seems to not work atm
  • updates to documentation build pipeline

2025-03-01

  • Moved to asia-southeast-1 datacenter for backend processing.

2025-02-25

  • Updated backend to support VLM-based ingestion.
  • Updated all models to their latest counterparts and removed older, deprecated models. The previous count of models were `24` now there are `12`.
  • Switched default model to be Anthropic Claude 3.7 Sonnet. Yay!
  • Backend now uses `uv` for python version management as well as package management.
  • mistral-image now can use both pixtral models.
  • AIKO now has its own embedding backend endpoint with Alibaba-NLP/gte-Qwen2-7B-instruct as the model.
  • Transitioned all embeddings to the new model, and changed all code references to point to the new index. (There is a migration script too)

2025-02-18

  • Added content scripts to parse from YouTube and created a small vite plugin to handle manifest.
  • Content Extraction testing was done on Chrome. It was found to satisfactorily extract the data. Backend requires some more work on the extraction of captions from the page.
  • Extension Authentication is being worked on. Ideally, the extension authentication is done on the Add Files page.

2025-02-17

  • Updated extension (yes we have one) to the latest dependencies. Added tailwindcss, @mozilla/readability and setup the manifest and background script.
  • Setup toasts, injection, and extraction into the webpage.

Thoughts from Dev:I probably need to make the notification thingy a part of the IIFE, there are conflicts with reinserting the script multiple times.

2025-02-13

  • Transitioned to BackgroundTasks for processing the file rather than keeping an HTTP connection open. (The UX on the frontend is still pending, a rudimentary UI is available.)
  • Fixed regression in database.py, relating to `UPDATE without WHERE clause`
  • Updated and locked requirements.txt for the backend.
  • Fixed a mistake with additional fields (metadata) being disallowed with vendor APIs in the plugins.
  • Disabled Fetch Text Content due to changes in vectorDB API.
  • More Info on BackgroundTasks: BackgroundTasks are basically, running a message queue + processing system but it can share variables and runtime with the main app. In doing so, we can simply read out the file contents, pass that into the background task, create the DB entries, upload the file and then return the success response. The background task will then process the file and update the DB entries accordingly. Turns out, us sending the file content only, allows the function to be used as is, for even externally extracted text files, such as YouTube captions, a website's text and what not. A simple endpoint can be used to ingest the text and then send it accordingly for processing. The biggest downside to this is the lack of error handling, ie when a file fails the processing, the user will not be notified nor will it be identified. A database schema update might be in order soon.

2025-02-10

  • Moved the system prompt behind a collapsible container.
  • Added Model and Chat Settings (FE-only for some settings, BE requires a minor rewrite for the various settings, maybe the plugins too.)
  • Setup reasonable defaults for the various parameters that can be adjusted.
  • removed `/chat/[id]` in favour of a single page where modes can be changed. Modified the links to the chat page from the rest of the application accordingly.
  • Fixed a simple regression in `src-backend/main.py` relating to the changes in the format.
  • Updated the Chat Card structure and design to better look like a "chat" application.

2025-02-07

  • Redesigned part of the chat page, moving the model selector into it.
  • Added a better system prompt, updated the message card such that it displays the text better.

2025-02-06

  • Removed pages for /app/search and /app/results, re-implementing their functionalities into the Dashboard instead
  • Cleaned up the docs theme to be better inline with the main application.
  • Added changelog to keep track of changes a/c to proper dates.
  • Set the path for the User Manual to be /manual (previously /docs)
  • Added a navigating status indicator, to improve UX.
  • /app/download/[id] now redirects the user back to their original page, while opening the signedURL in a new tab, automatically.