diff --git a/.github/workflows/mkdocs.yaml b/.github/workflows/mkdocs.yaml new file mode 100644 index 000000000..913d0a54b --- /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 000000000..9ce3aa6bf 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 5335f8ecd..5965dc33f 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 632d50829..c84f26b36 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 db4d29b96..dbcbd2ae7 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 528a1c1bf..099ba1049 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 b63185b56..f35d60509 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 87a7761a3..fab58cf52 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 92242702f..b3465d0f0 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 d9f34fa00..6ab2d30ad 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 de8bda909..e6eac0f09 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 37808587b..bffd2eb8b 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 71545203a..586fbe58d 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 e867ff97b..776b81fb7 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 4a331909e..a1de9384f 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 3a72fb85f..5134d1707 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 af4c307db..d15244cda 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 b3bb93958..2a4f38d96 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 000000000..12f281716 --- /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 cf5a5973f..b047cf7b9 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 bc46199e4..826e630c9 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 550b2f49b..cf94f3cfd 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 4e3ab3e14..f80c58ed1 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 fa5d182ed..ab5e47112 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 000000000..6e11425df --- /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' +