feat: add view_image tool and optimize web fetch tools

Add image viewing capability for vision-enabled models with ViewImageMiddleware and view_image_tool. Limit web_fetch tool output to 4096 characters to prevent excessive content. Update model config to support vision capability flag.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
hetao
2026-01-29 13:44:04 +08:00
parent 294a1614b8
commit 9dc2405555
12 changed files with 390 additions and 13 deletions

View File

@@ -70,4 +70,4 @@ def web_fetch_tool(url: str) -> str:
except Exception as e:
return f"Error: {str(e)}"
return f"# {title}\n\n{markdown_content}"
return f"# {title}\n\n{markdown_content[:4096]}"

View File

@@ -25,4 +25,4 @@ def web_fetch_tool(url: str) -> str:
timeout = config.model_extra.get("timeout")
html_content = jina_client.crawl(url, return_format="html", timeout=timeout)
article = readability_extractor.extract_article(html_content)
return article.to_markdown()
return article.to_markdown()[:4096]

View File

@@ -57,6 +57,6 @@ def web_fetch_tool(url: str) -> str:
return f"Error: {res['failed_results'][0]['error']}"
elif "results" in res and len(res["results"]) > 0:
result = res["results"][0]
return f"# {result['title']}\n\n{result['raw_content']}"
return f"# {result['title']}\n\n{result['raw_content'][:4096]}"
else:
return "Error: No results found"