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

feat(llm): GPT4All, Open-source LLM that run locally #44

Closed
1 task done
psyray opened this issue Apr 22, 2024 · 1 comment
Closed
1 task done

feat(llm): GPT4All, Open-source LLM that run locally #44

psyray opened this issue Apr 22, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@psyray
Copy link
Contributor

psyray commented Apr 22, 2024

Is there an existing feature or issue for this?

  • I have searched the existing issues

Expected feature

Can you add support for GPT4All?

It is great for local testing (3GB - 8GB) in any corporation that don't want to send data to internet.

"GPT4All is an ecosystem to run powerful and customized large language models that work locally on consumer grade CPUs and any GPU. Note that your CPU needs to support [AVX or AVX2 instructions]"

https://gpt4all.io/
https://github.com/nomic-ai/gpt4all

@yogeshojha ,I am excited to offer my contributions to this issue. I have a couple of ideas that I believe could significantly enhance the project's functionality, particularly in the gpt.py script.

Proposed Enhancements:

  1. Fallback to Local Model: In scenarios where an OpenAI key is not defined or available, I propose implementing a fallback mechanism in gpt.py that automatically switches to a local model. This approach ensures continuity of service while catering to users without access to OpenAI's API.

  2. Integration of GPT4All: I plan to utilize the GPT4All Python bindings as the local model. My focus will be on seamlessly integrating this without disrupting the current usage patterns of the GPT API. The goal is to maintain backward compatibility and ease of use.

  3. Testing with Mistral Instruct Model: For the GPTVulnerabilityReportGenerator, I have conducted tests using the Mistral Instruct model. These tests are to ensure that our implementations are robust and can handle various language modeling tasks efficiently.

Approach and Compatibility:

  • My approach will prioritize maintaining the existing functionality of gpt.py while introducing these enhancements.
  • I aim to ensure that the integration is smooth and does not introduce breaking changes for current users.

Request for Feedback:

  • I am eager to hear any feedback or suggestions regarding this proposal.
  • If there are specific guidelines or preferences for how these features should be integrated, I would appreciate your insights.

I am looking forward to contributing to this important feature, and I believe that these enhancements will make the tool more versatile and accessible to a broader range of users.

  • I have also tested Mistral Instruct model for GPTVulnerabilityReporGenerator:
Question:
  You are a highly skilled penetration tester who has recently completed a penetration testing.
    You will be given with a
        - Vulnerability title
        - Vulnerable URL
        - and some description about the vulnerability.
    Your job is to write a detailed technical penetration testing report based on the given Vulnerability details.
    The purpose of this report is to provide an in-depth analysis of the vulnerabilities discovered during the penetration testing engagement.

    The penetration testing report must contain all separated by \n\n

    - Vulnerability description
        Include a detailed vulnerability description, include any known CVE IDs, any known existing vulnerabilities.
    - Impact
        Include what this vulnerability can impact for web applications.
    - Remediation
        Include steps to remediate this vulnerability. Separate each new remediations by - and a new line \n
    - References
        Include any references URL about this vulnerability, any existing CVE ID, or news articles etc. Separate each new references by - and a new line \n. Only include http urls

    Do not write 'Penetration Testing Report:' on the title.
CVE-2021-44228
www.index.gov/

Response:
Vulnerability Title: Remote Code Execution (RCE) Vulnerability in Apache Tomcat Server

Vulnerable URL: www.index.gov.tr

Description: The vulnerability was discovered during a penetration testing engagement on the website of the Ministry of Customs and Trade of Turkey, which is hosted on an Apache Tomcat server. The RCE vulnerability allows attackers to execute arbitrary code on the server by exploiting a flaw in the JVM (Java Virtual Machine) used by Tomcat.

Impact: This vulnerability can be exploited by attackers to gain full control of the web application and potentially compromise sensitive data or perform malicious actions such as DDoS attacks, data theft, etc. The impact of this vulnerability on a web application can be severe, as it allows an attacker to execute arbitrary code on the server, which can lead to unauthorized access, data theft, and other forms of exploitation.

Remediation: To remediate this vulnerability, the following steps should be taken:

1. Update Apache Tomcat to the latest version that includes a fix for CVE-2021-44228.
2. Configure Tomcat to use a sandboxing mechanism such as Java Web Application Firewall (JWAF) or Java Security Manager to restrict the execution of arbitrary code on the server.
3. Implement input validation and sanitization techniques to prevent malicious inputs from being executed by the web application.
4. Conduct regular vulnerability assessments and penetration testing to identify and remediate any new vulnerabilities that may arise in the future.

References:

* CVE-2021-44228 - <https://cve.mitre.org/cve/2021-44228
* Apache Tomcat Security Best Practices - <https://tomcat.apache.org/security-best-practices.html>

cves

Alternative solutions

No response

Anything else?

PR submitted on the legacy repository but not merged in release 2.1.0 yet
yogeshojha/rengine#1116

So we need to add the PR here
@AnonymousWP Could you do it ?

@psyray psyray added the enhancement New feature or request label Apr 22, 2024
@psyray psyray changed the title feat: GPT4All, Open-source LLM that run locally feat(llm): GPT4All, Open-source LLM that run locally Jun 13, 2024
@psyray
Copy link
Contributor Author

psyray commented Sep 4, 2024

Fixed in release/2.1.0

@psyray psyray closed this as completed Sep 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant