Skip to content

Latest commit

 

History

History
408 lines (301 loc) · 9.46 KB

File metadata and controls

408 lines (301 loc) · 9.46 KB
name image-recognition
description 图片识别基础工作流 - 自动调用 Gemini 进行图片内容分析,然后基于分析结果与用户对话。
version 0.1.0

图片识别基础工作流

这是一个基于 Gemini 视觉能力的图片识别技能,当接收到图片时,自动调用 Gemini 进行图片内容分析,然后基于分析结果与用户进行智能对话。


核心理念

默认图片处理流程

定义:当用户发送图片时,系统自动按照以下流程处理:

  1. 图片接收:用户发送图片到对话
  2. 图片保存:将图片保存到 workspace/images/ 目录
  3. 调用 Gemini:使用 Gemini 的视觉能力分析图片内容
  4. 获取描述:获取 Gemini 返回的详细图片描述
  5. 智能对话:基于图片描述与用户进行交互
  6. 任务执行:根据用户需求,执行相应的任务(如合盘、分析等)

适用场景

触发条件

  • ✅ 用户发送了图片到对话中
  • ✅ 需要分析图片内容
  • ✅ 需要基于图片进行后续操作(如八字分析、合盘等)

典型任务

  • 图片内容识别(文字、物体、场景等)
  • 图片描述生成
  • 基于图片信息的后续任务(如八字分析、合盘等)
  • 图片中文字的 OCR 识别

工作流程

阶段 1: 图片接收与保存

系统自动执行

  1. 接收用户发送的图片
  2. 获取图片路径(通常在 /home/node/.openclaw/media/inbound/ 目录)
  3. 将图片复制到 /home/node/.openclaw/workspace/images/ 目录
  4. 记录图片信息(格式、分辨率、大小)

输出:图片已保存,准备好进行分析


阶段 2: 调用 Gemini 分析图片

系统自动执行

  1. 构造 Gemini 视觉请求
  2. 将图片路径传递给 Gemini
  3. 请求 Gemini 分析图片内容
  4. 获取 Gemini 返回的详细描述

提示词模板

请详细描述这张图片的内容,包括:
1. 图片中的主要元素(人物、物体、文字、场景等)
2. 图片的整体风格和氛围
3. 任何可见的文字信息(请准确转录)
4. 图片的布局和结构
5. 其他值得注意的细节

请用清晰、详细的语言描述,方便后续进行基于图片内容的分析。

输出:Gemini 返回的详细图片描述


阶段 3: 基于图片描述与用户对话

基于 Gemini 返回的描述

  1. 向用户展示图片识别结果
  2. 确认用户是否需要进一步操作
  3. 根据用户需求,执行相应的任务

对话示例

我分析了这张图片,内容如下:

[展示 Gemini 的图片描述]

请问你想让我:
1. 继续基于这个内容进行分析?
2. 提取特定信息?
3. 进行其他操作?

核心功能

图片内容识别

功能描述:识别图片中的主要元素、物体、人物、场景等

输出格式

  • 主要元素列表
  • 图片风格和氛围
  • 布局和结构描述
  • 其他细节信息

文字识别(OCR)

功能描述:识别图片中的文字内容(如八字信息、表格、文档等)

输出格式

  • 准确转录的文字内容
  • 文字布局信息
  • 识别的置信度(如适用)

后续任务执行

功能描述:基于图片识别结果,执行相应的任务

支持的后续任务

  • 八字分析(如果图片包含八字信息)
  • 合盘分析(如果包含两个人的八字)
  • 文档分析(如果是文档图片)
  • 数据提取(如果是表格或结构化数据)
  • 其他基于图片内容的任务

技术实现

图片保存规则

保存路径/home/node/.openclaw/workspace/images/

文件命名

  • 使用原始文件名(从 inbound 复制时保持不变)
  • 或使用时间戳命名(如 2026-03-11-05-11-00.jpg

文件管理

  • 定期清理旧图片(建议 30 天后删除)
  • 重要图片可永久保存

Gemini 调用方式

模型选择:Gemini Pro Vision(支持图片理解)

API 配置

  • API Key:在环境变量或配置文件中配置
  • 模型版本:gemini-pro-vision 或最新版本

请求格式

{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "请详细描述这张图片的内容..."
        },
        {
          "file_data": {
            "mime_type": "image/jpeg",
            "file_uri": "file:///path/to/image.jpg"
          }
        }
      ]
    }
  ]
}

使用示例

示例 1: 八字图片分析

用户发送:一张包含八字信息的图片

系统执行

  1. 保存图片到 workspace/images/
  2. 调用 Gemini 分析图片
  3. Gemini 返回:
    这是一张八字命盘的截图,包含以下信息:
    - 年柱:甲辰年
    - 月柱:丙寅月
    - 日柱:壬午日
    - 时柱:丁巳时
    - 性别:男
    - 出生日期:2024年3月10日
    
  4. 系统向用户展示识别结果
  5. 询问用户是否需要进行八字分析

