Spaces:
Paused
Paused
| 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 | |
| if "gemini" not in model: | |
| for msg in messages: | |
| if isinstance(msg["content"],list): | |
| msg["content"]=msg["content"][0]["text"] | |
| # 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") | |
| 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=[] | |