diff --git a/.github/workflows/mkdocs.yaml b/.github/workflows/mkdocs.yaml new file mode 100644 index 0000000000..913d0a54bc --- /dev/null +++ b/.github/workflows/mkdocs.yaml @@ -0,0 +1,24 @@ +name: mkdocs +on: + push: + branches: + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force diff --git a/docs/assets/logo.png b/docs/assets/logo.png new file mode 100644 index 0000000000..9ce3aa6bfd Binary files /dev/null and b/docs/assets/logo.png differ diff --git a/docs/contributions/coding_conventions.md b/docs/contributions/coding_conventions.md index 5335f8ecd5..5965dc33f3 100644 --- a/docs/contributions/coding_conventions.md +++ b/docs/contributions/coding_conventions.md @@ -102,7 +102,3 @@ Use the conventions found in the `data-provider` directory for handling data ser ### State Management Use [Recoil](https://recoiljs.org/) for state management, but *DO NOT pollute the global state with unnecessary data*. Instead, use local state or props for data that is only used within a component or passed down from parent to child. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/contributions/documentation_guidelines.md b/docs/contributions/documentation_guidelines.md index 632d508293..c84f26b365 100644 --- a/docs/contributions/documentation_guidelines.md +++ b/docs/contributions/documentation_guidelines.md @@ -4,11 +4,6 @@ - For new features, create new documentation and place it in the appropriate folder(s) - If the feature adds new functionality, it should be added to the feature section of the main Readme - When you create a new document, do not forget to add it to the table of content - - Add a shortcut that point back to the [README.MD](../../README.md) in the bottom of new documents (look at other docs for example) - Use `#` / `##` / `###` for the different section of the doc - Do not add unrelated information to an existing document, create a new one if needed - For incremental updates, you need to update the main **README.MD** - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/contributions/testing.md b/docs/contributions/testing.md index db4d29b960..dbcbd2ae76 100644 --- a/docs/contributions/testing.md +++ b/docs/contributions/testing.md @@ -64,6 +64,3 @@ If everything goes well, you should see a `passed` message. ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/deployment/heroku.md b/docs/deployment/heroku.md index 528a1c1bf0..099ba1049d 100644 --- a/docs/deployment/heroku.md +++ b/docs/deployment/heroku.md @@ -192,6 +192,3 @@ heroku config:set KEY_NAME=KEY_VALUE --app your-app-name ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/deployment/hetzner_ubuntu.md b/docs/deployment/hetzner_ubuntu.md index b63185b563..f35d605091 100644 --- a/docs/deployment/hetzner_ubuntu.md +++ b/docs/deployment/hetzner_ubuntu.md @@ -138,7 +138,3 @@ ALLOW_REGISTRATION:False --- ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/features/plugins/google_search.md b/docs/features/plugins/google_search.md index 87a7761a38..fab58cf52a 100644 --- a/docs/features/plugins/google_search.md +++ b/docs/features/plugins/google_search.md @@ -64,7 +64,3 @@ Fill in a name, select to "Search the entire web" and hit "Create": ![image](https://user-images.githubusercontent.com/23362597/233268067-5a6cfaf1-bec0-48b3-8add-70b218fb4264.png) - ---- - -## [Go Back to ReadMe](../../../README.md) diff --git a/docs/features/plugins/introduction.md b/docs/features/plugins/introduction.md index 92242702f9..b3465d0f04 100644 --- a/docs/features/plugins/introduction.md +++ b/docs/features/plugins/introduction.md @@ -73,6 +73,3 @@ Clicking on **"Show Agent Settings"** will allow you to modify parameters for th ![image](https://github.com/danny-avila/LibreChat/assets/110412045/9ddeb874-4323-45a3-b2aa-5492bc324716) ---- - -## [Go Back to ReadMe](../../../README.md) diff --git a/docs/features/plugins/make_your_own.md b/docs/features/plugins/make_your_own.md index d9f34fa002..6ab2d30ad5 100644 --- a/docs/features/plugins/make_your_own.md +++ b/docs/features/plugins/make_your_own.md @@ -284,6 +284,3 @@ module.exports = WolframAlphaAPI; In this example, the `WolframAlphaAPI` class has helper methods like `fetchRawText`, `getAppId`, and `createWolframAlphaURL` to handle specific tasks. The `_call` method makes an HTTP request to the Wolfram Alpha API and returns the response. ---- - -## [Go Back to ReadMe](../../../README.md) diff --git a/docs/features/plugins/stable_diffusion.md b/docs/features/plugins/stable_diffusion.md index de8bda9094..e6eac0f098 100644 --- a/docs/features/plugins/stable_diffusion.md +++ b/docs/features/plugins/stable_diffusion.md @@ -63,6 +63,3 @@ With the docker deployment you can skip step 2 and step 3, use the setup instruc ![image](https://github.com/danny-avila/LibreChat/assets/110412045/bbdffdc7-57b0-459e-87c2-c3c2871b74cb) ---- - -## [Go Back to ReadMe](../../../README.md) diff --git a/docs/features/plugins/wolfram.md b/docs/features/plugins/wolfram.md index 37808587b0..bffd2eb8bb 100644 --- a/docs/features/plugins/wolfram.md +++ b/docs/features/plugins/wolfram.md @@ -19,6 +19,3 @@ An AppID must be supplied in all calls to the Wolfram|Alpha API. ![image](https://github.com/danny-avila/LibreChat/assets/110412045/fe5626ce-dfc5-4b0f-b203-e954975ff551) ---- - -## [Go Back to ReadMe](../../../README.md) diff --git a/docs/features/proxy.md b/docs/features/proxy.md index 71545203ad..586fbe58db 100644 --- a/docs/features/proxy.md +++ b/docs/features/proxy.md @@ -30,8 +30,3 @@ set in docker-compose.yml file, under services - api - environment **Change `http://127.0.0.1:7890` to your proxy server** - - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/general_info/bing_jailbreak_info.md b/docs/general_info/bing_jailbreak_info.md index e867ff97b6..776b81fb7f 100644 --- a/docs/general_info/bing_jailbreak_info.md +++ b/docs/general_info/bing_jailbreak_info.md @@ -28,7 +28,3 @@ For more info on the Bing Jailbreak and general jailbreaking guidelines: https://github.com/waylaidwanderer/node-chatgpt-api https://www.make-safe-ai.com/is-bing-chat-safe/ - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/general_info/breaking_changes.md b/docs/general_info/breaking_changes.md index 4a331909e1..a1de9384f8 100644 --- a/docs/general_info/breaking_changes.md +++ b/docs/general_info/breaking_changes.md @@ -40,7 +40,3 @@ --- We apologize for any inconvenience caused by these changes. We hope you enjoy the new and improved version of our app! - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/general_info/multilingual_information.md b/docs/general_info/multilingual_information.md index 3a72fb85f7..5134d17079 100644 --- a/docs/general_info/multilingual_information.md +++ b/docs/general_info/multilingual_information.md @@ -31,7 +31,4 @@ A projekt beállításához kövesse a használati útmutatót. Az útmutató cs # Aby skonfigurować projekt, należy postępować zgodnie z instrukcjami zawartymi w dokumentacji. Dokumentacja jest dostępna tylko w języku angielskim, więc w razie trudności w zrozumieniu, może być konieczne użycie narzędzia do tłumaczenia lub asystenta AI (np. ChatGPT). ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/general_info/project_origin.md b/docs/general_info/project_origin.md index af4c307dba..d15244cda7 100644 --- a/docs/general_info/project_origin.md +++ b/docs/general_info/project_origin.md @@ -2,6 +2,3 @@ This project was started early in Feb '23, anticipating the release of the official ChatGPT API from OpenAI, which is now used. It was originally created as a Minimum Viable Product (or MVP) for the [@HackReactor](https://github.com/hackreactor/) Bootcamp. It was built with OpenAI response streaming and most of the UI completed in under 20 hours. During the end of that time, I had most of the UI and basic functionality done. This was created without using any boilerplates or templates, including create-react-app and other toolchains. I didn't follow any 'un-official chatgpt' video tutorials, and simply referenced the official site for the UI. The purpose of the exercise was to learn setting up a full stack project from scratch. ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/general_info/tech_stack.md b/docs/general_info/tech_stack.md index b3bb939580..2a4f38d96a 100644 --- a/docs/general_info/tech_stack.md +++ b/docs/general_info/tech_stack.md @@ -7,6 +7,3 @@ - Use of Tailwind CSS and [shadcn/ui](https://github.com/shadcn/ui) components - Docker, useSWR, Redux, Express, MongoDB, [Keyv](https://www.npmjs.com/package/keyv) ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000000..12f281716f --- /dev/null +++ b/docs/index.md @@ -0,0 +1,66 @@ +

+ + + + + +

LibreChat

+ +

+ +

+ + + + + + +

+ +## All-In-One AI Conversations with LibreChat ## +LibreChat brings together the future of assistant AIs with the revolutionary technology of OpenAI's ChatGPT. Celebrating the original styling, LibreChat gives you the ability to integrate multiple AI models. It also integrates and enhances original client features such as conversation and message search, prompt templates and plugins. + +With LibreChat, you no longer need to opt for ChatGPT Plus and can instead use free or pay-per-call APIs. We welcome contributions, cloning, and forking to enhance the capabilities of this advanced chatbot platform. + + +https://github.com/danny-avila/LibreChat/assets/110412045/c1eb0c0f-41f6-4335-b982-84b278b53d59 + +# Features + +- Response streaming identical to ChatGPT through server-sent events +- UI from original ChatGPT, including Dark mode +- AI model selection (through 5 endpoints: OpenAI API, BingAI, ChatGPT Browser, PaLM2, Plugins) +- Create, Save, & Share custom presets - [More info on prompt presets here](https://github.com/danny-avila/LibreChat/releases/tag/v0.3.0) +- Edit and Resubmit messages with conversation branching +- Search all messages/conversations - [More info here](https://github.com/danny-avila/LibreChat/releases/tag/v0.1.0) +- Plugins now available (including web access, image generation and more) + +--- + +## Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=danny-avila/LibreChat&type=Date)](https://star-history.com/#danny-avila/LibreChat&Date) + +--- + +## Sponsors + + Sponsored by @DavidDev1334, @mjtechguy, @Pharrcyde, @fuegovic & @SphaeroX + +--- + +## Contributors +Contributions and suggestions bug reports and fixes are welcome! +Please read the documentation before you do! + +--- + +For new features, components, or extensions, please open an issue and discuss before sending a PR. + +- Join the [Discord community](https://discord.gg/uDyZ5Tzhct) + +This project exists in its current state thanks to all the people who contribute +--- + + + diff --git a/docs/install/apis_and_tokens.md b/docs/install/apis_and_tokens.md index cf5a5973f6..b047cf7b93 100644 --- a/docs/install/apis_and_tokens.md +++ b/docs/install/apis_and_tokens.md @@ -75,7 +75,3 @@ That's it! You're all set. 🎉 ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. ---- - -## [Go Back to ReadMe](../../README.md) - diff --git a/docs/install/docker_install.md b/docs/install/docker_install.md index bc46199e42..826e630c9b 100644 --- a/docs/install/docker_install.md +++ b/docs/install/docker_install.md @@ -109,7 +109,3 @@ Navigate to https://www.mongodb.com/ and Sign In or Create an account - "Choose a connection method" select "Connect your application" - Driver = Node.js / Version = 4.1 or later - Copy the connection string, fill in your password and remove `&w=majority` from default connection string. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/install/linux_install.md b/docs/install/linux_install.md index 550b2f49b0..cf94f3cfd0 100644 --- a/docs/install/linux_install.md +++ b/docs/install/linux_install.md @@ -106,7 +106,3 @@ If you update the LibreChat project files, manually redo the npm ci and npm run ## ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/install/mac_install.md b/docs/install/mac_install.md index 4e3ab3e143..f80c58ed1e 100644 --- a/docs/install/mac_install.md +++ b/docs/install/mac_install.md @@ -105,7 +105,3 @@ npm run backend ## ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/docs/install/windows_install.md b/docs/install/windows_install.md index fa5d182ed4..ab5e47112e 100644 --- a/docs/install/windows_install.md +++ b/docs/install/windows_install.md @@ -100,7 +100,3 @@ REM this batch file goes at the root of the LibreChat directory (C:/LibreChat/) ## ### Note: If you're still having trouble, before creating a new issue, please search for similar ones on our [#issues thread on our discord](https://discord.gg/weqZFtD9C4) or our [troubleshooting discussion](https://github.com/danny-avila/LibreChat/discussions/new?category=troubleshooting) on our Discussions page. If you don't find a relevant issue, feel free to create a new one and provide as much detail as possible. - ---- - -## [Go Back to ReadMe](../../README.md) diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000000..6e11425df8 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,82 @@ +# Project information +site_name: Librechat + +# Repository +repo_name: danny-avila/LibreChat +repo_url: https://github.com/danny-avila/LibreChat +edit_uri: '' + +theme: + name: material + logo: assets/logo.png + + palette: + # Palette toggle for dark mode + - scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + # Palette toggle for light mode + - scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + icon: + repo: fontawesome/brands/gitlab + edit: material/pencil + view: material/eye + + features: + - navigation.tabs + - navigation.tabs.sticky + - content.action.edit + - content.code.copy + +markdown_extensions: + - attr_list + - admonition + - pymdownx.details + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.emoji: + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + + +# Page tree +nav: + - Home: 'index.md' + - Getting Started: + - Docker Install: 'install/docker_install.md' + - Linux Install: 'install/linux_install.md' + - Mac Install: 'install/mac_install.md' + - Windows Install: 'install/windows_install.md' + - APIs and Tokens: 'install/apis_and_tokens.md' + - General Information: + - Project Origin: 'general_info/project_origin.md' + - Multilingual Information: 'general_info/multilingual_information.md' + - Tech Stack: 'general_info/tech_stack.md' + - Bing Jailbreak Info: 'general_info/bing_jailbreak_info.md' + - Features: + - Plugins: + - Introduction: 'features/plugins/introduction.md' + - Google: 'features/plugins/google_search.md' + - Stable Diffusion: 'features/plugins/stable_diffusion.md' + - Wolfram: 'features/plugins/wolfram.md' + - Make Your Own Plugin: 'features/plugins/make_your_own.md' + - User Auth System: 'features/user_auth_system.md' + - Proxy: 'features/proxy.md' + - Cloud Deployment: + - Hetzner: 'deployment/hetzner_ubuntu.md' + - Heroku: 'deployment/heroku.md' + - Contributions: + - Documentation Guidelines: 'contributions/documentation_guidelines.md' + - Code Standards and Conventions: 'contributions/coding_conventions.md' + - Testing: 'contributions/testing.md' +