PINAC Workspace is a modern-looking privacy-first AI chat for desktops, seamlessly blending Electron-React for a modern user experience with powerfully Python backend. Unlock the full potential of AI with unparalleled simplicity and user-friendliness, while enjoying ultimate freedom and privacy.
- Total Freedom: Choose between local (Ollama) and cloud (Pinac-Cloud) AI models to suit your workflow and privacy needs.
- Privacy by Design: No personal data is ever shared or stored on our servers. All features work fully offline, ensuring your data stays on your device.
- Local RAG Integration: Attach documents directly in chat and leverage a lightweight, local Retrieval-Augmented Generation (RAG) model. Optionally, plug in your own RAG model for advanced use cases.
- Real-Time Web Search: Instantly access up-to-date information from the web to answer questions and enhance conversations.
- Secure Authentication: Sign in and out securely with Firebase Authentication, protecting your identity and access.
- Local Chat History: All conversations are stored locally for your privacy and convenience. Easily revisit and refine past chats.
- Modern Desktop Experience: Enjoy a sleek, responsive UI built with Electron and React, powered by a robust Python backend.
Overview of File Structure in Brief to Help You Get Started.
.
├── index.html
├── public/
├── electron/
|
├── backend/
| ├── auth/
| ├── utils/
| ├── models/
| ├── rag/
| ├── app.py
| ├── app.spec
| ├── build_app.py
| ├── custom_types.py
| └── requirements.txt
|
└── src/
├── App.tsx
├── index.css
├── index.tsx
├── components/
│ ├── FrameHeader.tsx
│ ├── GreetingText.tsx
│ ├── MarkdownRenderer.tsx
│ └── ModalBox.tsx
│
├── context/
│ ├── Attachment.tsx
│ ├── Authentication.tsx
│ ├── ChatMsg.tsx
│ ├── EmbeddingSettings.tsx
| ├── ModalBox.tsx
│ ├── ModelSettings.tsx
│ ├── OllamaSettings.tsx
│ ├── SettingsProvider.ts
│ ├── StopTextGeneration.ts
│ ├── themeManager.ts
│ └── WelcomeText.tsx
│
├── features/
│ ├── appSettings/
│ ├── sidebar/
│ ├── chatHistory/
│ ├── chatInput/
│ ├── database/
│ └── messageBubble/
│
└── pages/
├── Home.tsx
└── SignIn.tsx
Note
Make sure Ollama is installed in your system
-
Clone the Repository
git clone https://github.com/pinacai/PINAC_Workspace.git && cd PINAC_Workspace
-
Install Node dependencies
npm install
-
Create a Python Env for running backend
cd backend && python -m venv venv
-
Install Python dependencies
# Activate the virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate pip install -r requirements.txt
-
Start the App
(For regular time usage, no need to start the Python env or backend file separately)npm run dev
If want to build the app for production, just run
npm run build
We highly welcome contributions! Please follow the steps if you're interested.
- Star this repository
- Fork the repository on GitHub.
- Clone the project to your machine.
- Create your own branch.
- Commit changes to your branch.
- Push your work back up to your fork.
- Submit a Pull request so that we can review your changes
PINAC Workspace is licensed under the GPL-3.0 license. See the LICENSE file for more details.
Thanks to our contributors, we have received huge support from the open-source community.