vision-agent

vision-agent

开源AI代理库用于生成计算机视觉代码

Vision Agent是一个开源库,通过AI代理框架快速生成计算机视觉任务代码。用户可以用文本描述问题,AI代理会生成相应的解决方案。该库包括对话型VisionAgent和代码生成型VisionAgentCoder两种代理,提供多种视觉工具,支持自定义工具添加,并可与Azure OpenAI集成。Vision Agent能将解决视觉问题的时间大幅缩短,提高开发效率。

Vision Agent计算机视觉AI代码生成OpenAI API图像处理Github开源项目
<div align="center"> <img alt="vision_agent" height="200px" src="https://yellow-cdn.veclightyear.com/835a84d5/da7860a9-2609-4741-a387-d49d6c7f8dd3.jpg?raw=true">

🔍🤖 视觉代理

ci_状态 PyPI 版本 版本

</div>

视觉代理是一个库,帮助您利用代理框架生成代码来解决视觉任务。许多当前的视觉问题可能需要花费数小时或数天时间来解决,您需要找到合适的模型,弄清楚如何使用它,并编程实现您想要完成的任务。视觉代理旨在通过允许用户以文本形式描述他们的问题,让代理框架生成代码来解决任务,从而提供秒级体验。请查看我们的Discord以获取更新和路线图!

网络应用

va.landing.ai 上试用视觉代理(注意,这可能不是最新版本)

文档

视觉代理库文档

入门指南

安装

要开始使用,您可以使用pip安装库:

pip install vision-agent

确保您有一个OpenAI API密钥,并将其设置为环境变量(如果您使用Azure OpenAI,请参阅Azure设置部分):

export OPENAI_API_KEY="your-api-key"

视觉代理

有两种代理可供使用。视觉代理是一个会话代理,可以访问允许它编写和导航Python代码和文件系统的工具。它可以用自然语言与用户交谈。视觉代理编码器是一个可以为视觉任务编写代码的代理,比如计算图像中的人数。但是,它不能进行对话,只能用代码回应。视觉代理可以调用视觉代理编码器来编写视觉代码。

基本用法

要在本地运行streamlit应用程序与视觉代理聊天,您可以运行以下命令:

pip install -r examples/chat/requirements.txt export WORKSPACE=/path/to/your/workspace export ZMQ_PORT=5555 streamlit run examples/chat/app.py

您可以在这里找到有关streamlit应用程序的更多详细信息。

基本编程用法

>>> from vision_agent.agent import VisionAgent >>> agent = VisionAgent() >>> resp = agent("Hello") >>> print(resp) [{"role": "user", "content": "Hello"}, {"role": "assistant", "content": "{'thoughts': '用户向我打招呼了。我将回应一个问候并询问我能如何帮助他们。', 'response': '你好!今天我能为您提供什么帮助?', 'let_user_respond': True}"}] >>> resp.append({"role": "user", "content": "你能数一下这张图片中有多少人吗?", "media": ["people.jpg"]}) >>> resp = agent(resp)

视觉代理编码器

基本用法

您可以像与任何LLM或LMM模型交互一样与代理交互:

>>> from vision_agent.agent import VisionAgentCoder >>> agent = VisionAgentCoder() >>> code = agent("罐子中咖啡豆占据了多大比例的面积?", media="jar.jpg")

这将生成以下代码:

from vision_agent.tools import load_image, grounding_sam def calculate_filled_percentage(image_path: str) -> float: # 步骤1:加载图像 image = load_image(image_path) # 步骤2:分割罐子 jar_segments = grounding_sam(prompt="jar", image=image) # 步骤3:分割咖啡豆 coffee_beans_segments = grounding_sam(prompt="coffee beans", image=image) # 步骤4:计算分割后的罐子面积 jar_area = 0 for segment in jar_segments: jar_area += segment['mask'].sum() # 步骤5:计算分割后的咖啡豆面积 coffee_beans_area = 0 for segment in coffee_beans_segments: coffee_beans_area += segment['mask'].sum() # 步骤6:计算咖啡豆占罐子面积的百分比 if jar_area == 0: return 0.0 # 避免除以零 filled_percentage = (coffee_beans_area / jar_area) * 100 # 步骤7:返回计算得出的百分比 return filled_percentage

要更好地理解模型是如何得出答案的,您可以通过传入verbose参数来以调试模式运行:

>>> agent = VisionAgentCoder(verbose=2)

详细用法

您还可以通过调用chat_with_workflow来获取更多信息。输入格式是一个包含键rolecontentmedia的字典列表:

>>> results = agent.chat_with_workflow([{"role": "user", "content": "罐子面积的百分之多少被咖啡豆填满了?", "media": ["jar.jpg"]}]) >>> print(results) { "code": "from vision_agent.tools import ..." "test": "calculate_filled_percentage('jar.jpg')", "test_result": "...", "plan": [{"code": "...", "test": "...", "plan": "..."}, ...], "working_memory": ..., }

通过这种方式,您可以检查更详细的信息,如测试代码、测试结果、完成任务所使用的计划或工作记忆。

多轮对话

您也可以与vision-agent进行多轮对话,对代码提供反馈并让它更新。您只需要将代码作为助手的回复添加:

agent = va.agent.VisionAgent(verbosity=2) conv = [ { "role": "user", "content": "这些工人是否穿戴了安全装备?只输出True或False值。", "media": ["workers.png"], } ] result = agent.chat_with_workflow(conv) code = result["code"] conv.append({"role": "assistant", "content": code}) conv.append( { "role": "user", "content": "你能否也返回穿戴安全装备的工人数量?", } ) result = agent.chat_with_workflow(conv)

工具

模型或用户可以使用各种工具。有些在本地执行,而其他则是为您托管的。您还可以直接要求LMM为您构建工具。例如:

>>> import vision_agent as va >>> lmm = va.lmm.OpenAILMM() >>> detector = lmm.generate_detector("你能为我构建一个罐子检测器吗?") >>> detector(va.tools.load_image("jar.jpg")) [{"labels": ["jar",], "scores": [0.99], "bboxes": [ [0.58, 0.2, 0.72, 0.45], ] }]

您还可以向代理添加自定义工具:

import vision_agent as va import numpy as np @va.tools.register_tool(imports=["import numpy as np"]) def custom_tool(image_path: str) -> str: """我的自定义工具文档。 参数: image_path (str): 图像的路径。 返回: str: 工具的结果。 示例 ------- >>> custom_tool("image.jpg") """ return np.zeros((10, 10))

您需要确保使用@va.tools.register_tool调用它使用的任何导入。全局变量不会被register_tool捕获,所以您需要将它们包含在函数中。确保文档格式与上面相同,包括描述、参数:返回:示例\n-------。您可以在这里找到一个用例示例,因为这是代理用来选择和使用工具的方式。

Azure设置

如果您想使用Azure OpenAI模型,您需要有两个OpenAI模型部署:

  1. OpenAI GPT-4o模型
  2. OpenAI文本嵌入模型
<img width="1201" alt="Screenshot 2024-06-12 at 5 54 48 PM" src="https://github.com/landing-ai/vision-agent/assets/2736300/da125592-b01d-45bc-bc99-d48c9dcdfa32">

然后您可以设置以下环境变量:

export AZURE_OPENAI_API_KEY="您的api密钥" export AZURE_OPENAI_ENDPOINT="您的端点" # 您的Azure OpenAI聊天模型的部署名称 export AZURE_OPENAI_CHAT_MODEL_DEPLOYMENT_NAME="您的gpt4o模型部署名称" # 您的Azure OpenAI文本嵌入模型的部署名称 export AZURE_OPENAI_EMBEDDING_MODEL_DEPLOYMENT_NAME="您的嵌入模型部署名称"

注意:确保您的Azure模型部署有足够的配额(每分钟令牌数)来支持它。默认值8000TPM是不够的。

然后您可以使用Azure OpenAI模型运行Vision Agent:

import vision_agent as va agent = va.agent.AzureVisionAgentCoder()

问答

如何开始使用OpenAI API积分

  1. 访问OpenAI API平台注册API密钥。
  2. 按照说明购买和管理您的API积分。
  3. 确保您的API密钥在项目设置中正确配置。

如果没有足够的API积分,可能会导致依赖OpenAI API的功能受限或无法使用。

有关管理API使用和积分的更多详细信息,请参阅OpenAI API文档。

编辑推荐精选

音述AI

音述AI

全球首个AI音乐社区

音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。

QoderWork

QoderWork

阿里Qoder团队推出的桌面端AI智能体

QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。

lynote.ai

lynote.ai

一站式搞定所有学习需求

不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。

AniShort

AniShort

为AI短剧协作而生

专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。

seedancetwo2.0

seedancetwo2.0

能听懂你表达的视频模型

Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。

nano-banana纳米香蕉中文站

nano-banana纳米香蕉中文站

国内直接访问,限时3折

输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

下拉加载更多