From fe88b57dfa06ff392f2045400e1a4fe71c5a2237 Mon Sep 17 00:00:00 2001 From: Heiner Lohaus Date: Wed, 1 Jan 2025 14:10:48 +0100 Subject: Add File API Documentation for Python and JS --- g4f/tools/run_tools.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'g4f') diff --git a/g4f/tools/run_tools.py b/g4f/tools/run_tools.py index b3febfcd..c283786e 100644 --- a/g4f/tools/run_tools.py +++ b/g4f/tools/run_tools.py @@ -42,6 +42,19 @@ async def async_iter_run_tools(async_iter_callback, model, messages, tool_calls: last_line = messages[-1]["content"].strip().splitlines()[-1] content = f"Continue after this line.\n{last_line}" messages.append({"role": "user", "content": content}) + elif tool.get("function", {}).get("name") == "bucket_tool": + def on_bucket(match): + return "".join(read_bucket(get_bucket_dir(match.group(1)))) + has_bucket = False + for message in messages: + if "content" in message and isinstance(message["content"], str): + new_message_content = re.sub(r'{"bucket_id":"([^"]*)"}', on_bucket, message["content"]) + if new_message_content != message["content"]: + has_bucket = True + message["content"] = new_message_content + if has_bucket and isinstance(messages[-1]["content"], str): + messages[-1]["content"] += BUCKET_INSTRUCTIONS + response = async_iter_callback(model=model, messages=messages, **kwargs) if not hasattr(response, "__aiter__"): response = to_async_iterator(response) @@ -95,5 +108,5 @@ def iter_run_tools( message["content"] = new_message_content if has_bucket and isinstance(messages[-1]["content"], str): messages[-1]["content"] += BUCKET_INSTRUCTIONS - print(messages[-1]) + return iter_callback(model=model, messages=messages, provider=provider, **kwargs) \ No newline at end of file -- cgit v1.2.3