https://github.com/omnis0ft/omnisite
OmniBot - Run LLMs natively & privately in your browser
https://github.com/omnis0ft/omnisite
ai-saas chatbot langchain llama3 llm local-ai offline-ai offline-ai-solutions phi-3 startups typescript
Last synced: 7 months ago
JSON representation
OmniBot - Run LLMs natively & privately in your browser
- Host: GitHub
- URL: https://github.com/omnis0ft/omnisite
- Owner: OmniS0FT
- License: mit
- Created: 2024-11-22T21:13:32.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-01-03T08:13:52.000Z (9 months ago)
- Last Synced: 2025-01-29T02:45:56.311Z (8 months ago)
- Topics: ai-saas, chatbot, langchain, llama3, llm, local-ai, offline-ai, offline-ai-solutions, phi-3, startups, typescript
- Language: TypeScript
- Homepage: https://omnibot.com.co
- Size: 313 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
OmniBot**OMNIBOT** is a private AI that uses WebGPU to run LLMs natively in your browser, bringing you an offline experience.
# Features
- **In-browser privacy:** All AI models run locally (client side) on your hardware, ensuring that your data is processed only on your pc. No server-side processing!
- **Offline:** Once the initial download of a model is processed, you'll be able to use it without an active internet connection.
- **Chat history:** Access and manage your conversation history.
- **Supports new open-source models:** Chat with popular open-source models such as Gemma, Llama2 & 3 and Mistral!
- **Responsive design:** If your phone supports WebGl, you'll be able to use OmniBot just as you would on desktop.
- **Markdown & code highlight:** Messages returned as markdown will be displayed as such & messages that include code, will be highlighted for easy access.
- **Chat with files:** Load files (pdf & all non-binary files supported - even code files) and ask the models questions about them!
- **Custom memory support:** Add custom instructions/memory to allow the AI to provide better and more personalized responses.- **Export chat messages:** Seamlessly generate and save your chat messages in either json or markdown format.
- **Voice message support:** Use voice interactions to interact with the models.
- **Regenerate responses:** Not quite the response you were hoping for? Quickly regenerate it without having to write out your prompt again.
- **Light & Dark mode:** Switch between light & dark mode.# Aim
Omnibot attempts to at bring the functionality from popular AI interfaces such as ChatGPT and Gemini into a in-browser experience.
# Getting Started
## Prerequisites
- Node.js and yarn/bun installed
- Accounts and API keys for:
- Supabase
- Stripe (if using payments)
- Clerk (if using authentication)## Setup
1. Clone the repository:
```
git clone
cd
```2. Install dependencies:
```
yarn
```3. Set up environment variables:
Create a `.env` file in the root directory with the following variables:
```
SUPABASE_URL=
SUPABASE_SERVICE_KEY=# If using Stripe
STRIPE_SECRET_KEY=
NEXT_PUBLIC_STRIPE_PRICE_ID=# If using Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
```4. Configure features:
In `config.ts`, set the desired features:
```typescript
const config = {
auth: {
enabled: true, // Set to false if not using Clerk
},
payments: {
enabled: true, // Set to false if not using Stripe
}
};
```5. Set up the database:
Run Prisma migrations:
```
npx prisma migrate dev
```6. Start the development server:
```
yarn dev
```7. Open your browser and navigate to `http://localhost:3000` to see your application running.
## Additional Configuration
- Webhooks: Set up webhooks for Clerk (if using auth) at `/api/auth/webhook` and for Stripe (if using payments) at `/api/payments/webhook`.
- Customize the landing page, dashboard, and other components as needed.
- Modify the Prisma schema in `prisma/schema.prisma` if you need to change the database structure.## Important Security Notes
- Enable Row Level Security (RLS) in your Supabase project to ensure data protection at the database level.
- Always make Supabase calls on the server-side (in API routes or server components) to keep your service key secure.## Learn More
Refer to the documentation of the individual technologies used in this project for more detailed information:
- [Next.js Documentation](https://nextjs.org/docs)
- [Tailwind CSS Documentation](https://tailwindcss.com/docs)
- [Supabase Documentation](https://supabase.io/docs)
- [Prisma Documentation](https://www.prisma.io/docs)
- [Clerk Documentation](https://clerk.dev/docs) (if using auth)
- [Stripe Documentation](https://stripe.com/docs) (if using payments)