Naarad is a curious, AI assistant that helps you with tasks, answers questions, and understands images. Built with FastAPI, LangChain, and modern AI models.
- Chat Interface: Natural conversations with a friendly AI companion
- Multimodal Inputs: Support for both text and images
- Web Search: Real-time information retrieval using Brave Search API
- Image Understanding: Analyze and describe images using LLaVA
- Modular Architecture: Easy to extend with new tools and capabilities
- Backend: FastAPI (Python)
- AI/ML: LangChain, OpenRouter, Together.ai
- Frontend: React.js with Tailwind CSS
- Search: Brave Search API
- Storage: Supabase (optional)
naarad/
├── backend/ # FastAPI backend
│ ├── agent/ # LangChain agent and tools
│ ├── llm/ # LLM configurations
│ ├── routers/ # API routes
│ ├── tools/ # Custom tools (search, vision, etc.)
│ ├── main.py # FastAPI application
│ └── requirements.txt # Python dependencies
└── frontend/ # React frontend (coming soon)
├── public/
└── src/
- Python 3.9+
- Node.js 16+ (for frontend)
- API keys for OpenRouter, Together.ai, and Brave Search
-
Clone the repository:
git clone <repository-url> cd naarad
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
cd backend pip install -r requirements.txt
-
Create a
.env
file:cp .env.example .env
Then edit
.env
and add your API keys. -
Run the backend server:
uvicorn main:app --reload
-
The API will be available at
http://localhost:8000
- API Docs:
http://localhost:8000/docs
- Redoc:
http://localhost:8000/redoc
- API Docs:
cd frontend
npm install
npm start
GET /
- Health check and API infoPOST /api/chat
- Chat with NaaradGET /api/health
- Service health check
Send a POST request to /api/chat
with the following JSON body:
{
"message": "Tell me about cats",
"images": [],
"conversation_id": "optional-conversation-id",
"chat_history": []
}
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with ❤️ using FastAPI, LangChain, and OpenRouter
- Thanks to all the open-source projects that made this possible