Add option to disable Bing ai jailbreak mode
This commit is contained in:
parent
09596c1990
commit
599d186ba7
3 changed files with 21 additions and 8 deletions
18
bing.py
18
bing.py
|
@ -10,13 +10,18 @@ python_boolean_to_json = {
|
||||||
|
|
||||||
|
|
||||||
class BingBot:
|
class BingBot:
|
||||||
def __init__(self, bing_api_endpoint: str):
|
def __init__(self, bing_api_endpoint: str, jailbreakEnabled: bool = False):
|
||||||
self.data = {
|
self.data = {
|
||||||
'jailbreakConversationId': json.dumps(python_boolean_to_json['true']),
|
# 'jailbreakConversationId': json.dumps(python_boolean_to_json['true']),
|
||||||
'clientOptions.clientToUse': 'bing'
|
'clientOptions.clientToUse': 'bing',
|
||||||
}
|
}
|
||||||
self.bing_api_endpoint = bing_api_endpoint
|
self.bing_api_endpoint = bing_api_endpoint
|
||||||
|
|
||||||
|
self.jailbreakEnabled = jailbreakEnabled
|
||||||
|
|
||||||
|
if self.jailbreakEnabled:
|
||||||
|
self.data['jailbreakConversationId'] = json.dumps(python_boolean_to_json['true'])
|
||||||
|
|
||||||
async def ask_bing(self, prompt) -> str:
|
async def ask_bing(self, prompt) -> str:
|
||||||
self.data['message'] = prompt
|
self.data['message'] = prompt
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
|
@ -34,9 +39,14 @@ class BingBot:
|
||||||
await asyncio.sleep(2)
|
await asyncio.sleep(2)
|
||||||
continue
|
continue
|
||||||
json_body = json.loads(body)
|
json_body = json.loads(body)
|
||||||
# print(json_body['jailbreakConversationId'])
|
if self.jailbreakEnabled:
|
||||||
self.data['jailbreakConversationId'] = json_body['jailbreakConversationId']
|
self.data['jailbreakConversationId'] = json_body['jailbreakConversationId']
|
||||||
self.data['parentMessageId'] = json_body['messageId']
|
self.data['parentMessageId'] = json_body['messageId']
|
||||||
|
else:
|
||||||
|
self.data['conversationSignature'] = json_body['conversationSignature']
|
||||||
|
self.data['conversationId'] = json_body['conversationId']
|
||||||
|
self.data['clientId'] = json_body['clientId']
|
||||||
|
self.data['invocationId'] = json_body['invocationId']
|
||||||
return json_body['response']
|
return json_body['response']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Error Exception", exc_info=True)
|
logger.error("Error Exception", exc_info=True)
|
||||||
|
|
4
bot.py
4
bot.py
|
@ -31,6 +31,7 @@ class Bot:
|
||||||
room_id: Optional[str] = '',
|
room_id: Optional[str] = '',
|
||||||
bing_api_endpoint: Optional[str] = '',
|
bing_api_endpoint: Optional[str] = '',
|
||||||
access_token: Optional[str] = '',
|
access_token: Optional[str] = '',
|
||||||
|
jailbreakEnabled: Optional[bool] = False,
|
||||||
):
|
):
|
||||||
self.homeserver = homeserver
|
self.homeserver = homeserver
|
||||||
self.user_id = user_id
|
self.user_id = user_id
|
||||||
|
@ -39,6 +40,7 @@ class Bot:
|
||||||
self.room_id = room_id
|
self.room_id = room_id
|
||||||
self.api_key = api_key
|
self.api_key = api_key
|
||||||
self.bing_api_endpoint = bing_api_endpoint
|
self.bing_api_endpoint = bing_api_endpoint
|
||||||
|
self.jailbreakEnabled = jailbreakEnabled
|
||||||
# initialize AsyncClient object
|
# initialize AsyncClient object
|
||||||
self.store_path = os.getcwd()
|
self.store_path = os.getcwd()
|
||||||
self.config = AsyncClientConfig(store=SqliteStore,
|
self.config = AsyncClientConfig(store=SqliteStore,
|
||||||
|
@ -72,7 +74,7 @@ class Bot:
|
||||||
|
|
||||||
# initialize bingbot
|
# initialize bingbot
|
||||||
if self.bing_api_endpoint != '':
|
if self.bing_api_endpoint != '':
|
||||||
self.bingbot = BingBot(bing_api_endpoint)
|
self.bingbot = BingBot(bing_api_endpoint, jailbreakEnabled=self.jailbreakEnabled)
|
||||||
|
|
||||||
# message_callback event
|
# message_callback event
|
||||||
async def message_callback(self, room: MatrixRoom, event: RoomMessageText) -> None:
|
async def message_callback(self, room: MatrixRoom, event: RoomMessageText) -> None:
|
||||||
|
|
3
main.py
3
main.py
|
@ -14,7 +14,8 @@ async def main():
|
||||||
room_id=config.get('room_id', ''),
|
room_id=config.get('room_id', ''),
|
||||||
api_key=config.get('api_key', ''),
|
api_key=config.get('api_key', ''),
|
||||||
bing_api_endpoint=config.get('bing_api_endpoint', ''),
|
bing_api_endpoint=config.get('bing_api_endpoint', ''),
|
||||||
access_token=config.get('access_token', '')
|
access_token=config.get('access_token', ''),
|
||||||
|
jailbreakEnabled=config.get('jailbreakEnabled', False),
|
||||||
)
|
)
|
||||||
if config.get('access_token', '') == '':
|
if config.get('access_token', '') == '':
|
||||||
await matrix_bot.login()
|
await matrix_bot.login()
|
||||||
|
|
Loading…
Reference in a new issue