|
|
@@ -1,8 +1,9 @@
|
|
|
"""
|
|
|
-NanoBanana Tool - 通过 OpenRouter 提取图像不变特征
|
|
|
+NanoBanana Tool - 图像特征提取与图像生成
|
|
|
|
|
|
-该工具将单张图像发送给多模态模型(可配置为 NanoBanana 对应模型),
|
|
|
-返回结构化的不变特征,并将结果保存为 JSON 文件。
|
|
|
+该工具可以提取图片中的特征,也可以根据描述生成图片。
|
|
|
+支持通过 OpenRouter 调用多模态模型,提取结构化的图像特征并保存为 JSON,
|
|
|
+或基于输入图像生成新的图像。
|
|
|
"""
|
|
|
|
|
|
import base64
|
|
|
@@ -213,7 +214,7 @@ def _normalize_model_id(model_id: str) -> str:
|
|
|
return m
|
|
|
|
|
|
|
|
|
-@tool(description="使用 OpenRouter 多模态模型(NanoBanana 兼容)提取图像不变特征")
|
|
|
+@tool(description="可以提取图片中的特征,也可以根据描述生成图片")
|
|
|
async def nanobanana_extract_features(
|
|
|
image_path: str = "",
|
|
|
image_paths: Optional[List[str]] = None,
|
|
|
@@ -225,20 +226,20 @@ async def nanobanana_extract_features(
|
|
|
image_output_path: Optional[str] = None,
|
|
|
) -> ToolResult:
|
|
|
"""
|
|
|
- 提取图像中的不变特征并保存为 JSON。
|
|
|
+ 可以提取图片中的特征,也可以根据描述生成图片。
|
|
|
|
|
|
Args:
|
|
|
image_path: 输入图片路径(单图模式,可选)
|
|
|
image_paths: 输入图片路径列表(多图整体模式,可选)
|
|
|
- output_file: 输出 JSON 文件路径(可选)
|
|
|
- prompt: 自定义提取指令(可选)
|
|
|
+ output_file: 输出 JSON 文件路径(可选,用于特征提取模式)
|
|
|
+ prompt: 自定义提取指令或生成描述(可选)
|
|
|
model: OpenRouter 模型名(可选,默认读取 NANOBANANA_MODEL 或使用 Gemini 视觉模型)
|
|
|
max_tokens: 最大输出 token
|
|
|
- generate_image: 是否生成图片(False=提取JSON,True=生成图片)
|
|
|
+ generate_image: 是否生成图片(False=提取特征,True=生成图片)
|
|
|
image_output_path: 生成图片保存路径(generate_image=True 时可选)
|
|
|
|
|
|
Returns:
|
|
|
- ToolResult: 包含结构化特征和输出文件路径
|
|
|
+ ToolResult: 包含结构化特征和输出文件路径,或生成的图片路径
|
|
|
"""
|
|
|
raw_paths: List[str] = []
|
|
|
if image_paths:
|