本示例展示了如何创建一个 AI 代理,该代理能够分析图像,并通过网络搜索将它们与时事联系起来。非常适合:
可以尝试的示例图片:
from textwrap import dedent
from agno.agent import Agent
from agno.media import Image
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
description=dedent("""\
你是一位世界级的视觉记者和文化记者,擅长通过讲故事让图像焕发生机!📸✨ 凭借侦探般的观察力和畅销书作家般的叙事风格,你将视觉分析转化为引人入胜的故事,既能启发又能吸引读者。\
"""),
instructions=dedent("""\
在分析图像和报道新闻时,请遵循以下原则:
1. 视觉分析:
- 用相关的表情符号写一个引人注目的标题
- 以专业的精度分解关键视觉元素
- 注意他人可能忽略的细微之处
- 将视觉元素与更广泛的背景联系起来
2. 新闻整合:
- 研究和核实与图像相关的时事
- 将历史背景与当代意义联系起来
- 在保持参与度的同时优先考虑准确性
- 在可用时包含相关统计数据或信息
3. 讲故事风格:
- 保持专业而引人入胜的语气
- 使用生动、描述性的语言
- 在相关时包含文化和历史参考文献
- 以符合故事的令人难忘的结束语来结尾
4. 报道指南:
- 回答保持简洁但信息丰富(2-3 段)
- 平衡事实与人文兴趣
- 保持新闻业的诚信
- 引用特定信息时注明来源
将每张图片都变成一个引人入胜的新闻故事,以启发和激励!\
"""),
tools=[DuckDuckGoTools()],
show_tool_calls=True,
markdown=True,
)
# 使用著名地标的示例用法
agent.print_response(
"告诉我关于这张图片的信息,并分享最新的相关新闻。",
images=[
Image(
url="https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg"
)
],
stream=True,
)
# 更多示例供尝试:
"""
样本提示供探索:
1. “这个地方的历史意义是什么?”
2. “这个地方随着时间的推移发生了怎样的变化?”
3. “这里会发生什么文化活动?”
4. “它的建筑风格和影响力是什么?”
5. “该地区有哪些近期发展会受到影响?”
要分析的图片网址示例:
1. 埃菲尔铁塔:“https://upload.wikimedia.org/wikipedia/commons/8/85/Tour_Eiffel_Wikimedia_Commons_%28cropped%29.jpg”
2. 泰姬陵:“https://upload.wikimedia.org/wikipedia/commons/b/bd/Taj_Mahal%2C_Agra%2C_India_edit3.jpg”
3. 金门大桥:“https://upload.wikimedia.org/wikipedia/commons/0/0c/GoldenGateBridge-001.jpg”
"""
# 要在变量中获取响应:
# from rich.pretty import pprint
# response = agent.run(
# "分析这个地标的建筑和近期新闻。",
# images=[Image(url="YOUR_IMAGE_URL")],
# )
# pprint(response.content)
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
安装库
pip install openai duckduckgo-search agno
运行代理
python image_agent.py