greydgl--pentestgpt
a6edb3053e
* fix: 🐛 fix OPENAI key setting issue and update readme * feat: 🎸 add visual parsing for GPT4o * feat: 🎸 update default API model
67 行
1.7 KiB
Python
67 行
1.7 KiB
Python
import argparse
|
|
import sys
|
|
|
|
import loguru
|
|
|
|
from pentestgpt.utils.pentest_gpt import pentestGPT
|
|
|
|
|
|
def main():
|
|
"""main function"""
|
|
parser = argparse.ArgumentParser(description="PentestGPT")
|
|
|
|
# parser arguments
|
|
# 0. log directory
|
|
parser.add_argument(
|
|
"--log_dir",
|
|
type=str,
|
|
default="logs",
|
|
help="path to the log directory, where conversations will be stored",
|
|
)
|
|
# 1. Reasoning Model
|
|
parser.add_argument(
|
|
"--reasoning_model",
|
|
type=str,
|
|
default="gpt-4-o",
|
|
help="reasoning models are responsible for higher-level cognitive tasks, choose 'gpt-4' or 'gpt-4-turbo'",
|
|
)
|
|
# 2. Parsing Model
|
|
parser.add_argument(
|
|
"--parsing_model",
|
|
type=str,
|
|
default="gpt-4-o",
|
|
help="parsing models deal with the structural and grammatical aspects of language, choose 'gpt-4-turbo' or 'gpt-3.5-turbo-16k'",
|
|
)
|
|
|
|
# 3. use langfuse default logging
|
|
parser.add_argument(
|
|
"--logging",
|
|
action="store_true",
|
|
default=False,
|
|
help="allow PentestGPT developers to collect data through langfuse logging",
|
|
)
|
|
|
|
# Deprecated: set to False only for testing if using cookie
|
|
parser.add_argument(
|
|
"--useAPI",
|
|
action="store_true",
|
|
default=True,
|
|
help="deprecated: set to False only for testing if using cookie",
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
pentestGPTHandler = pentestGPT(
|
|
reasoning_model=args.reasoning_model,
|
|
parsing_model=args.parsing_model,
|
|
useAPI=args.useAPI,
|
|
log_dir=args.log_dir,
|
|
use_langfuse_logging=args.logging,
|
|
)
|
|
|
|
pentestGPTHandler.main()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|