|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from config import REASONING_STEPS, REASONING_DEFAULT |
|
|
|
|
|
def tool_reasoning(tool_name, tool_arguments, stage, error=None, result=None): |
|
|
if tool_name == "web_search": |
|
|
query = tool_arguments.get("query", "") if tool_arguments else "" |
|
|
engine = tool_arguments.get("engine", "google") if tool_arguments else "google" |
|
|
|
|
|
template = REASONING_STEPS.get("web_search", {}).get(stage) |
|
|
|
|
|
if template: |
|
|
if stage == "completed": |
|
|
preview = result[:300] + "..." if result and len(result) > 300 else result |
|
|
return template.format(query=query, engine=engine, preview=preview) |
|
|
elif stage == "error": |
|
|
return template.format(query=query, engine=engine, error=error) |
|
|
else: |
|
|
return template.format(query=query, engine=engine) |
|
|
|
|
|
elif tool_name == "read_url": |
|
|
url = tool_arguments.get("url", "") if tool_arguments else "" |
|
|
|
|
|
template = REASONING_STEPS.get("read_url", {}).get(stage) |
|
|
|
|
|
if template: |
|
|
if stage == "completed": |
|
|
preview = result[:300] + "..." if result and len(result) > 300 else result |
|
|
return template.format(url=url, preview=preview) |
|
|
elif stage == "error": |
|
|
return template.format(url=url, error=error) |
|
|
else: |
|
|
return template.format(url=url) |
|
|
|
|
|
return REASONING_DEFAULT |