Synth AI is an advanced AI-powered web application designed to analyze, summarize, and extract key information from PDF documents. Developed by Landryb with AI assistance, this tool leverages the power of Google's Gemini models to transform dense documents into clear, concise, and actionable insights.
- Direct PDF Upload: Easily upload PDF files via drag-and-drop or a file picker.
- Editable Extracted Text: Correct any text extraction errors before sending the content to the AI.
- Real-time AI Synthesis: Get results streamed word-by-word for an interactive experience.
- Pre-defined & Custom Tasks: Use common tasks like "Summarize" or "Find Key Points" with one click, or define your own.
- Full Markdown Support: Results are beautifully formatted with Markdown for excellent readability.
- Session History: Your synthesis history is saved locally, allowing you to reload and reuse past results.
- PDF Export: Export any synthesis to a clean PDF document.
- Customizable AI: Fine-tune the AI's system instructions and use your own Gemini API key.
- Modern UI: Features a collapsible sidebar, light/dark modes with smooth transitions, and a clean, responsive interface.
- Full User Control: Stop generation mid-stream or regenerate a response if it's not perfect.
- Frontend: React 19, TypeScript
- Styling: Tailwind CSS
- AI: Google Gemini API (
@google/genai
) - PDF Processing:
pdfjs-dist
- Deployment: Docker, Nginx
This project is designed to run directly in a modern browser without a local build step, using ES modules loaded from esm.sh
.
-
Clone the repository:
git clone https://github.com/your-repo/synth-ai.git cd synth-ai
-
Provide an API Key:
- Create a file named
config.js
in the root directory. - Add the following line to it, replacing
YOUR_GEMINI_API_KEY
with your actual key from Google AI Studio:window.API_KEY = 'YOUR_GEMINI_API_KEY';
- Create a file named
-
Serve the files: You need a simple local web server to serve the project files. You can use the
http-server
npm package or Python's built-in server.Using
http-server
:npx http-server -p 3000
Open
http://localhost:3000
in your browser.
The application is ready to be deployed as a Docker container. The included Dockerfile
uses Nginx to serve the application and allows you to inject the Gemini API key at runtime.
-
Build the Docker image:
docker build -t synth-ai .
-
Run the Docker container: Provide your Gemini API key as an environment variable.
docker run -d -p 8080:80 -e API_KEY="YOUR_GEMINI_API_KEY" --name synth-ai-container synth-ai
The application will be available at http://localhost:8080
.
This project is licensed under the MIT License.
Developed by Landryb with AI assistance.