@@ -372,11 +372,15 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
372372< span class ="sd "> history : List[Dict[str, str]]</ span >
373373< span class ="sd "> The conversation history, containing both user and assistant messages.</ span >
374374
375- < span class ="sd "> use_history : Optional[ bool] </ span >
375+ < span class ="sd "> use_history : bool</ span >
376376< span class ="sd "> Determines whether to use the existing conversation history.</ span >
377377< span class ="sd "> If False, only the system prompts and the current user prompt are used.</ span >
378378< span class ="sd "> Defaults to True.</ span >
379379
380+ < span class ="sd "> strip_client_responses : bool</ span >
381+ < span class ="sd "> Determines whether to strip space, tab, new line, [, ], <, >, \", ' from the start and end of the Client response.</ span >
382+ < span class ="sd "> Defaults to True.</ span >
383+
380384< span class ="sd "> Methods</ span >
381385< span class ="sd "> -------</ span >
382386< span class ="sd "> say(user_prompt: str, use_history: bool = True) -> str</ span >
@@ -387,7 +391,11 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
387391< span class ="sd "> """</ span >
388392
389393 < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="fm "> __init__</ span > < span class ="p "> (</ span >
390- < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> client</ span > < span class ="p "> :</ span > < span class ="n "> ClientBase</ span > < span class ="p "> ,</ span > < span class ="n "> system_prompts</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ]]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="n "> use_history</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> bool</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span >
394+ < span class ="bp "> self</ span > < span class ="p "> ,</ span >
395+ < span class ="n "> client</ span > < span class ="p "> :</ span > < span class ="n "> ClientBase</ span > < span class ="p "> ,</ span >
396+ < span class ="n "> system_prompts</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="n "> List</ span > < span class ="p "> [</ span > < span class ="nb "> str</ span > < span class ="p "> ]]</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span >
397+ < span class ="n "> use_history</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> bool</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span >
398+ < span class ="n "> strip_client_responses</ span > < span class ="p "> :</ span > < span class ="n "> Optional</ span > < span class ="p "> [</ span > < span class ="nb "> bool</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="kc "> True</ span > < span class ="p "> ,</ span >
391399 < span class ="p "> ):</ span >
392400< span class ="w "> </ span > < span class ="sd "> """</ span >
393401< span class ="sd "> Initializes the ChatSession with a client and optional system prompts.</ span >
@@ -397,13 +405,17 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
397405< span class ="sd "> client : ClientBase</ span >
398406< span class ="sd "> The client that handles interaction with the LLM.</ span >
399407
400- < span class ="sd "> system_prompts : Optional[ List[str]] </ span >
408+ < span class ="sd "> system_prompts : List[str], optional </ span >
401409< span class ="sd "> A list of system prompts to guide the conversation from the start.</ span >
402410
403- < span class ="sd "> use_history : Optional[ bool] </ span >
411+ < span class ="sd "> use_history : bool, optional </ span >
404412< span class ="sd "> Determines whether to use the existing conversation history.</ span >
405413< span class ="sd "> If False, only the system prompts and the current user prompt are used.</ span >
406414< span class ="sd "> Defaults to True.</ span >
415+
416+ < span class ="sd "> strip_client_responses : bool, optional</ span >
417+ < span class ="sd "> Determines whether to strip space, tab, new line, [, ], <, >, \", ' from the start and end of the Client response.</ span >
418+ < span class ="sd "> Defaults to True.</ span >
407419< span class ="sd "> """</ span >
408420 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> client</ span > < span class ="o "> =</ span > < span class ="n "> client</ span >
409421 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> use_history</ span > < span class ="o "> =</ span > < span class ="n "> use_history</ span >
@@ -415,6 +427,7 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
415427 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> system_prompts</ span > < span class ="o "> =</ span > < span class ="p "> []</ span >
416428 < span class ="c1 "> # Initialize history with system prompts</ span >
417429 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> history</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> system_prompts</ span > < span class ="p "> )</ span >
430+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> strip_client_responses</ span > < span class ="o "> =</ span > < span class ="n "> strip_client_responses</ span >
418431
419432 < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> say</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> user_prompt</ span > < span class ="p "> :</ span > < span class ="nb "> str</ span > < span class ="p "> )</ span > < span class ="o "> -></ span > < span class ="nb "> str</ span > < span class ="p "> :</ span >
420433< span class ="w "> </ span > < span class ="sd "> """</ span >
@@ -439,6 +452,8 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
439452 < span class ="n "> history</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> history</ span > < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> use_history</ span > < span class ="k "> else</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> system_prompts</ span > < span class ="p "> ),</ span >
440453 < span class ="n "> messages</ span > < span class ="o "> =</ span > < span class ="p "> [{</ span > < span class ="s2 "> "role"</ span > < span class ="p "> :</ span > < span class ="s2 "> "user"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "content"</ span > < span class ="p "> :</ span > < span class ="n "> user_prompt</ span > < span class ="p "> }],</ span >
441454 < span class ="p "> )</ span >
455+ < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> strip_client_responses</ span > < span class ="p "> :</ span >
456+ < span class ="n "> result</ span > < span class ="p "> [</ span > < span class ="s2 "> "content"</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> result</ span > < span class ="p "> [</ span > < span class ="s2 "> "content"</ span > < span class ="p "> ]</ span > < span class ="o "> .</ span > < span class ="n "> strip</ span > < span class ="p "> (</ span > < span class ="s2 "> " </ span > < span class ="se "> \t\n</ span > < span class ="s2 "> []<></ span > < span class ="se "> \"</ span > < span class ="s2 "> '"</ span > < span class ="p "> )</ span >
442457 < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "say: result=</ span > < span class ="si "> {</ span > < span class ="n "> result</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
443458
444459 < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> history</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> ({</ span > < span class ="s2 "> "role"</ span > < span class ="p "> :</ span > < span class ="s2 "> "user"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "content"</ span > < span class ="p "> :</ span > < span class ="n "> user_prompt</ span > < span class ="p "> })</ span >
@@ -465,7 +480,7 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
465480< span class ="sd "> The session for the tested client.</ span >
466481< span class ="sd "> stop_criterion : Callable[[List[Dict[str, str]]], bool], optional</ span >
467482< span class ="sd "> A function that determines whether to stop the conversation based on the tested client's responses.</ span >
468- < span class ="sd "> history_limit : int</ span >
483+ < span class ="sd "> history_limit : int, optional </ span >
469484< span class ="sd "> The maximum allowed history length for the attacker.</ span >
470485< span class ="sd "> tested_client_response_handler : Callable[..., str], optional</ span >
471486< span class ="sd "> A function that handles the tested client's response before passing it to the attacker.</ span >
@@ -599,7 +614,7 @@ <h1>Source code for llamator.client.chat_client</h1><div class="highlight"><pre>
599614
600615 < span class ="k "> while</ span > < span class ="kc "> True</ span > < span class ="p "> :</ span >
601616 < span class ="c1 "> # Send attacker's response to the tested client and receive tested client's response</ span >
602- < span class ="n "> tested_client_response</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> tested_client_session</ span > < span class ="o "> .</ span > < span class ="n "> say</ span > < span class ="p "> (</ span > < span class ="n "> attacker_response</ span > < span class ="o " > . </ span > < span class =" n " > strip </ span > < span class =" p "> ( </ span > < span class =" s2 " > " </ span > < span class =" se " > \t\n </ span > < span class =" s2 " > []<> </ span > < span class =" se " > \" </ span > < span class =" s2 " > '" </ span > < span class =" p " > ) )</ span >
617+ < span class ="n "> tested_client_response</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> tested_client_session</ span > < span class ="o "> .</ span > < span class ="n "> say</ span > < span class ="p "> (</ span > < span class ="n "> attacker_response</ span > < span class ="p "> )</ span >
603618 < span class ="n "> logger</ span > < span class ="o "> .</ span > < span class ="n "> debug</ span > < span class ="p "> (</ span > < span class ="sa "> f</ span > < span class ="s2 "> "Step </ span > < span class ="si "> {</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> current_step</ span > < span class ="si "> }</ span > < span class ="s2 "> : Tested client response: </ span > < span class ="si "> {</ span > < span class ="n "> tested_client_response</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span > < span class ="p "> )</ span >
604619
605620 < span class ="c1 "> # Check stopping criterion by history</ span >
0 commit comments