Skip to content

Mahd-Mehn/MM-ask-racha

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ask Racha

A web application that provides an AI-powered interface to interact with Storacha's documentation. The application uses advanced language models and RAG (Retrieval-Augmented Generation) to provide accurate and contextual responses.

Features

  • Interactive chat interface
  • Integration with Google's Gemini AI model
  • Web-based documentation retrieval
  • Real-time response generation
  • Modern UI built with Next.js and Tailwind CSS

Tech Stack

Frontend

  • Next.js 15.3.3
  • React 19
  • TypeScript
  • Tailwind CSS
  • Lucide React (for icons)

Backend

  • Python Flask
  • LlamaIndex
  • Google Gemini AI
  • BeautifulSoup4 (for web scraping)

Prerequisites

  • Node.js (Latest LTS version)
  • Python 3.8+
  • Gemini API key

Installation

  1. Clone the repository:
git clone https://github.com/Dhruv-Varshney-developer/ask-racha.git
cd ask-racha
  1. Install frontend dependencies:
cd askracha
npm install
  1. Install backend dependencies:
cd backend
pip install -r requirements.txt
  1. Set up environment variables:

For the frontend:

cd askracha
cp .env.example .env

For the backend:

cd askracha/backend
cp .env.example .env

Then edit both .env files and add your Gemini API key:

GEMINI_API_KEY=your_api_key_here

Vector Store Setup

Local Development

  1. Make sure Docker is installed and running
  2. Start Qdrant:
cd askracha/backend/storage
docker compose up -d
  1. Verify the setup:
cd askracha/backend
python -m unittest storage/tests/test_vector_store.py -v

Environment Variables

For local development:

  • No additional env vars needed, uses Qdrant Local by default
  • Qdrant runs on port 6343 (configurable via QDRANT_PORT)

For production:

QDRANT_HOST=your_qdrant_host
QDRANT_PORT=6333
QDRANT_API_KEY=your_api_key

Running the Application

Development Mode

To run both frontend and backend concurrently:

npm run dev:full

Or run them separately:

Frontend:

npm run dev

Backend:

npm run backend

Production Build

  1. Build the frontend:
npm run build
  1. Start the production server:
npm run start

Available Scripts

  • npm run dev - Start the Next.js development server with Turbopack
  • npm run build - Build the application for production
  • npm run start - Start the production server
  • npm run lint - Run ESLint for code linting
  • npm run backend - Start the Python backend server
  • npm run dev:full - Run both frontend and backend concurrently

Project Structure

askracha/
├── backend/           # Python Flask backend
│   ├── app.py        # Main Flask application
│   ├── rag.py        # RAG implementation
│   └── requirements.txt
├── src/              # Frontend source code
├── public/           # Static assets
└── package.json      # Frontend dependencies and scripts

License

This project is licensed under the terms of the license included in the repository.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

About

Agent trained on storacha docs and github repo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 69.1%
  • TypeScript 27.4%
  • CSS 2.7%
  • Other 0.8%