fix(garak runner):

This commit is contained in:
Alexander Myasoedov
2024-12-23 16:45:44 +02:00
parent f844ed11df
commit 79cbdf6c4d
5 changed files with 71 additions and 11 deletions
@@ -1,5 +1,6 @@
import asyncio
import importlib.util
import json
import os
import subprocess
@@ -7,6 +8,16 @@ from loguru import logger
# TODO: add probes modules
GARAK_CONFIG = "garak_rest.json"
def write_garak_config_json():
with open(GARAK_CONFIG, "w") as f:
f.write(json.dumps(SPEC))
# TODO: add config params to data registry
class Module:
def __init__(self, prompt_groups: [], tools_inbox: asyncio.Queue):
@@ -22,20 +33,20 @@ class Module:
async def apply(self) -> []:
env = os.environ.copy()
env["OPENAI_API_BASE"] = "http://0.0.0.0:8718/proxy"
# Command to be executed
command = [
"python",
"-m",
"garak",
"--model_type",
"openai",
"--model_name",
"gpt-3.5-turbo",
"rest",
"-G",
GARAK_CONFIG,
"--probes",
"encoding",
]
logger.info("Starting Garak tool. Writing config file.")
write_garak_config_json()
logger.info(f"Executing command: {command}")
# Execute the command with the specific environment
process = subprocess.Popen(
@@ -57,3 +68,26 @@ class Module:
logger.error(f"Error executing command: {command}")
logger.error(f"err: {err}")
return
SPEC = {
"rest": {
"RestGenerator": {
"name": "OpenAI GPT-4 Service",
"uri": "http://0.0.0.0:8718/proxy/chat/completions",
"method": "POST",
"headers": {
"Authorization": "Bearer $OPENAI_API_KEY",
"Content-Type": "application/json",
},
"req_template_json_object": {
"model": "gpt-4",
"messages": [{"role": "user", "content": "$INPUT"}],
"max_tokens": 1050,
"temperature": 0.7,
},
"response_json": True,
"response_json_field": "$.choices[0].message.content",
}
}
}