Token导航 LogoToken导航TokenDH.com
AI Photography Coach Agents logo
设计创作stdio官方级别未说明来源级核验

AI Photography Coach Agents

MCP Server

一个基于Google Gemini多智能体架构的AI摄影教练系统,提供个性化摄影技术分析与构图建议。

工具数

3

提示词数

0

GitHub Stars

1

资源数

0
多智能体系统PythonClaudeClaude DesktopClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

prasadt1

提供方

prasadt1

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

📷 AI摄影教练——多智能体系统

![Python](https://www.python.org/downloads/) ![Gemini](https://ai.google.dev/) ![Streamlit](https://streamlit.io/) ![License](LICENSE) ](Dockerfile)

一个使用Google Gemini多代理架构的智能、生产就绪的人工智能摄影指导系统。

作为 谷歌人工智能代理密集项目 –展示多智能体系统、LLM集成和生产级工程的实际应用。

______________________________________________________________________

🎯 它做什么

上传任何照片并获取 个性化、人工智能驱动的摄影指导 即:

  • ✅ 分析技术设置(EXIF:ISO、光圈、快门速度、焦距)
  • ✅ 检测构图问题(三分法、景深、构图)
  • ✅ 通过以下方式提供情境感知辅导 谷歌双子座1.5 Flash
  • ✅ 记住多回合对话的对话历史
  • ✅ 根据您的问题和照片细节调整建议

没有通用教程 –每个回复都是由Gemini根据您的照片和问题动态生成的。

______________________________________________________________________

🚀 快速入门(3分钟)

1.克隆和安装

git clone https://github.com/prasadt1/ai-photography-coach-agents.git
cd ai-photography-coach-agents
pip install -r requirements.txt

2.设置API密钥

export GOOGLE_API_KEY="your_gemini_api_key_here"

获取您的免费API密钥:https://aistudio.google.com/app/apikey

3.启动应用程序

python3 -m streamlit run agents_capstone/app_streamlit.py

打开 http://localhost:8501 → 上传照片→ 开始聊天! 🎉

______________________________________________________________________

🏢 生产部署模式

该系统演示 弹性架构 –相同的核心代理部署在多个平台上,没有代码重复:

1.谷歌云(ADK-生产)

使用正式的ADK工具部署到顶点AI代理引擎:

from agents_capstone.adk_tools import TOOLS

# TOOLS contains formal schemas for Vertex AI
# - analyze_photo_tool: Vision analysis
# - coach_on_photo_tool: Coaching with RAG citations

# Use with ADK Runner
runner = ADKRunner(tools=TOOLS)

演示: python3 demo_adk.py

特征:

  • ✅ 完整的JSON输入/输出模式
  • ✅ 输入验证和错误处理
  • ✅ 与Vertex AI代理引擎兼容
  • ✅ 生产级工具定义

2.克劳德桌面(MCP协议)

将代理作为JSON-RPC工具公开,用于Claude Desktop集成:

./run_mcp_server.sh

在以下位置配置: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "photography-coach": {
      "command": "/path/to/run_mcp_server.sh",
      "args": []
    }
  }
}

演示: python3 demo_mcp.py

特征:

  • ✅ JSON-RPC 2.0协议合规性
  • ✅ 3个工具(分析、指导、历史)
  • ✅ 与Claude Desktop和VS Code MCP配合使用
  • ✅ 异步工具执行

3.Web界面(Streamlit)

用户友好的web UI,用于演示和原型制作:

python3 -m streamlit run agents_capstone/app_streamlit.py

特征:

  • ✅ 拖放照片上传
  • ✅ 聊天风格的对话界面
  • ✅ 实时EXIF显示
  • ✅ 调试可观察性面板

4.Python API(自定义集成)

用于自定义应用程序的直接代理导入:

from agents_capstone.agents import Orchestrator, VisionAgent, KnowledgeAgent

orchestrator = Orchestrator(VisionAgent(), KnowledgeAgent())
result = orchestrator.run(
    user_id="user123",
    image_path="photo.jpg",
    query="How can I improve this?"
)

