Skip to content
/ mucgpt Public

MUCGPT provides a web interface based for a given large language model (LLM). It includes different modes of interaction and lets users create individual assistant.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

it-at-m/mucgpt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Made with love by it@M Gitmoij GitHub license GitHub release version Supported python versions Supported npm versions uv FastAPI React Postgres Langchain Demo-Frontend

MUCGPT provides a web interface based on a given large language model (LLM). The whole package is shipped with a Docker container. For a first impression, look at our demo frontend

The interface currently connects to one or multiple OpenAI-compatible LLM-endpoints, which allows users to chat, summarise text, brainstorm ideas and translate a text to plain or easy language. The chat function allows text to be generated and refined in several steps. Summarising allows PDFs or text to be shortened and made more concise. Brainstorming allows users to create mind maps for different topics. Simplified language allows the user to translate a text into plain or easy language, resulting in a more understandable and easier-to-read text.

In addition, custom GPTs can be generated and saved. An own GPT is an assistant for a specific task with a custom system prompt.

See the open issues for a full list of proposed features (and known issues).

Table of contents

Built With

Backend

Frontend

Deployment

Getting started

Install deps

Sync python environment for development:

cd mucgpt-core-service
uv sync --all-extras # installs dev/test dependencies
# if you only want to run mucgpt without using development deps
uv sync

Install frontend deps

cd mucgpt-frontend
npm install

Configure

Configure your environment. For that, copy the content of the empty config from /config/.env.empty to the stack directory stack/.env. Add at least one model by providing one OpenAI compatible endpoint.

Run with Docker

To start all required services using Docker Compose, run:

docker-compose --profile=frontend --profile=backend up --build

This command launches the following components:

  • Frontend: A modern web interface built with React, providing users with an intuitive and responsive experience directly in their browser.
  • Backend: The core service that processes API requests, manages business logic, and communicates with both the database and connected LLMs.
  • API Gateway: Serves as the unified entry point for all client requests, efficiently routing traffic to backend services while managing authentication and security.
  • Keycloak: A robust, open-source identity and access management system responsible for authentication, authorization, and user administration.
  • PostgresDB: A reliable PostgreSQL database used to securely store and manage app statistics.

Once all services are running, you can access:

  • The frontend at localhost:8083 (Username: mucgpt-user, Password: mucgpt)
  • The Keycloak admin panel at localhost:8100 (Username: admin, Password: admin)
  • The PGAdmin panel at localhost:5050 (Username: admin, Password: admin)

Keycloak simulates a Single Sign-On (SSO) service, allowing you to log in to the frontend using the provided credentials (mucgpt-user / mucgpt).

Roadmap

timeline
    title MUCGPT Roadmap

    section Open Source Release
    2024-06 : Open Source : πŸš€ Available to the public under an open-source license, allowing anyone to access, use, and modify MUCGPT without restrictions or payment.

    section  UI Features
    2024-07 : Chat History : πŸ’Ύ Users can save their chat history in the browser.
    2024-08 : LiveCycle LLM : βš™οΈ The employed LLM can be configured to meet specific requirements.
    2024-09 : Simplified Language : πŸ—£οΈ Translate text into simple or easy-to-understand language.

    section Own GPTs
    2025-01 : Own GPTs : πŸ”§ Create and generate custom assistants for specific tasks.

    section Major Update for improved reusability
    2025-05 : MUCGPT 2.0 : 🌟 Roles and rights concept for assistants; splitting into smaller Microservices: API-Gateway, MUCGPT-Core, and a Team Management Service.

    section Improving Own GPTs with more Tools
    2025-06 : Own GPTs : ☁️ Share Assistants with others.
    2025-07 : Own GPTs : πŸ” Use Websearch/Deep Research to provide additional knowledge.
    2025-09 : Chat with Own Documents : πŸ“‚ Own GPTs will have access to shared knowledge and can answer questions based on provided sources.
Loading

Documentation

Architecture The architecture of MUCGPT is structured into two primary components: the frontend and the backend. Additionally, it features an API Gateway, a database, and integrates Single Sign-On (SSO) for authentication.

The frontend is based on a template from Microsoft Azure and is implemented using React, Typescript and Javascript.

The framework used to implement the backend of MUCGPT is called FastAPI. It is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints. The backend uses LangChain to connect to LLMs. In the .env file, you can provide the user with various LLM options to select from in the frontend.

The API Gateway is developed in Java based on the Spring Cloud Gateway, providing robust routing, security, and scalability for all services. IT@M distributes the gateway as a container image: ghcr.io/it-at-m/refarch/refarch-gateway. For detailed documentation, see here.

Authentication is managed using Keycloak, a robust open-source identity and access management solution. Keycloak handles user authentication, authorization, and user management for the MUCGPT platform, enabling secure Single Sign-On (SSO) across all services. For more details on customizing authentication or extending user management, refer to the Keycloak Migration Framework documentation.

For more information about all the features of MUCGPT click here.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Open an issue with the tag "enhancement"
  2. Fork the Project
  3. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  4. Commit your Changes (git commit -m 'Add some AmazingFeature')
  5. Push to the Branch (git push origin feature/AmazingFeature)
  6. Open a Pull Request

More about this in the CODE_OF_CONDUCT file.

License

Distributed under the MIT License. See LICENSE file for more information.

Contact

it@M - [email protected]

About

MUCGPT provides a web interface based for a given large language model (LLM). It includes different modes of interaction and lets users create individual assistant.

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Code of conduct

Stars

Watchers

Forks