import re import helpers.helper as helper import requests import json import os from function_support import _function def extract_links(text): # Regular expression pattern to match URLs url_pattern = r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+' # Find all matches of the URL pattern in the text urls = re.findall(url_pattern, text) return urls def allocate(messages,api_keys,model,functs): helper.models=model try: del helper.data["imageURL"] except: pass try: del helper.data["context"] except: pass for msg in messages: if isinstance(msg["content"],list): for msgs in msg["content"]: if msgs["type"]=="image_url": if "base64," in msgs["image_url"]: helper.data["imageBase64"]=msgs["image_url"] print(helper.data["imageBase64"]+"base") else: helper.data["imageURL"]=msgs["image_url"]["url"] print(helper.data["imageURL"]+"a") msg["content"]=msg["content"][0]["text"] for msg in messages: if "tool" in msg["role"]: msg["role"]="user" msg["content"]=f"Tool {msg['name']} returned response: {msg['content']}. Now you must output the next tool Call or respond to user in natural language after the task has been completed. " del msg['name'] del msg["tool_call_id"] if "tool_calls" in msg: add="" for tools in msg["tool_calls"]: add=f""" ```json [ {{ "tool":"{tools["function"]["name"]}", "tool_input":{tools["function"]["arguments"]} }} ] ```""" msg["content"]=add del msg["tool_calls"] if functs !=[]: print("ADDDDDDDDDDDDDDDDING TOOOOLS") function_call=_function(tools=functs) messages.insert(1,{"role": "system", "content": function_call}) print(messages) file=open("static/messages.json","a") file.write(str(messages) ) file.close() helper.filen=[] def ask(query,prompt,api_endpoint,output={}): if output=={}: python_boolean_to_json = { "true": True, } data = { 'jailbreakConversationId': json.dumps(python_boolean_to_json['true']), "systemMessage":prompt, "message":query, "toneStyle":"turbo", "plugins":{"search":False}, # "persona":"sydney" } try: data["imageURL"]=helper.data["imageURL"] except: pass resp=requests.post(api_endpoint, json=data,timeout=80) return resp.json()["response"] else: resp=requests.post(api_endpoint, json=output) return resp.json()