Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 Feature: Installation Optimization #1296

Open
1 task done
pabik opened this issue Oct 10, 2024 · 2 comments
Open
1 task done

🚀 Feature: Installation Optimization #1296

pabik opened this issue Oct 10, 2024 · 2 comments
Assignees
Labels
backend dependencies Pull requests that update a dependency file frontend hacktoberfest help wanted Extra attention is needed

Comments

@pabik
Copy link
Collaborator

pabik commented Oct 10, 2024

🔖 Feature description

The current installation process for DocsGPT is taking too long, and we need to optimize it. The goal is to streamline dependency management, improve Dockerfile performance, and explore lazy loading techniques for specific components like vector DBs, LLMs, parsers, and retrievers.

Additionally, we want to investigate transitioning away from LangChain in the future to reduce dependency load and improve flexibility.

🎤 Why is this feature needed ?

Long installation times and heavy dependencies impact the user experience, especially for contributors and developers working with DocsGPT. Optimizing the setup will lead to faster installation, fewer dependency issues, and better resource management.

✌️ How do you aim to achieve this?

  1. Thorough Dependency Checks:

    • Review and audit all Python dependencies to identify unnecessary or outdated packages.
    • Perform a similar review for NPM dependencies to ensure no excessive or redundant libraries are being used.
  2. Dockerfile Optimization:

    • Check the current Dockerfile setup for inefficiencies, reduce build layers.
  3. Explore UV (https://github.com/astral-sh/uv):

    • Investigate the possibility of implementing UV. Test the difference in performance and installation times.
  4. Lazy Loading:

    • Implement lazy loading for components that are not immediately needed during the initial setup, such as vector databases, LLMs, parsers, and retrievers, reducing the initial installation footprint.
  5. Move Away from LangChain:

    • This will improve DocsGPT’s flexibility and reduce unnecessary dependencies in the future.

This task involves multiple areas of optimization, so collaboration is highly encouraged. Feel free to contribute directly to this issue or join the discussion in our Discord (collaborative-issues).

If necessary, this issue can be split into smaller, focused tasks. Please ensure all related issues are linked back to this original for tracking purposes.

🔄️ Additional Information

No response

👀 Have you spent some time to check if this feature request has been raised before?

  • I checked and didn't find similar issue

Are you willing to submit PR?

None

@pabik pabik added help wanted Extra attention is needed dependencies Pull requests that update a dependency file hacktoberfest frontend backend labels Oct 10, 2024
@sanjay7178
Copy link

@pabik I have experience with uv and ruff , upon maintain pyproject.yml and other config files with it, place assign me for this issue

@Charlesnorris509
Copy link

@pabik I have some experience with these type of Fullstack Application with Node.js and Flask, It seems like there are some redundant dependencies and your requirements.txt and Package-lock.json Files. Please assign me the issue and I'll make a pull request

Charlesnorris509 added a commit to Charlesnorris509/DocsGPT that referenced this issue Nov 3, 2024
Issue arc53#1296 - DockerFile Optimization for Installation. Using the following major notions: 
Ownership and Permissions Consolidation, Combined Environment Variables, Combined Cleanup Process
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend dependencies Pull requests that update a dependency file frontend hacktoberfest help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants