Skip to content

landrybihire/pdf-content-synthesizer

Repository files navigation

Synth AI

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.

Features

  • 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.

Tech Stack

  • Frontend: React 19, TypeScript
  • Styling: Tailwind CSS
  • AI: Google Gemini API (@google/genai)
  • PDF Processing: pdfjs-dist
  • Deployment: Docker, Nginx

Getting Started (Local Development)

This project is designed to run directly in a modern browser without a local build step, using ES modules loaded from esm.sh.

  1. Clone the repository:

    git clone https://github.com/your-repo/synth-ai.git
    cd synth-ai
  2. 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';
  3. 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.

Deployment (Docker)

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.

  1. Build the Docker image:

    docker build -t synth-ai .
  2. 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.

License

This project is licensed under the MIT License.


Developed by Landryb with AI assistance.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published