图片输入¶
把图片和问题放在同一条消息中,让支持视觉的模型描述或分析图片。
读取本地图片¶
完成模型配置,选择支持图片输入的模型,准备一张 PNG 或 JPEG 图片:
python examples/runtime/multimodal.py /你的路径/diagram.png
import argparse
import asyncio
import base64
import mimetypes
import os
from pathlib import Path
import bumblehive
async def main(path: Path) -> None:
image = base64.b64encode(path.read_bytes()).decode("ascii")
mime = mimetypes.guess_type(path.name)[0] or "image/png"
config = bumblehive.RuntimeArguments(
model=os.environ["BUMBLEHIVE_MODEL"],
api_key=os.environ["BUMBLEHIVE_API_KEY"],
base_url=os.environ["BUMBLEHIVE_BASE_URL"],
skill_names=[],
tool_names=[],
)
async with bumblehive.from_config(config) as runtime:
result = await runtime.run([{
"role": "user",
"content": [
{"type": "text", "text": "描述这张图片。"},
{"type": "image_url", "image_url": {
"url": f"data:{mime};base64,{image}",
}},
],
}])
print(result.error.message if result.error else result.final_content)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("image", type=Path)
asyncio.run(main(parser.parse_args().image))
代码将图片编码为 Base64 Data URL,与文字一起放入 content。不需要给 Agent 开放文件工具。
运行后会打印模型对图片的描述。支持的格式和图片大小以模型服务的要求为准。
使用远程图片¶
将 image_url.url 换成模型服务可以访问的 HTTPS 图片地址,即可省略本地文件读取和 Base64 编码:
{"type": "image_url", "image_url": {"url": image_url}}