🎯 关键设计原则

所有部署模式都使用 相同的核心代理 (agents/orchestrator.py, vision_agent.py, knowledge_agent.py).包装纸(adk_tools.py, tools/mcp_server.py, app_streamlit.py)增加协议合规性 不重复业务逻辑.

这表明:

  • ✅ 清晰地分离关注点
  • ✅ 可重用代理架构
  • ✅ 生产就绪模式
  • ✅ 多平台部署灵活性

______________________________________________________________________

🎥 演示

🚀 现场试用: ai-photography-coach.streamlit.app *(需要免费的Google Gemini API密钥)*

📺 观看演示: YouTube-2:38分钟

查看运行中的系统:

  • 实时照片上传和EXIF提取
  • 实时Gemini辅导响应
  • 多回合上下文对话
  • 评价结果(8.5/10平均分)

______________________________________________________________________

⭐ 主要特点

🤖 多代理架构

  • 愿景代理 –Gemini Vision API,用于AI驱动成分分析,存在严重问题
  • 知识代理 –动态Gemini 1.5 Flash辅导与代理RAG集成
  • 编排器 –会话管理、内存持久性、上下文压缩
  • MCP服务器 –克劳德桌面和VS代码集成的模型上下文协议
  • ADK工具 –Google Vertex AI代理引擎部署的正式代理

🧠 智能教练

  • 上下文感知 –记住会话中的对话历史记录
  • 动态LLM响应 –Gemini新生成的每个答案(不是模板!)
  • 多回合对话 –询问后续情况,系统会根据记忆进行调整
  • 个性化 –参考照片的实际EXIF数据和检测到的问题
  • 代理式检索增强生成 –混合CASCADE检索(精选知识→ FAISS回退),引用有根据
  • 结构化分析 –严重性(低/中/高)的问题检测和可操作的建议
  • 强度检测 –确定你做得对的地方,而不仅仅是问题

📊 生产级特征

  • 可观测性 –结构化日志记录、延迟跟踪、调试面板
  • 评估 –法学硕士作为评判框架(相关性、完整性、准确性、可操作性)
  • 持久性 –SQLite支持的会话存储,具有上下文压缩功能
  • 部署就绪 –Docker、ADK兼容、MCP服务器、云运行说明
  • 知识库管理 –管理用户界面 独立私人回购 用于PDF摄取和FAISS索引构建
  • 多渠道部署 –流线型UI、MCP协议(克劳德桌面)、ADK工具(顶点AI)
  • 故障弱化 –当API不可用或FAISS索引丢失时的回退模式

🎨 干净的UI

  • 带有拖放照片上传功能的流线型网络界面
  • 实时EXIF显示
  • 聊天风格对话视图
  • 调试观察面板

______________________________________________________________________

🏗️ 建筑

┌─────────────┐    ┌──────────────┐    ┌─────────────┐
│ Streamlit   │    │ Claude/MCP   │    │ Vertex AI   │
│     UI      │    │   Clients    │    │  (ADK)      │
└──────┬──────┘    └──────┬───────┘    └──────┬──────┘
       │                  │                    │
       └──────────────────┼────────────────────┘
                          ▼
              ┌────────────────────────┐
              │  Orchestrator Agent    │  Coordinates everything
              │  • Session Management  │
              │  • Memory Persistence  │
              │  • Context Compaction  │
              └────┬──────────────┬────┘
                   │              │
                   ▼              ▼
          ┌────────────┐   ┌─────────────────┐
          │VisionAgent │   │ KnowledgeAgent  │
          │ • Gemini   │   │ • Gemini 1.5    │
          │   Vision   │   │   Flash         │
          │ • EXIF     │   │ • Agentic RAG   │
          │ • Severity │   │ • Citations     │
          │ • Strengths│   └────────┬────────┘
          └────────────┘            │
                                    ▼
                          ┌──────────────────┐
                          │ Hybrid CASCADE   │
                          │ PRIMARY: Curated │
                          │  (20 entries,    │
                          │   NumPy search)  │
                          │ SECONDARY: FAISS │
                          │  (13 PDFs,       │
                          │   1195 chunks)   │
                          └──────────────────┘

