JoaLink AI Labs

Case studies

Four small systems that demonstrate practical AI integration, transparent product decisions and a clear path from demo to stronger engineering.

Retrieval augmented generation

Document Assistant

Open demo

Problem: Let a visitor ask focused questions about a PDF without manually searching every page.

Architecture

  • PDF upload and text extraction with PyMuPDF.
  • Chunking with LangChain text splitters.
  • OpenAI embeddings stored in a Pinecone vector index.
  • Semantic retrieval followed by an OpenAI answer using retrieved context.

Engineering decisions

  • A BFF route in Next.js keeps the browser isolated from backend service URLs.
  • Pinecone is used for semantic retrieval so the full document is not sent on every question.
  • The interface explains the retrieval flow and keeps the session resettable for a public demo.

Next: Temporary anonymous session isolation, multiple files, re-ranking, bounded memory and a RAG evaluation harness.

Audio intelligence

Meeting Summarizer

Open demo

Problem: Turn a recording into a concise, actionable view of the conversation.

Architecture

  • Audio extraction and conversion with FFmpeg.
  • Speech-to-text transcription through AssemblyAI.
  • OpenAI analysis to produce a summary, decisions, tasks, topics and sentiment.
  • A responsive UI that exposes processing progress and the resulting insights.

Engineering decisions

  • Specialized transcription is delegated to AssemblyAI instead of using a general LLM for audio.
  • The interface separates the transcript-derived categories to make the output easier to scan.
  • The public demo asks visitors to use non-sensitive recordings and provides recoverable failure states.

Next: Schema-validated insight output, richer task ownership, deterministic test fixtures and sample recordings.

Computer vision

Receipt Detection

Open demo

Problem: Make an object-detection result understandable by connecting image regions to confidence scores.

Architecture

  • PNG or JPEG upload from the browser through the Next.js BFF.
  • Image normalization before forwarding to the receipt detection service.
  • Bounding boxes rendered over the original receipt preview.
  • A separate history endpoint and table for persisted records when available.

Engineering decisions

  • The overlay preserves visual traceability instead of showing only raw detection JSON.
  • Object URLs are revoked when a preview is replaced or the demo resets.
  • The table makes empty, loading and failed history states explicit.

Next: Persist new predictions, extract normalized merchant and line-item data, then add monthly analytics and charts.

Predictive API

House Energy Consumption

Open demo

Problem: Explore how household and seasonal inputs affect a daily energy-consumption estimate.

Architecture

  • Typed input form for household size, temperature, AC use, peak usage, month and weekday.
  • Next.js request validation before forwarding the scenario to FastAPI.
  • FastAPI schema validation and a dedicated external prediction service.
  • An explicit result state that frames the output as an estimate rather than a utility bill.

Engineering decisions

  • A prefilled example makes the model interaction immediately testable without hidden data.
  • The result page distinguishes an illustrative prediction from an operational energy reading.
  • The API boundary keeps the frontend independent from the prediction provider.

Next: Cost estimation, scenario comparison, monthly projection, trends, energy-saving guidance and IoT telemetry experiments.