Skip to content

dimastriann/ai-workspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 AI Workspace β€” Fullstack AI System with RAG & Agents

πŸ“Œ Overview

AI Workspace is a fullstack application that combines conversational AI, document understanding, and autonomous task execution into a single platform. It allows users to chat with AI, upload and query documents, and run intelligent agents to automate workflows.

This project is designed to demonstrate production-level engineering skills using modern AI tooling, scalable backend architecture, and high-performance components.

🎯 Goals

  • Build a production-ready AI system, not just a demo
  • Showcase fullstack engineering skills
  • Implement Retrieval-Augmented Generation (RAG)
  • Design agent-based workflows with tool usage
  • Integrate high-performance components (Rust)
  • Deploy a scalable, real-world application

🧩 Core Features

πŸ’¬ AI Chat

  • Streaming responses (real-time token rendering)
  • Context-aware conversations (memory)
  • Multi-session chat history

πŸ“š Document Intelligence (RAG)

  • Upload PDFs, Markdown, CSV, and code
  • Semantic search over documents
  • Source-grounded answers

πŸ€– Agent Mode

  • Multi-step task execution
  • Tool usage (search, calculation, APIs)
  • Example tasks:
  • Summarize documents
  • Research topics
  • Generate structured outputs

πŸ—‚ Workspace System

  • Project-based organization
  • Isolated knowledge bases per workspace

πŸ— Architecture

               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚        Frontend            β”‚
               β”‚        (Nuxt 3)            β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚ HTTP / WS
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚     API Layer (Nuxt)       β”‚
               β”‚  (Server Routes / BFF)     β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                           β”‚
               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
               β”‚        Backend         β”‚
               β”‚       (FastAPI)        β”‚
               β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
               β”‚           β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”  β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚ LangChain  β”‚  β”‚  Task Queue   β”‚
       β”‚ Pipelines  β”‚  β”‚  (Workers)    β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚              β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
       β”‚       Vector Database       β”‚
       β”‚   (FAISS / Pinecone)        β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚   Rust Microservice         β”‚
       β”‚ (Parsing / Chunking /       β”‚
       β”‚  Embedding Preprocess)      β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


🧰 Tech Stack

Frontend (Vue Ecosystem)

  • Vue 3
  • Nuxt 3 (SSR + server routes)
  • TypeScript
  • TailwindCSS
  • Pinia (state management)

Backend

  • Python (FastAPI)
  • LangChain (LLM orchestration)
  • Pydantic (data validation)

AI / Data

  • OpenAI API or local LLMs
  • Embeddings (OpenAI / Sentence Transformers)
  • Vector DB: FAISS / Pinecone / Weaviate

Systems

  • PostgreSQL (metadata storage)
  • Redis (caching + queues)
  • Celery / RQ (background jobs)

Performance Layer

  • Rust microservice
  • Fast document parsing
  • Chunking optimization
  • Preprocessing pipelines

DevOps

  • Docker & Docker Compose
  • Vercel / Node hosting (Nuxt)
  • AWS / GCP (backend)
  • Nginx (optional reverse proxy)

πŸ“ Project Structure

ai-workspace/
β”‚
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ web/                 # Nuxt 3 frontend + server routes (BFF)
β”‚   └── api/                 # FastAPI backend
β”‚
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ rag/                 # RAG pipelines
β”‚   β”œβ”€β”€ agents/              # Agent orchestration
β”‚   β”œβ”€β”€ ingestion/           # File processing
β”‚   └── tools/               # External integrations
β”‚
β”œβ”€β”€ rust/
β”‚   └── parser/              # Rust microservice
β”‚
β”œβ”€β”€ infrastructure/
β”‚   β”œβ”€β”€ docker/
β”‚   └── terraform/           # (optional)
β”‚
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ seed_data.py
β”‚   └── evals.py
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ architecture.md
β”‚   └── api.md
β”‚
β”œβ”€β”€ .env.example
β”œβ”€β”€ docker-compose.yml
└── README.md

βš™οΈ Development Setup

1. Clone Repository

git clone https://github.com/dimastriann/ai-workspace.git
cd ai-workspace

2. Environment Variables

cp .env.example .env
OPENAI_API_KEY=
DATABASE_URL=
REDIS_URL=

3. Run with Docker (Recommended)

docker-compose up --build

4. Manual Setup

Frontend (Nuxt)

cd apps/web
npm install
npm run dev

Backend (FastAPI)

cd apps/api
pip install -r requirements.txt
uvicorn main:app --reload

Rust Service

cd rust/parser
cargo run

πŸ”„ Key Workflows

πŸ“₯ Document Ingestion

  1. Upload file (via Nuxt frontend)
  2. Send to FastAPI backend
  3. Parse using Rust service
  4. Chunk text
  5. Generate embeddings
  6. Store in vector DB

πŸ” Query (RAG)

  1. User sends query
  2. Nuxt server route (BFF) forwards request
  3. Backend embeds query
  4. Retrieve relevant chunks
  5. Pass context to LLM
  6. Stream response back to UI

πŸ€– Agent Execution

  1. User submits task
  2. Backend agent plans steps
  3. Selects tools dynamically
  4. Executes multi-step workflow
  5. Streams result to frontend

🌐 Nuxt Server (BFF Layer)

Nuxt acts as a Backend-for-Frontend (BFF) layer:

  • Handles API proxying
  • Manages auth (future)
  • Streams LLM responses
  • Reduces direct exposure of backend services Example structure:
apps/web/server/api/
β”œβ”€β”€ chat.ts
β”œβ”€β”€ rag.ts
└── agent.ts

πŸš€ Deployment

Frontend (Nuxt)

  • Deploy on Vercel or Node hosting
npm run build
npm run start

Backend (FastAPI)

docker build -t ai-workspace-api .

Deploy to:

  • AWS ECS / EC2
  • GCP Cloud Run

Database & Cache

  • PostgreSQL (RDS / Supabase)
  • Redis (Upstash / Elasticache)

Environment Setup

  • Use secrets manager
  • Never commit .env

πŸ“Š Observability (Recommended)

  • Logging: structured logs
  • Monitoring: Prometheus / Grafana
  • Error tracking: Sentry

πŸ§ͺ Testing

Frontend

npm run test

Backend

pytest

πŸ” Security Considerations

  • API rate limiting
  • Input validation
  • Secure file uploads
  • Auth (JWT / OAuth planned)

🧭 Roadmap

Phase 1

  • Chat + RAG MVP
  • Basic UI (Nuxt)
  • File upload

Phase 2

  • Agent workflows
  • Background jobs
  • Streaming improvements

Phase 3

  • Multi-user support
  • Collaboration features
  • Analytics dashboard

πŸ’‘ Future Improvements

  • Plugin system for tools
  • Fine-tuned models
  • Evaluation framework
  • Multi-modal support (image/audio)

πŸ“£ Portfolio Positioning

This project demonstrates:

  • Fullstack system design (Vue + Python + Rust)
  • LLM application architecture
  • BFF pattern using Nuxt
  • Performance optimization with Rust
  • Real-world AI product thinking

πŸ“„ License

MIT License

πŸ™Œ Acknowledgements

  • LangChain ecosystem
  • OpenAI APIs
  • Open-source vector databases

πŸ“¬ Contact

Email: dimastriannugraha@gmail.com

GitHub: https://github.com/dimastriann


About

AI Workspace is a fullstack application that combines conversational AI, document understanding, and autonomous task execution into a single platform

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors