智能摄影助手 - 为您的拍摄提供 AI 驱动的专业建议
AI 拍摄指导是一款智能摄影助手应用,通过集成多个先进的 AI 模型(Qwen、OpenAI、Claude),为摄影爱好者提供实时的拍摄建议和技术指导。应用支持设备信息管理,让 AI 根据您的具体器材配置给出更精准的建议。
- 📸 拍照指导 - 通过相机拍摄或从相册选择照片,获取 AI 分析结果
- 💬 智能对话 - 基于拍摄的图像进行多轮对话,深入探讨拍摄技巧
- 🤖 多模型支持 - 支持 Qwen、OpenAI GPT、Claude 等多个 AI 模型
- 📱 设备管理 - 记录和管理您的摄影设备信息(相机型号、镜头、其他配件)
- ⚙️ 模型切换 - 随时切换不同的 AI 模型,获得多视角建议
- 🎨 现代化 UI - 基于 React Native Paper 的 Material Design 风格
- 🌙 深色模式 - 护眼的深色主题,适合暗光环境使用
- 📝 Markdown 渲染 - 支持 Markdown 格式的 AI 建议展示
- 💾 数据持久化 - 设备信息和模型选择本地保存
- 🔧 TypeScript - 完整的类型安全
- Expo SDK 50 - 跨平台开发框架
- React Native 0.72.6 - UI 框架
- React 18.2.0 - 前端框架
- TypeScript 5.9 - 类型安全
{
"@react-navigation/native": "^6.1.9", // 导航
"@react-navigation/native-stack": "^6.9.17", // 堆栈导航
"expo-camera": "~13.4.4", // 相机功能
"expo-image-picker": "~14.3.2", // 图片选择
"expo-media-library": "~15.0.0", // 媒体库
"react-native-paper": "^5.11.0", // UI 组件
"react-native-gifted-chat": "^2.4.0", // 聊天界面
"react-native-markdown-display": "^7.0.2" // Markdown 渲染
}- Qwen (通义千问) - 阿里云推出的强大语言模型
- OpenAI GPT - OpenAI 的 GPT 系列 API
- Claude - Anthropic 的 Claude 系列模型
- Node.js >= 18.x
- npm 或 yarn
- Expo CLI (
npm install -g expo-cli) - iOS 开发:Xcode 14+(仅 macOS)
- Android 开发:Android Studio 和 JDK 17
- 克隆项目
git clone https://github.com/all-for-code/ai-camera-guide.git
cd ai-camera-guide- 安装依赖
npm install- 启动开发服务器
npm start- 运行应用
- iOS: 按
i键或在 Expo Go 中打开 - Android: 按
a键或在模拟器中打开 - Web: 按
w键在浏览器中打开
# 安装 EAS CLI
npm install -g eas-cli
# 登录 Expo
eas login
# 构建 Android APK
eas build --platform android --profile preview
# 构建 iOS IPA
eas build --platform ios --profile preview- Android
npm run android- iOS
npm run ios应用需要配置 AI 模型的 API 密钥。请按以下步骤操作:
- 在应用中进入"设置"页面
- 填写您的设备信息:
- 设备类型(如:Sony A7M4、Canon R5、Nikon Z6 等)
- 型号/镜头信息
- 其他配件
- 配置 API 密钥:
- Qwen: 需要在阿里云 DashScope 创建 API Key
- OpenAI: 需要 OpenAI API Key
- Claude: 需要 Anthropic API Key
如需在开发环境中配置,可创建 .env 文件:
# 复制示例配置
cp .env.example .env
# 编辑 .env 文件,填入您的 API 密钥- 启动应用 - 打开 AI 拍摄指导应用
- 设置设备信息 - 点击右上角设置图标,填写您的摄影器材信息
- 选择 AI 模型 - 在设置中选择要使用的 AI 模型
- 拍摄或选择照片 - 通过相机拍照或从相册选择
- 获取建议 - AI 会根据您的设备和照片提供专业建议
- 深入交流 - 通过聊天界面继续提问,获取更详细的指导
- 💡 设备信息越详细,建议越精准 - 包括相机型号、镜头类型、拍摄场景等
- 🔄 随时切换模型 - 不同模型可能有不同的建议风格
- 🗑️ 清除对话 - 长按聊天界面可清除历史对话
- 📷 支持实时拍摄 - 直接使用相机功能获取即时建议
ai-camera-guide/
├── src/
│ ├── components/ # 可复用组件
│ │ ├── ChatMessage.tsx
│ │ ├── ImageUpload.tsx
│ │ └── ModelSelector.tsx
│ ├── screens/ # 页面组件
│ │ ├── ChatScreen.tsx
│ │ └── SettingsScreen.tsx
│ ├── services/ # 业务逻辑
│ │ ├── storage.ts # 数据存储
│ │ └── ai/ # AI 模型接口
│ ├── hooks/ # 自定义 Hooks
│ ├── navigation/ # 导航配置
│ ├── types/ # TypeScript 类型定义
│ └── utils/ # 工具函数
├── assets/ # 静态资源
├── App.tsx # 应用入口
├── app.json # Expo 配置
├── package.json # 项目依赖
└── README.md # 项目文档
# 安装依赖
npm install
# 启动 Expo 开发服务器
npx expo start
# 在另一个终端运行 Metro
npx expo start --clear# 查看日志
npx expo start --tunnel
# 清除缓存
npx expo start --clear- 在对应的目录创建组件/页面
- 更新 TypeScript 类型定义
- 运行类型检查:
npx tsc --noEmit - 测试功能
欢迎贡献代码!请遵循以下步骤:
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 使用 ESLint 进行代码检查
- 遵循 TypeScript 最佳实践
- 添加适当的注释和文档
- 确保代码通过类型检查
本项目采用 MIT 许可证 - 详见 LICENSE 文件
- 作者: all-for-code
- 邮箱: [email protected]
- GitHub: @all-for-code
感谢以下开源项目和服务:
- Expo - 跨平台开发框架
- React Native - UI 框架
- React Navigation - 导航库
- React Native Paper - UI 组件库
- 通义千问 - AI 语言模型
- OpenAI - GPT 系列 API
- Anthropic - Claude 系列模型
Made with ❤️ by all-for-code
⭐ 如果这个项目对你有帮助,请给它一个 Star!


