https://github.com/Omniplex-ai/omniplex Skip to content Navigation Menu Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + GitHub Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions By size + Enterprise + Teams + Startups By industry + Healthcare + Financial services + Manufacturing By use case + CI/CD & Automation + DevOps + DevSecOps * Resources Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} Omniplex-ai / omniplex Public * Notifications You must be signed in to change notification settings * Fork 87 * Star 557 Open-Source Perplexity omniplex.ai License AGPL-3.0 license 557 stars 87 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 9 * Pull requests 2 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights Omniplex-ai/omniplex This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 6 Commits public public src src .env.example .env.example .eslintrc.json .eslintrc.json .gitignore .gitignore Github.png Github.png LICENSE LICENSE README.md README.md firebaseConfig.js firebaseConfig.js next.config.mjs next.config.mjs package.json package.json postcss.config.js postcss.config.js tailwind.config.ts tailwind.config.ts tsconfig.json tsconfig.json yarn.lock yarn.lock View all files Repository files navigation * README * AGPL-3.0 license hero Omniplex Open-Source Perplexity Website * Discord * Reddit Under Active Development Our focus is on establishing core functionality and essential features. As we continue to develop Omniplex, we are committed to implementing best practices, refining the codebase, and introducing new features to enhance the user experience. Get started To run the project, modify the code in the Chat component to use the // Development Code. 1. Fork & Clone the repository git clone git@github.com:[YOUR_GITHUB_ACCOUNT]/omniplex.git 2. Install the dependencies yarn 3. Fill out secrets in .env.local BING_API_KEY= OPENAI_API_KEY= OPENWEATHERMAP_API_KEY= ALPHA_VANTAGE_API_KEY= FINNHUB_API_KEY= 4. Run the development server yarn dev 5. Open http://localhost:3000 in your browser to see the app. Plugins Development This is just a hacky way but very easy to implement. We will be adding a more robust way to add plugins in the future. Feel free to understand from the sample plugin we have added. 1. Update the types in types.ts to include the new plugin data types. 2. Update the tools api in api to include the new plugin function call. 3. Update the api.ts in utils file to include the new plugin data. 4. Update the chatSlice.ts in store to include the new plugin reducer. 5. Create a new folder in the components directory for the UI of the plugin. 6. Update the chat.tsx to handle the new plugin in useEffect. 7. Call the plugin function and return the data as props to source. 8. Update the source.ts to use the plugin UI. 9. Lastly Update the data.ts in utils to show in the plugin tab. Multi-LLM Support: Example 1. Add the new LLM apiKey in env and add the related npm package. ANTHROPIC_API_KEY=****** 2. Update the chat in api import Anthropic from "@anthropic-ai/sdk"; import { OpenAIStream, StreamingTextResponse } from "ai"; const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY, }); export const runtime = "edge"; export async function POST(req: Request) { const { messages, model, temperature, max_tokens, top_p, frequency_penalty, presence_penalty, } = await req.json(); const response = await anthropic.messages.create({ stream: true, model: model, temperature: temperature, max_tokens: max_tokens, top_p: top_p, frequency_penalty: frequency_penalty, presence_penalty: presence_penalty, messages: messages, }); const stream = OpenAIStream(response); return new StreamingTextResponse(stream); } 3. Update the data in utils export const MODELS = [ { label: "Claude 3 Haiku", value: "claude-3-haiku-20240307" }, { label: "Claude 3 Sonnet", value: "claude-3-sonnet-20240229" }, { label: "Claude 3 Opus", value: "claude-3-opus-20240229" }, ]; Disclaimer We recently transitioned from the pages directory to the app directory, which involved significant changes to the project structure and architecture. As a result, you may encounter some inconsistencies or rough edges in the codebase. Roadmap * [*] Images & Videos for Search * [*] Upload for Vision Model * [*] Chat History for Users * [*] Shared Chats & Fork * [*] Settings for LLMs * [*] Custom OG Metadata * [*] Faster API Requests * [*] Allow Multiple LLMs * [*] Plugin Development * [*] Function Calling with Gen UI App Architecture * Language: TypeScript * Frontend Framework: React * State Management: Redux * Web Framework: Next.js * Backend and Database: Firebase * UI Library: NextUI & Tremor * CSS Framework: TailwindCSS * AI SDK: Vercel AI SDK Services * LLM: OpenAI * Search API: Bing * Weather API: OpenWeatherMap * Stocks API: Alpha Vantage & Finnhub * Dictionary API: WordnikFree Dictionary API * Hosting & Analytics: Vercel * Authentication, Storage & Database: Firebase Contributing We welcome contributions from the community! If you'd like to contribute to Openpanel, please follow these steps: 1. Fork the repository 2. Create a new branch for your feature or bug fix 3. Make your changes and commit them with descriptive messages 4. Push your changes to your forked repository 5. Submit a pull request to the main repository Please ensure that your code follows our coding conventions and passes all tests before submitting a pull request. License This project is licensed under the AGPL-3.0 license. Contact If you have any questions or suggestions, feel free to reach out to us at Contact. Happy coding! About Open-Source Perplexity omniplex.ai Resources Readme License AGPL-3.0 license Activity Custom properties Stars 557 stars Watchers 14 watching Forks 87 forks Report repository Releases No releases published Packages 0 No packages published Languages * TypeScript 75.9% * CSS 23.7% * JavaScript 0.4% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.