promptforest 0.1.0__tar.gz → 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. promptforest-0.1.1/PKG-INFO +81 -0
  2. promptforest-0.1.1/promptforest.egg-info/PKG-INFO +81 -0
  3. {promptforest-0.1.0 → promptforest-0.1.1}/setup.py +7 -1
  4. promptforest-0.1.0/PKG-INFO +0 -21
  5. promptforest-0.1.0/promptforest.egg-info/PKG-INFO +0 -21
  6. {promptforest-0.1.0 → promptforest-0.1.1}/LICENSE.txt +0 -0
  7. {promptforest-0.1.0 → promptforest-0.1.1}/MANIFEST.in +0 -0
  8. {promptforest-0.1.0 → promptforest-0.1.1}/NOTICE.md +0 -0
  9. {promptforest-0.1.0 → promptforest-0.1.1}/README.md +0 -0
  10. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/__init__.py +0 -0
  11. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/cli.py +0 -0
  12. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/config.py +0 -0
  13. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/download.py +0 -0
  14. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/lib.py +0 -0
  15. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/llama_guard_86m_downloader.py +0 -0
  16. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/server.py +0 -0
  17. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest/xgboost/xgb_model.pkl +0 -0
  18. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest.egg-info/SOURCES.txt +0 -0
  19. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest.egg-info/dependency_links.txt +0 -0
  20. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest.egg-info/entry_points.txt +0 -0
  21. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest.egg-info/requires.txt +0 -0
  22. {promptforest-0.1.0 → promptforest-0.1.1}/promptforest.egg-info/top_level.txt +0 -0
  23. {promptforest-0.1.0 → promptforest-0.1.1}/setup.cfg +0 -0
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: promptforest
3
+ Version: 0.1.1
4
+ Summary: Ensemble Prompt Injection Detection
5
+ Requires-Python: >=3.8
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE.txt
8
+ License-File: NOTICE.md
9
+ Requires-Dist: numpy
10
+ Requires-Dist: pandas
11
+ Requires-Dist: torch
12
+ Requires-Dist: transformers
13
+ Requires-Dist: sentence-transformers
14
+ Requires-Dist: xgboost
15
+ Requires-Dist: scikit-learn
16
+ Requires-Dist: pyyaml
17
+ Requires-Dist: joblib
18
+ Requires-Dist: protobuf
19
+ Dynamic: description
20
+ Dynamic: description-content-type
21
+ Dynamic: license-file
22
+ Dynamic: requires-dist
23
+ Dynamic: requires-python
24
+ Dynamic: summary
25
+
26
+ # PromptForest - Fast and Reliable Injection Detector Ensemble
27
+
28
+ PromptForest is a prompt injection detector ensemble focused on real-world latency and reliability.
29
+
30
+ We rely on an ensemble of small, accurate prompt detection models using a voting system to generate accurate detections.
31
+
32
+ By comparing predictions across multiple models, the system can flag prompts where models disagree, helping to reduce the risk of false negatives.
33
+
34
+ This discrepancy score enables downstream workflows such as:
35
+ - Human-in-the-loop review for high-risk or ambiguous prompts
36
+ - Adaptive throttling or alerting in production systems
37
+ - Continuous monitoring and model improvement
38
+
39
+
40
+ ## Supported Models
41
+
42
+ | Provider | Model Name |
43
+ | ------------- | ----------------------------------------- |
44
+ | **Meta** | Llama Prompt Guard 86M (Built with Llama) |
45
+ | **ProtectAI** | DebertaV3 Prompt Injection Finetune |
46
+ | **Deepset** | DebertaV3-base Injection Finetune |
47
+ | **Katanemo** | Arch-Guard |
48
+ | **Appleroll** | PromptForest-XGBoost |
49
+
50
+ ## Performance
51
+ **Request Latency** \
52
+ Best Case: 50ms \
53
+ Worst Case: 200ms
54
+
55
+ **Accuracy** \
56
+ Preliminary results indicate ensemble performance is at least as good as any individual model. Extensive benchmarking is ongoing.
57
+
58
+
59
+ ## Quick Start
60
+ To use PromptForest, simply install the pip package and serve it at a port of your choice. It should automatically start downloading the default model ensemble.
61
+
62
+ Gated models are downloaded through our own [ensemble github respository](https://github.com/appleroll-research/promptforest-model-ensemble) and are released in accordance to their terms and conditions.
63
+
64
+ ```bash
65
+ pip install promptforest
66
+ promptforest serve --port 8000
67
+ ```
68
+
69
+ ## Disclaimer & Limitations
70
+
71
+ PromptForest uses a combination of open-source and third-party machine learning models, including models and weights released by other organizations under their respective licenses (e.g. Meta LLaMA Prompt Guard and other public prompt-injection detectors).
72
+ All third-party components remain the property of their original authors and are used in accordance with their licenses.
73
+
74
+ PromptForest is not a standalone security solution and should not be relied upon as the sole defense mechanism for protecting production systems. Prompt injection detection is an inherently adversarial and evolving problem, and no automated system can guarantee complete protection.
75
+
76
+ This project has not yet been extensively validated against real-world, large-scale, or targeted prompt-injection attacks. Results may vary depending on deployment context, model configuration, and threat model.
77
+
78
+ PromptForest is intended to be used as one layer in a defense-in-depth strategy, alongside input validation, output filtering, access control, sandboxing, monitoring, and human oversight.
79
+
80
+ ## License
81
+ This project is licensed under Apache 2.0. Third-party models and weights are redistributed under their original licenses (see THIRD_PARTY_LICENSES folder for details). Users must comply with these licenses.
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: promptforest
3
+ Version: 0.1.1
4
+ Summary: Ensemble Prompt Injection Detection
5
+ Requires-Python: >=3.8
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE.txt
8
+ License-File: NOTICE.md
9
+ Requires-Dist: numpy
10
+ Requires-Dist: pandas
11
+ Requires-Dist: torch
12
+ Requires-Dist: transformers
13
+ Requires-Dist: sentence-transformers
14
+ Requires-Dist: xgboost
15
+ Requires-Dist: scikit-learn
16
+ Requires-Dist: pyyaml
17
+ Requires-Dist: joblib
18
+ Requires-Dist: protobuf
19
+ Dynamic: description
20
+ Dynamic: description-content-type
21
+ Dynamic: license-file
22
+ Dynamic: requires-dist
23
+ Dynamic: requires-python
24
+ Dynamic: summary
25
+
26
+ # PromptForest - Fast and Reliable Injection Detector Ensemble
27
+
28
+ PromptForest is a prompt injection detector ensemble focused on real-world latency and reliability.
29
+
30
+ We rely on an ensemble of small, accurate prompt detection models using a voting system to generate accurate detections.
31
+
32
+ By comparing predictions across multiple models, the system can flag prompts where models disagree, helping to reduce the risk of false negatives.
33
+
34
+ This discrepancy score enables downstream workflows such as:
35
+ - Human-in-the-loop review for high-risk or ambiguous prompts
36
+ - Adaptive throttling or alerting in production systems
37
+ - Continuous monitoring and model improvement
38
+
39
+
40
+ ## Supported Models
41
+
42
+ | Provider | Model Name |
43
+ | ------------- | ----------------------------------------- |
44
+ | **Meta** | Llama Prompt Guard 86M (Built with Llama) |
45
+ | **ProtectAI** | DebertaV3 Prompt Injection Finetune |
46
+ | **Deepset** | DebertaV3-base Injection Finetune |
47
+ | **Katanemo** | Arch-Guard |
48
+ | **Appleroll** | PromptForest-XGBoost |
49
+
50
+ ## Performance
51
+ **Request Latency** \
52
+ Best Case: 50ms \
53
+ Worst Case: 200ms
54
+
55
+ **Accuracy** \
56
+ Preliminary results indicate ensemble performance is at least as good as any individual model. Extensive benchmarking is ongoing.
57
+
58
+
59
+ ## Quick Start
60
+ To use PromptForest, simply install the pip package and serve it at a port of your choice. It should automatically start downloading the default model ensemble.
61
+
62
+ Gated models are downloaded through our own [ensemble github respository](https://github.com/appleroll-research/promptforest-model-ensemble) and are released in accordance to their terms and conditions.
63
+
64
+ ```bash
65
+ pip install promptforest
66
+ promptforest serve --port 8000
67
+ ```
68
+
69
+ ## Disclaimer & Limitations
70
+
71
+ PromptForest uses a combination of open-source and third-party machine learning models, including models and weights released by other organizations under their respective licenses (e.g. Meta LLaMA Prompt Guard and other public prompt-injection detectors).
72
+ All third-party components remain the property of their original authors and are used in accordance with their licenses.
73
+
74
+ PromptForest is not a standalone security solution and should not be relied upon as the sole defense mechanism for protecting production systems. Prompt injection detection is an inherently adversarial and evolving problem, and no automated system can guarantee complete protection.
75
+
76
+ This project has not yet been extensively validated against real-world, large-scale, or targeted prompt-injection attacks. Results may vary depending on deployment context, model configuration, and threat model.
77
+
78
+ PromptForest is intended to be used as one layer in a defense-in-depth strategy, alongside input validation, output filtering, access control, sandboxing, monitoring, and human oversight.
79
+
80
+ ## License
81
+ This project is licensed under Apache 2.0. Third-party models and weights are redistributed under their original licenses (see THIRD_PARTY_LICENSES folder for details). Users must comply with these licenses.
@@ -1,8 +1,12 @@
1
1
  from setuptools import setup, find_packages
2
+ from pathlib import Path
3
+
4
+ this_directory = Path(__file__).parent
5
+ long_description = (this_directory / "README.md").read_text(encoding="utf-8")
2
6
 
3
7
  setup(
4
8
  name="promptforest",
5
- version="0.1.0",
9
+ version="0.1.1",
6
10
  description="Ensemble Prompt Injection Detection",
7
11
  packages=find_packages(),
8
12
  install_requires=[
@@ -22,6 +26,8 @@ setup(
22
26
  "promptforest=promptforest.cli:main",
23
27
  ],
24
28
  },
29
+ long_description=long_description,
30
+ long_description_content_type="text/markdown",
25
31
  include_package_data=True,
26
32
  python_requires=">=3.8",
27
33
  )
@@ -1,21 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: promptforest
3
- Version: 0.1.0
4
- Summary: Ensemble Prompt Injection Detection
5
- Requires-Python: >=3.8
6
- License-File: LICENSE.txt
7
- License-File: NOTICE.md
8
- Requires-Dist: numpy
9
- Requires-Dist: pandas
10
- Requires-Dist: torch
11
- Requires-Dist: transformers
12
- Requires-Dist: sentence-transformers
13
- Requires-Dist: xgboost
14
- Requires-Dist: scikit-learn
15
- Requires-Dist: pyyaml
16
- Requires-Dist: joblib
17
- Requires-Dist: protobuf
18
- Dynamic: license-file
19
- Dynamic: requires-dist
20
- Dynamic: requires-python
21
- Dynamic: summary
@@ -1,21 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: promptforest
3
- Version: 0.1.0
4
- Summary: Ensemble Prompt Injection Detection
5
- Requires-Python: >=3.8
6
- License-File: LICENSE.txt
7
- License-File: NOTICE.md
8
- Requires-Dist: numpy
9
- Requires-Dist: pandas
10
- Requires-Dist: torch
11
- Requires-Dist: transformers
12
- Requires-Dist: sentence-transformers
13
- Requires-Dist: xgboost
14
- Requires-Dist: scikit-learn
15
- Requires-Dist: pyyaml
16
- Requires-Dist: joblib
17
- Requires-Dist: protobuf
18
- Dynamic: license-file
19
- Dynamic: requires-dist
20
- Dynamic: requires-python
21
- Dynamic: summary
File without changes
File without changes
File without changes
File without changes
File without changes