为什么选择多代理?

  • 专业知识(愿景与指导)
  • 模块化设计(易于测试/增强)
  • 清晰地分离关注点
  • 可扩展到其他代理

______________________________________________________________________

📁 项目结构

ai-photography-coach-agents/
├── agents_capstone/
│   ├── app_streamlit.py              # 🌐 Web UI (main entry point)
│   ├── adk_tools.py                  # 🔧 ADK tool definitions
│   ├── agents/
│   │   ├── orchestrator.py           # 🎯 Multi-agent coordination
│   │   ├── vision_agent.py           # 👁️ Gemini Vision API + EXIF
│   │   └── knowledge_agent.py        # 🧠 Gemini + Agentic RAG
│   ├── tools/
│   │   ├── exif_tool.py              # 📸 EXIF extraction
│   │   ├── memory.py                 # 💾 SQLite persistence
│   │   ├── context.py                # 🗜️ Context compaction
│   │   ├── knowledge_base.py         # 📚 Photography principles
│   │   ├── agentic_rag.py            # 🧠 Hybrid CASCADE RAG
│   │   ├── faiss_store.py            # 🔍 FAISS vector store
│   │   └── mcp_server.py             # 🔌 MCP protocol server
│   ├── data/
│   │   └── knowledge_sources.py      # 📖 20 curated entries
│   ├── evaluate.py                   # 📊 LLM-as-Judge evaluation
│   └── reports/                      # 📈 Generated evaluation reports
├── diagrams/                         # 🎨 Architecture diagrams
├── mcp_config.json                   # ⚙️ MCP server config
├── run_mcp_server.sh                 # 🚀 MCP launcher script
├── test_hybrid_rag.py                # 🧪 RAG system tests
├── requirements.txt                  # 📦 Python dependencies
├── Dockerfile                        # 🐳 Container setup
├── DEPLOYMENT.md                     # 🚀 Deployment guide
├── VIDEO_SCRIPT.md                   # 🎬 Demo video script
└── README.md                         # 📖 This file

______________________________________________________________________

🎯 高级功能

第1.5阶段:混合CASCADE的代理RAG

  • 20篇精选作品 –大师(亚当斯、弗里曼、彼得森、凯尔比、安、霍比)的手工摄影知识
  • FAISS矢量商店 –第二层包含13个PDF、1195个区块、666页
  • 基于信心的回退 –初级策划(阈值0.6)→ 次要失误
  • 主题提取 –将Gemini的回复映射到对齐的引用
  • 消息来源 –明确的标签:“策展摄影书籍”与“摄影指南和手册”

第二阶段:增强视觉分析

  • Gemini Vision API -真正的AI驱动的成分分析(不是基于规则的!)
  • 结构性问题 –检测到具有类型、严重性、描述、建议的问题对象
  • 严重性评分 –优先级反馈的低/中/高分类
  • 强度检测 –确定哪些功能运行良好(good_lighting、sharp_focus等)
  • 自适应提示 –技能水平定制分析(初级/中级/高级)
  • 优雅的后退 –API不可用时的基于规则的分析

第三阶段:MCP服务器+ADK工具

  • MCP服务器 –模型上下文协议的完整JSON-RPC实现
  • 克劳德桌面就绪 –添加到 claude_desktop_config.json 用于即时集成
  • VS代码兼容 –使用MCP扩展进行编辑内指导
  • 三种MCP工具:

1. analyze_photo –具有结构化输出的视觉分析 1. coach_on_photo –带有会话历史的个性化辅导 1. get_session_history –会话检索和统计

  • ADK工具 –正式化为 adk_tools.py 用于Vertex AI代理引擎部署
  • 多通道 –通过Streamlit、MCP或ADK访问相同的代理

______________________________________________________________________

💻 使用示例

1.Web界面(Streamlit)

  1. 启动应用程序: python3 -m streamlit run agents_capstone/app_streamlit.py
  2. 上传照片(JPEG/JPG)
  3. 提问:

- *“我怎样才能提高作文水平?”* - *“那灯光呢?”* - *“我应该调整ISO吗?”*

  1. 获得即时、个性化的指导!

2.MCP服务器(克劳德桌面/VS代码)

# Start MCP server
./run_mcp_server.sh

# Or manually
python3 -m agents_capstone.tools.mcp_server

Claude桌面集成: 添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "photography-coach": {
      "command": "/path/to/run_mcp_server.sh"
    }
  }
}

然后在Claude中使用: *“使用摄影教练分析我在/path/to/photo.jpg上的风景照片”*

3.ADK工具(程序化)

from agents_capstone.adk_tools import analyze_photo_tool, coach_on_photo_tool

# Analyze a photo
result = analyze_photo_tool("photo.jpg", skill_level="intermediate")
print(f"Issues: {len(result['detected_issues'])}")
for issue in result['detected_issues']:
    print(f"  [{issue['severity']}] {issue['suggestion']}")

# Get coaching
coaching = coach_on_photo_tool(
    query="How can I improve this landscape?",
    vision_analysis=result,
    session={"skill_level": "intermediate"}
)
print(coaching["text"])

4.Python API(直接编排器)

from agents_capstone.agents.orchestrator import Orchestrator
from agents_capstone.agents.vision_agent import VisionAgent
from agents_capstone.agents.knowledge_agent import KnowledgeAgent

# Initialize
vision = VisionAgent()
knowledge = KnowledgeAgent()
orchestrator = Orchestrator(vision, knowledge)

# Get coaching
result = orchestrator.run(
    user_id="user_123",
    image_path="my_photo.jpg",
    query="How can I improve this shot?"
)

print(result["coach"]["text"])

______________________________________________________________________

📊 评估结果

内建 法学硕士作为法官 评估框架:

度量分数(0-10)
相关性8.5/10
完整性8.2/10
准确度9.0/10
可操作性8.7/10
平均8.6/10

运行评估:

python3 demo_eval.py

查看结果 reports/evaluation_report.html

______________________________________________________________________

🛠️ 技术栈

技术目的
LLMGoogle Gemini 1.5 Flash视觉分析+辅导响应
框架流线型1.30Web用户界面
语言Python 3.11+核心实现
存储SQLite会话持久性(兼容ADK)
图像PIL/枕头EXIF提取
部署Docker,云运行生产托管
评估法学硕士作为评委质量指标

为什么有这些选择?

  • Gemini 1.5 Flash:快速、实惠、多模式(视觉+文本)
  • Streamlit:快速原型制作,专业用户界面
  • SQLite:简单、可靠、兼容ADK的适配器模式
  • Docker:可移植、可扩展的部署
  • FAISS+句子变换器:RAG的高效向量搜索(384个dim嵌入)

______________________________________________________________________

🚀 部署

地方发展

export GOOGLE_API_KEY="your_key"
python3 -m streamlit run agents_capstone/app_streamlit.py

码头工人

docker build -t photo-coach .
docker run -p 8501:8501 -e GOOGLE_API_KEY=your_key photo-coach

访问地址: http://localhost:8501

谷歌云运行

gcloud run deploy photo-coach \
  --source . \
  --region us-central1 \
  --allow-unauthenticated \
  --set-env-vars GOOGLE_API_KEY=your_key

部署.md 用于:

  • ADK集成指南
  • 生产注意事项
  • 缩放配置
  • 监控设置

______________________________________________________________________

🔬 评估与测试

运行完整评估

python3 demo_eval.py

生成:

  • reports/evaluation_report.html (详细评分)
  • reports/evaluation_summary.csv (指标汇总)
  • reports/evaluation_detailed.json (原始数据)

测试用例

