Languages: English | 한국어 | 日本語 | 中文
A modern web application for semantic search and document management using Google's Gemini API File Search feature.
-
File Management
- Upload files to temporary storage (Files API)
- Create and manage FileSearchStores for persistent document storage
- Upload files directly to FileSearchStores
- Import files from temporary storage to FileSearchStores
- Preview and delete files
-
Document Management
- View documents in FileSearchStore
- Track document processing status (active, pending, failed)
- Monitor storage usage per store
-
Semantic Search
- Natural language search across stored documents
- Multiple FileStore selection
- Real-time search results with citations
-
Modern UI
- Responsive design for desktop, tablet, and mobile
- Intuitive tab-based navigation
- Drag-and-drop file upload
- Real-time status updates
- Backend: Python Flask with Gemini API integration
- Frontend: HTML5, CSS3, Vanilla JavaScript
- API: Google Gemini File Search API
- SDK: google-genai
- Python 3.8+
- Google Cloud Project with Gemini API enabled
- Gemini API Key
-
Clone the repository
git clone <repository-url> cd gemini-filesearch-ui
-
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Configure environment
cp .env.example .env # Edit .env and add your GEMINI_API_KEY -
Run the application
python main.py
The application will be available at
http://localhost:5001
- Go to "File Upload" tab
- Drag and drop files or click to select
- Files are uploaded to temporary storage (48-hour retention)
- Go to "FileStore" tab
- Enter store name and click "Create"
- Store is created for persistent document storage
- Go to "Chat Search" tab
- Select FileStore(s) to search
- Enter your question
- View results with document citations
GET /api/stores- List all FileSearchStoresPOST /api/stores/create- Create new FileSearchStoreGET /api/files- List uploaded filesPOST /api/files/upload- Upload filePOST /api/stores/upload- Upload directly to FileStorePOST /api/files/import- Import file to FileStorePOST /api/search- Search documents
GEMINI_API_KEY=your-api-key-here
FLASK_DEBUG=False- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
This project is licensed under the MIT License



