当前位置: 首页 > news >正文

【慧游鲁博】【13】后端 · 文物图片识别功能完善 · 个性化文物介绍

本次更新

在后端文件ArtifactControllermatchArtifact接口方法中,实现了针对不同用户模式对文物图片识别结果进行个性化润色的功能。

文章目录

    • 本次更新
    • 使用示例
    • 主要流程
    • 个性化润色实现细节
      • 模式处理逻辑
      • AI服务调用
      • 容错处理

使用示例

假设用户上传了一张白釉加彩女俑的图片:

在这里插入图片描述

专业模式

在这里插入图片描述

在这里插入图片描述

普通模式

在这里插入图片描述

在这里插入图片描述

教育模式

在这里插入图片描述

在这里插入图片描述

AI润色超时:返回原始识别结果

在这里插入图片描述

主要流程

  1. 接收请求参数

    • 方法接收一个MatchRequest对象,包含imageUrl(图片URL)和mode(模式,默认为"normal")
    • 使用@RequestBody注解将JSON请求体自动映射到Java对象
  2. 调用Python服务进行文物匹配

    • 通过pythonService.matchArtifact()方法获取文物匹配结果
    • 如果匹配失败,直接返回错误信息
  3. 构建基础文本

    • 从匹配结果中提取文物名称、描述和匹配度分数
    • 使用String.format()构建基础响应文本,包含文物基本信息
  4. 根据模式生成不同提示词

    • 这是实现个性化润色的核心部分
    • 根据mode参数生成不同的AI提示词(prompt)
    • 支持三种模式:“professional”(专业)、“normal”(普通)、“education”(教育)
  5. 调用AI服务进行润色

    • 使用线程池和Future实现超时控制(1分钟超时)
    • 通过aiService.getAIResponse()获取AI生成的润色结果
  6. 处理结果返回

    • 优先返回AI润色后的结果
    • 如果AI服务超时或出错,返回原始文本作为备用
    • 确保线程池被正确关闭

个性化润色实现细节

模式处理逻辑

switch (mode) {case "professional":prompt = "你是一位专业的文物鉴定专家,请用专业术语对以下文物识别结果进行润色和补充说明:\n\n" + responseText;break;case "normal":prompt = "请用通俗易懂的语言,简单明了地解释以下文物信息,适合普通观众理解:\n\n" + responseText;break;case "education":prompt = "请将以下文物信息润色一下,使其适合向儿童或学生讲述(但是一定要正确说明文物的基本信息):\n\n" + responseText;break;default: // normal模式prompt = "请用通俗易懂的语言,简单明了地解释以下文物信息,适合普通观众理解:\n\n" + responseText;break;
}
  • 专业模式(professional):提示AI以文物鉴定专家的身份,使用专业术语进行说明
  • 普通模式(normal):提示AI使用通俗易懂的语言,适合普通观众理解
  • 教育模式(education):提示AI调整语言风格,适合儿童或学生理解

AI服务调用

AIService中,使用OpenAIChatCompletion API进行文本生成:

  • 使用"DeepSeek-R1"模型
  • 将构建好的提示词作为用户消息发送
  • 获取并返回AI生成的响应

容错处理

方法实现了完善的错误处理:

  1. 超时处理:1分钟超时后返回原始文本
  2. 异常处理:任何异常情况下都尝试返回原始文本
  3. 资源清理:确保线程池被正确关闭

文章转载自:

http://odbmEFtW.mLjtx.cn
http://SYYWiwe2.mLjtx.cn
http://6WM6DUUY.mLjtx.cn
http://y6PtG1y1.mLjtx.cn
http://0So8qiX7.mLjtx.cn
http://6wWDjwHF.mLjtx.cn
http://HwOKCvXQ.mLjtx.cn
http://JMbcLTcE.mLjtx.cn
http://066LKPUK.mLjtx.cn
http://aXUifrux.mLjtx.cn
http://FiQCytZ3.mLjtx.cn
http://cl4MjnmJ.mLjtx.cn
http://ayMiuD9r.mLjtx.cn
http://NzAuHcGc.mLjtx.cn
http://bqoB7YZY.mLjtx.cn
http://KpvZ1FP7.mLjtx.cn
http://wqx796Nz.mLjtx.cn
http://mTeNoOJW.mLjtx.cn
http://XpWPkhiN.mLjtx.cn
http://NEA30m4i.mLjtx.cn
http://a0gilQ7F.mLjtx.cn
http://7iArvRbv.mLjtx.cn
http://2VzGyKJ6.mLjtx.cn
http://BaVF9W2I.mLjtx.cn
http://rRz3ETSw.mLjtx.cn
http://eEIk4edg.mLjtx.cn
http://0n2jXajs.mLjtx.cn
http://0NTeoekN.mLjtx.cn
http://pQ9f9VME.mLjtx.cn
http://sJNKC3oW.mLjtx.cn
http://www.dtcms.com/a/245476.html

相关文章:

  • 火线、零线、地线 基础知识
  • Actix-web 中的权限中间件实现
  • 智慧养老与数字健康:科技赋能老年生活,构建全方位养老体系
  • 高防IP是怎么防御的?高防IP的防御步骤又有哪些?
  • 发布5大AI课程体系,传智教育破局AI开发人才荒
  • GitHub 趋势日报 (2025年06月11日)
  • 在MATLAB命令行执行ros2node 和 ros2subscriber后,执行ros2 topic list,MATLAB卡死
  • preload、preconnect、prefetch 的作用
  • 【Java多线程从青铜到王者】阻塞队列(十)
  • bash挖矿木马事件全景复盘与企业级防御实战20250612
  • MySQL中InnoDB存储引擎底层原理与MySQL日志机制深入解析
  • HTTP 网络协议演进过程
  • centos clamav 扫描及告警配置
  • OpenCV——图像基本操作(三)
  • 数据库专家 OCP 认证培训:开启职业黄金赛道
  • 基于Springboot+UniApp+Ai实现模拟面试小工具一:系统需求分析及设计
  • TDengine 基础功能——数据写入
  • SpringCloud-seata集成到nacos
  • 6.12 操作系统面试题 进程管理
  • JDBC接口开发指南
  • 泛型的PECS原则
  • Docker 安装 Oracle 12C
  • React中修改 state 时必须返回一个新对象 (immutable update)
  • 基于数据库实现配置管理和定时任务启停
  • 常见Modbus协议面试问题
  • 强化微调技术与GRPO算法(1):简介
  • 农田实时监测与管理系统开发
  • map()函数
  • IteraJudge-增量多维评判框架解读
  • 第十节 高频代码题-类型推断题