对话

我分析了这张八字图片,内容如下:

年柱:甲辰年
月柱:丙寅月
日柱:壬午日
时柱:丁巳时
性别:男
出生日期:2024年3月10日

请问你想让我:
1. 对这个八字进行详细分析?
2. 进行合盘分析(需要另一个人的八字)?
3. 其他操作?

示例 2: 文档图片识别

用户发送:一张包含文档的图片

系统执行

  1. 保存图片到 workspace/images/
  2. 调用 Gemini 分析图片
  3. Gemini 返回:
    这是一份文档的截图,主要内容如下:
    - 标题:项目计划书
    - 内容包括:项目背景、目标、时间计划、预算等
    - 文字内容:[准确转录所有可见文字]
    - 布局:标准文档格式,有清晰的段落结构
    
  4. 系统向用户展示识别结果
  5. 询问用户是否需要进一步处理

对话

我识别了这张文档图片,内容如下:

标题:项目计划书
主要内容:项目背景、目标、时间计划、预算等
[显示识别的文字内容]

请问你想让我:
1. 总结这份文档的核心要点?
2. 提取特定信息(如时间计划、预算等)?
3. 对文档进行分析或评价?
4. 其他操作?

示例 3: 合盘图片分析

用户发送:一张包含两个人八字的图片

系统执行

  1. 保存图片到 workspace/images/
  2. 调用 Gemini 分析图片
  3. Gemini 返回:
    这是一张合盘命盘,包含两个人的八字信息:
    
    第一个人(甲):
    - 年柱:甲辰年
    - 月柱:丙寅月
    - 日柱:壬午日
    - 时柱:丁巳时
    - 性别:男
    
    第二个人(乙):
    - 年柱:乙巳年
    - 月柱:戊辰月
    - 日柱:癸酉日
    - 时柱:己未时
    - 性别:女
    
  4. 系统向用户展示识别结果
  5. 询问用户是否需要进行合盘分析

对话

我识别了这张合盘图片,内容如下:

第一个人(男):
年柱:甲辰年
月柱:丙寅月
日柱:壬午日
时柱:丁巳时

第二个人(女):
年柱:乙巳年
月柱:戊辰月
日柱:癸酉日
时柱:己未时

请问你想让我:
1. 对这两个人进行八字合盘分析?
2. 分别分析每个人的八字?
3. 其他操作?

注意事项

⚠️ 使用限制

不适用场景

  • ❌ 非图片文件(如 PDF、Word 等,需先转换)
  • ❌ 模糊不清的图片(识别准确度会降低)
  • ❌ 包含敏感或非法内容的图片

使用建议

  • ✅ 确保图片清晰可读
  • ✅ 尽量提供高分辨率的图片
  • ✅ 图片内容完整,不要被裁剪
  • ✅ 如果识别不准确,可以提供更多上下文信息

📊 准确度说明

  • Gemini 视觉识别准确度较高,但不是 100%
  • 文字识别(OCR)对清晰图片的准确度可达 95% 以上
  • 手写文字的识别准确度会降低
  • 复杂场景或模糊图片的识别准确度会降低
  • 如果识别结果不准确,可以要求用户手动输入或确认

扩展功能

多图片对比分析

支持同时分析多张图片:

  • 对比图片内容
  • 提取共同点或差异
  • 综合多张图片信息进行分析

图片内容分类

自动识别图片类型:

  • 八字图片 → 触发八字分析技能
  • 文档图片 → 触发文档分析技能
  • 表格图片 → 触发数据提取技能
  • 其他图片 → 通用内容识别

智能任务推荐

基于图片内容,智能推荐后续操作:

  • 如果识别出八字信息 → 推荐八字分析或合盘
  • 如果识别出文档 → 推荐总结或提取信息
  • 如果识别出表格 → 推荐数据提取或分析

配置文件

Gemini API 配置

配置文件路径/home/node/.openclaw/workspace/config/gemini.json

配置示例

{
  "apiKey": "your_gemini_api_key_here",
  "model": "gemini-pro-vision",
  "maxTokens": 4096,
  "temperature": 0.7
}

环境变量(可选):

  • GEMINI_API_KEY: Gemini API 密钥

集成到其他技能

与八字分析技能集成

当识别到八字图片时:

  1. 自动调用 image-recognition 技能识别八字信息
  2. 将识别结果传递给 eight-characters-analysis 技能
  3. 执行八字分析

与合盘技能集成

当识别到两个人八字图片时:

  1. 自动调用 image-recognition 技能识别两个人的八字信息
  2. 将识别结果传递给 bazi-marriage-matchmaker 技能
  3. 执行合盘分析

图片识别基础工作流 - 自动识别图片内容,智能执行后续任务