当前测试集:

  • 风景照片(构图、DOF)
  • 肖像照片(曝光、聚焦)
  • 低光场景(ISO、噪声)
  • 动作镜头(快门速度、模糊)

评估维度:

  1. 相关性 –回答用户的问题
  2. 完整性 –涵盖所有重要方面
  3. 准确度 –技术正确性
  4. 可操作性 –明确、具体的建议

______________________________________________________________________

📈 性能指标

度量目标当前
响应时间\8.08.5
准确度得分>8.59.0
上下文保留10+圈无限制\*

\*6圈后的上下文压缩使内存易于管理

______________________________________________________________________

🎓 学习成果

展示的技能:

  • ✅ 多智能体系统设计
  • ✅ LLM集成(Gemini Vision+Text)
  • ✅ 生产工程(Docker、日志、评估)
  • ✅ 会话持久性和内存管理
  • ✅ 简化UI开发
  • ✅ 法学硕士作为评委评估

已解决的关键挑战:

  1. 上下文管理(压缩策略)
  2. 多模态集成(EXIF+视觉+文本)
  3. 动态LLM提示(无硬编码模板)
  4. 会话持久性(ADK兼容适配器)

______________________________________________________________________

🔮 未来的增强功能

计划功能:

  • \[\]MCP服务器集成(模型上下文协议)
  • \[\]增强的视觉分析(Gemini结构化JSON)
  • \[\]批量照片分析(整张照片拍摄)
  • \[\]风格转换建议(参考照片)
  • \[\]自动编辑建议(HSL、曲线)
  • \[\]与Lightroom/Photoshop API集成
  • \[\]移动应用程序(React Native)

高级功能:

  • \[\]多摄影师协作
  • \[\]投资组合审查模式
  • \[\]游戏化(教练进度跟踪)
  • \[\]微调Gemini模型(特定于摄影)

______________________________________________________________________

📚 文档

文档描述
部署.md部署指南(Docker、Cloud Run、ADK)
视频_SCRIPT.md演示视频脚本(2-3分钟)
KAGGLE_WRITEUP_ENHANCED.md竞赛提交报告
完成_检查表.md提交跟踪
agents_capstone/WRITEUP.md完整的量规映射(第1-5天)
试剂\_ capstone/ADK_INTEGRATION.mdADK设置和架构
试剂_胶囊/观察性.md日志记录和指标指南
图表/建筑图(美人鱼)

______________________________________________________________________

🤝 贡献

欢迎投稿!需要改进的地方:

  • 附加测试用例
  • 新代理类型(如编辑代理、装备推荐代理)
  • ui增强
  • 性能优化

如何做出贡献:

  1. 复刻仓库
  2. 创建特征分支(git checkout -b feature/new-agent)
  3. 提交更改(git commit -am 'Add new agent')
  4. 推送到分支(git push origin feature/new-agent)
  5. 打开拉取请求

______________________________________________________________________

📜 许可证

MIT许可证——见 许可证 文件以获取详细信息。

太长,读不下去了 免费使用、修改、分发。感谢您的署名!

______________________________________________________________________

🙏 致谢

  • 谷歌人工智能代理密集型 –Capstone项目框架
  • 谷歌双子座团队 –多模式LLM API
  • Streamlit社区 –UI框架和示例
  • 摄影社区 –对辅导质量的反馈

内置于❤️ 5天内(2025年12月),作为谷歌人工智能代理强化顶点项目的一部分。

______________________________________________________________________

📬 联系与反馈

作者 普拉萨德T\ 存储库: https://github.com/prasadt1/ai-photography-coach-agents\ 问题: https://github.com/prasadt1/ai-photography-coach-agents/issues

问题?思想?打开一个问题或联系我们!

______________________________________________________________________

⭐ 如果你觉得这个项目有用,请在repo上加星!

目录标签

目录标签

多智能体系统PythonClaude摄影分析本地部署AI教练图像处理个性化建议

支持客户端

Claude DesktopClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP