Spaces:
Building
Building
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() | |