diff --git a/aixplain/modules/agent/__init__.py b/aixplain/modules/agent/__init__.py index b7aad7aa..c436b84a 100644 --- a/aixplain/modules/agent/__init__.py +++ b/aixplain/modules/agent/__init__.py @@ -36,6 +36,7 @@ from aixplain.modules.agent.tool import Tool from aixplain.modules.agent.tool.model_tool import ModelTool from aixplain.modules.agent.tool.pipeline_tool import PipelineTool +from aixplain.modules.agent.utils import process_variables from typing import Dict, List, Text, Optional, Union from urllib.parse import urljoin @@ -238,9 +239,12 @@ def run_async( headers = {"x-api-key": self.api_key, "Content-Type": "application/json"} + # build query + input_data = process_variables(query, data, parameters, self.description) + payload = { "id": self.id, - "query": FileFactory.to_link(query), + "query": input_data, "sessionId": session_id, "history": history, "executionParams": { diff --git a/aixplain/modules/agent/utils.py b/aixplain/modules/agent/utils.py new file mode 100644 index 00000000..03de61d1 --- /dev/null +++ b/aixplain/modules/agent/utils.py @@ -0,0 +1,22 @@ +from typing import Dict, Text, Union +import re + + +def process_variables(query: Text, data: Union[Dict, Text], parameters: Dict, agent_description: Text) -> Text: + from aixplain.factories.file_factory import FileFactory + + variables = re.findall(r"(?