Skip to content

all-for-code/ai-camera-guide

Repository files navigation

AI 拍摄指导 📸🤖

智能摄影助手 - 为您的拍摄提供 AI 驱动的专业建议

Expo SDK React Native TypeScript License

📖 项目简介

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 渲染
}

AI 模型集成

  • 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

安装步骤

  1. 克隆项目
git clone https://github.com/all-for-code/ai-camera-guide.git
cd ai-camera-guide
  1. 安装依赖
npm install
  1. 启动开发服务器
npm start
  1. 运行应用
  • iOS: 按 i 键或在 Expo Go 中打开
  • Android: 按 a 键或在模拟器中打开
  • Web: 按 w 键在浏览器中打开

🚀 构建生产版本

使用 EAS Build(推荐)

# 安装 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

本地构建

  1. Android
npm run android
  1. iOS
npm run ios

⚙️ 配置说明

API 密钥配置

应用需要配置 AI 模型的 API 密钥。请按以下步骤操作:

  1. 在应用中进入"设置"页面
  2. 填写您的设备信息:
    • 设备类型(如:Sony A7M4、Canon R5、Nikon Z6 等)
    • 型号/镜头信息
    • 其他配件
  3. 配置 API 密钥:
    • Qwen: 需要在阿里云 DashScope 创建 API Key
    • OpenAI: 需要 OpenAI API Key
    • Claude: 需要 Anthropic API Key

环境变量(开发环境)

如需在开发环境中配置,可创建 .env 文件:

# 复制示例配置
cp .env.example .env

# 编辑 .env 文件,填入您的 API 密钥

📸 使用说明

基本使用流程

  1. 启动应用 - 打开 AI 拍摄指导应用
  2. 设置设备信息 - 点击右上角设置图标,填写您的摄影器材信息
  3. 选择 AI 模型 - 在设置中选择要使用的 AI 模型
  4. 拍摄或选择照片 - 通过相机拍照或从相册选择
  5. 获取建议 - AI 会根据您的设备和照片提供专业建议
  6. 深入交流 - 通过聊天界面继续提问,获取更详细的指导

功能提示

  • 💡 设备信息越详细,建议越精准 - 包括相机型号、镜头类型、拍摄场景等
  • 🔄 随时切换模型 - 不同模型可能有不同的建议风格
  • 🗑️ 清除对话 - 长按聊天界面可清除历史对话
  • 📷 支持实时拍摄 - 直接使用相机功能获取即时建议

📸 应用截图

主界面

主界面

聊天功能

聊天功能

设置界面

设置界面

🏗️ 项目结构

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

添加新功能

  1. 在对应的目录创建组件/页面
  2. 更新 TypeScript 类型定义
  3. 运行类型检查:npx tsc --noEmit
  4. 测试功能

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

代码规范

  • 使用 ESLint 进行代码检查
  • 遵循 TypeScript 最佳实践
  • 添加适当的注释和文档
  • 确保代码通过类型检查

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

📞 联系方式

🙏 致谢

感谢以下开源项目和服务:


Made with ❤️ by all-for-code

⭐ 如果这个项目对你有帮助,请给它一个 Star!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors