OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  VisionAgent — 聚焦视觉任务编排的多模态 Agent 框架

VisionAgent — 聚焦视觉任务编排的多模态 Agent 框架

 
  replication ·  2026-04-18 11:00:26 · 1 次点击  · 0 条评论  
VisionAgent _输入图像/视频和提示 → 获取可运行的视觉代码 → 数分钟内构建视觉AI应用_ [![](https://dcbadge.vercel.app/api/server/wPdN8RCYew?compact=true&style=flat)](https://discord.gg/wPdN8RCYew) ![ci_status](https://github.com/landing-ai/vision-agent/actions/workflows/ci_cd.yml/badge.svg) [![PyPI version](https://badge.fury.io/py/vision-agent.svg)](https://badge.fury.io/py/vision-agent) ![version](https://img.shields.io/pypi/pyversions/vision-agent)

Discord · 架构 · YouTube


VisionAgent 是来自 LandingAI 的视觉AI领航员。给它一个提示和一张图片,它会自动选择合适的视觉模型并输出可直接运行的代码——让你在几分钟内构建出具备视觉能力的应用。你可以通过 examples/chat 中的本地 Web 应用体验 VisionAgent,具体请遵循该目录下的 README.md 说明:

https://github.com/user-attachments/assets/752632b3-dda5-44f1-b27e-5cb4c97757ac

库的安装步骤

获取 VisionAgent API 密钥

最重要的一步是创建账户并获取你的 API 密钥

其他先决条件

为什么需要 Anthropic 和 Google API 密钥?

VisionAgent 使用来自 Anthropic 和 Google 的模型来响应提示并生成代码。

当你运行 VisionAgent 时,应用需要使用你的 API 密钥来访问 Anthropic 和 Google 的模型。这确保了你在 VisionAgent 上运行的项目不会受到 LandingAI 账户的速率限制影响,同时也防止众多用户使 LandingAI 的速率限制过载。

Anthropic 和 Google 各自有其速率限制和付费层级。请参考它们的文档和定价以了解更多信息。

注意: 在 VisionAgent v1.0.2 及更早版本中,VisionAgent 由 Anthropic Claude-3.5 和 OpenAI o1 驱动。如果使用这些版本的 VisionAgent,你需要获取一个 OpenAI API 密钥并将其设置为环境变量。

获取 Anthropic API 密钥

  1. 如果你还没有账户,请创建一个 Anthropic Console 账户
  2. 在 Anthropic Console 中,前往 API 密钥页面。
  3. 生成一个 API 密钥。

获取 Google API 密钥

  1. 如果你还没有账户,请创建一个 Google AI Studio 账户
  2. 在 Google AI Studio 中,前往 获取 API 密钥页面。
  3. 生成一个 API 密钥。

安装

使用 uv 安装:

uv add vision-agent

使用 pip 安装:

pip install vision-agent

快速开始:向 VisionAgent 提问

遵循此快速开始指南,学习如何向 VisionAgent 提问。掌握基础后,你可以自定义提示和工作流以满足你的需求。

  1. 获取你的 Anthropic、Google 和 VisionAgent API 密钥。
  2. 将 Anthropic、Google 和 VisionAgent API 密钥设置为环境变量
  3. 安装 VisionAgent
  4. 创建一个名为 quickstart 的文件夹。
  5. 找到一张你想要分析的图片,并将其保存到 quickstart 文件夹。
  6. 示例脚本复制到一个名为 source.py 的文件中。将该文件保存到 quickstart 文件夹。
  7. 运行 source.py
  8. VisionAgent 会创建一个名为 generated_code.py 的文件,并将生成的代码保存在其中。

将 API 密钥设置为环境变量

在运行 VisionAgent 代码之前,你必须将 Anthropic、Google 和 VisionAgent API 密钥设置为环境变量。每个操作系统提供了不同的设置方法。

以下是设置变量的代码:

export VISION_AGENT_API_KEY="your-api-key"
export ANTHROPIC_API_KEY="your-api-key"
export GOOGLE_API_KEY="your-api-key" 

示例脚本:向 VisionAgent 提问

要使用 VisionAgent 生成代码,可以使用以下脚本作为起点:

# 从 VisionAgent 包中导入所需的类
from vision_agent.agent import VisionAgentCoderV2
from vision_agent.models import AgentMessage

# 启用详细输出
agent = VisionAgentCoderV2(verbose=True)

# 添加你的提示(内容)和图像文件(媒体)
code_context = agent.generate_code(
    [
        AgentMessage(
            role="user",
            content="Describe the image",
            media=["friends.jpg"]
        )
    ]
)

# 将输出写入文件
with open("generated_code.py", "w") as f:
    f.write(code_context.code + "\n" + code_context.test)

向 VisionAgent 提问时会发生什么

当你提交一个提示时,VisionAgent 会执行以下任务。

  1. 为代码生成任务生成一个计划。如果启用了详细输出,则会显示此计划的编号步骤。
  2. 基于该计划生成代码和测试用例。
  3. 使用测试用例测试生成的代码。如果测试用例失败,VisionAgent 会迭代代码生成过程,直到测试用例通过。

示例:统计图像中的易拉罐数量

查看此 Jupyter Notebook,了解如何使用 VisionAgent 来统计图像中的易拉罐数量:

统计图像中的易拉罐数量

使用 VisionAgent 中的特定工具

VisionAgent 库包含一套工具,这些是完成特定任务的独立模型或函数。当你向 VisionAgent 提问时,VisionAgent 会选择其中一个或多个工具来完成你提示中概述的任务。

例如,如果你提示 VisionAgent “统计图像中的狗的数量”,VisionAgent 可能会使用 florence2_object_detection 工具来检测所有的狗,然后使用 countgd_object_detection 工具来统计检测到的狗的数量。

安装 VisionAgent 库后,你也可以在自己的脚本中使用这些工具。例如,如果你正在编写一个跟踪视频中对象的脚本,你可以调用 owlv2_sam2_video_tracking 函数。换句话说,你可以在单纯向 VisionAgent 提问之外使用这些工具。

这些工具位于 vision_agent.tools API 中。

示例脚本:为图像使用特定工具

你可以调用 countgd_object_detection 函数来统计图像中的对象数量。

为此,你可以运行以下脚本:

# 导入 VisionAgent 工具库;导入 Matplotlib 以可视化结果
import vision_agent.tools as T
import matplotlib.pyplot as plt

# 加载图像
image = T.load_image("people.png")

# 调用函数统计图像中的对象,并指定你想统计人
dets = T.countgd_object_detection("person", image)

# 在图像上可视化 countgd 的边界框
viz = T.overlay_bounding_boxes(image, dets)

# 将可视化结果保存到文件
T.save_image(viz, "people_detected.png")

# 显示可视化结果
plt.imshow(viz)
plt.show()

示例脚本:为视频使用特定工具

你可以调用 countgd_sam2_video_tracking 函数来跟踪视频中的人,并将其与 extract_frames_and_timestamps 函数配对,以返回这些人出现的帧和时间戳。

为此,你可以运行以下脚本:

# 导入 VisionAgent 工具库
import vision_agent.tools as T

# 调用函数获取帧和时间戳
frames_and_ts = T.extract_frames_and_timestamps("people.mp4")

# 从 frames_and_ts 列表中提取帧
frames = [f["frame"] for f in frames_and_ts]

# 调用函数跟踪对象,并指定你想跟踪人
tracks = T.countgd_sam2_video_tracking("person", frames)

# 在帧上可视化 countgd 跟踪结果并保存视频
viz = T.overlay_segmentation_masks(frames, tracks)
T.save_video(viz, "people_detected.mp4")

使用其他 LLM 提供商

VisionAgent 使用 Anthropic Claude 3.7 SonnetGemini Flash 2.0 Experimental (gemini-2.0-flash-exp) 来响应提示并生成代码。我们发现这些模型为 VisionAgent 提供了最佳性能,并且在其提供商的免费层级(有速率限制)中可用。

如果你希望仅使用其中一个模型或一组不同的模型,可以更改此文件中的选定 LLM 提供商:vision_agent/configs/config.py。你还必须将提供商的 API 密钥添加为环境变量

例如,如果你想使用 Anthropic 模型,请运行以下命令:

cp vision_agent/configs/anthropic_config.py vision_agent/configs/config.py

或者,你也可以在 config.py 文件中手动输入模型详细信息。例如,如果你想将规划器模型从 Anthropic 更改为 OpenAI,你需要将以下代码:

    planner: Type[LMM] = Field(default=AnthropicLMM)
    planner_kwargs: dict = Field(
        default_factory=lambda: {
            "model_name": "claude-3-7-sonnet-20250219",
            "temperature": 0.0,
            "image_size": 768,
        }
    )

替换为此代码:

    planner: Type[LMM] = Field(default=OpenAILMM)
    planner_kwargs: dict = Field(
        default_factory=lambda: {
            "model_name": "gpt-4o-2024-11-20",
            "temperature": 0.0,
            "image_size": 768,
            "image_detail": "low",
        }
    )

资源

  • Discord:加入我们的 VisionAgent 用户社区,分享用例并了解更新。
  • VisionAgent 库文档:学习如何使用此库。
  • 视频教程:观看最新的视频教程,了解 VisionAgent 在各种用例中的应用。
1 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 16 ms
Developed with Cursor