From 9b92a92e99cc935629572095ed0befe891c5820e Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 23 Jun 2025 15:59:29 +0800 Subject: [PATCH] =?UTF-8?q?[8.1.0]=20[t1t2]=20[fea]=20[vlm=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=97=B6=E9=97=B4=E6=88=B3=E5=92=8C=E6=97=A5=E5=BF=97?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bridge/bridge/OchVlmManager.kt | 20 +++++++++++++----- .../common/module/biz/birdge/data/VlmData.kt | 7 ++++++- .../logchainanalytic/OchChainLogManager.kt | 4 ++++ .../ui/mind/bean/AssistantMessage.kt | 7 ------- .../ui/aiview/adapter/AIMessageViewHolder.kt | 3 ++- .../main/res/layout/item_ai_vlm_action.xml | 21 ++++++++++++++++--- 6 files changed, 45 insertions(+), 17 deletions(-) diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchVlmManager.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchVlmManager.kt index d70f8cccff..94c9c0b4a9 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchVlmManager.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/bridge/OchVlmManager.kt @@ -6,6 +6,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON import com.mogo.och.bridge.BridgeServiceManager import com.mogo.och.common.module.biz.birdge.data.VlmData +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import vllm.Vlm import kotlin.properties.Delegates @@ -25,22 +26,31 @@ object OchVlmManager : IVlmListener { if (oldValue != newValue) { if(newValue.imageSourceTimestamp == vllmData.messageSourceTimestamp){ CallerLogger.d(TAG," message先来 图片后来 发送message和图片 ${newValue.imageSourceTimestamp}---${vllmData.messageSourceTimestamp}") - BridgeServiceManager.invokeVlmData(VlmData(vllmData.id,vllmData.message,newValue.image)) + val timemillis = System.currentTimeMillis() + BridgeServiceManager.invokeVlmData(VlmData(vllmData.id,vllmData.message,newValue.image, timemillis)) + OchChainLogManager.writeChainLogEyeVlm("收到VlmData"," message先来 图片后来 发送message和图片 ${newValue.imageSourceTimestamp}---${vllmData.messageSourceTimestamp}--$timemillis") } } } + private var vllmData: VlmMessageData by Delegates.observable(VlmMessageData(0.0,0,"")) { _, oldValue, newValue -> if (oldValue != newValue) { - if(newValue.messageSourceTimestamp== vllmImageData.imageSourceTimestamp){ + val currentTimeMillis = System.currentTimeMillis() + if(newValue.messageSourceTimestamp== vllmImageData.imageSourceTimestamp){ // 图片先来 发送message和图片 BridgeServiceManager.invokeVlmData(VlmData(newValue.id,newValue.message, - vllmImageData.image) + vllmImageData.image, currentTimeMillis + ) ) CallerLogger.d(TAG,"messsage后来 图片先来 发送message和图片 ${newValue.message}----${newValue.messageSourceTimestamp}---${newValue.id}") + OchChainLogManager.writeChainLogEyeVlm("收到VlmData","messsage后来 图片先来 发送message和图片 ${newValue.message}----${newValue.messageSourceTimestamp}---${newValue.id}--$currentTimeMillis") }else{ // message 先来 单独发送message 图片来了后 再次发送出去 - BridgeServiceManager.invokeVlmData(VlmData(newValue.id,newValue.message,null)) - CallerLogger.d(TAG,"message先来 图片后来 发送message ${newValue.message}---${newValue.messageSourceTimestamp}---${newValue.id}") + BridgeServiceManager.invokeVlmData(VlmData(newValue.id,newValue.message,null, + currentTimeMillis + )) + CallerLogger.d(TAG,"message先来 图片后来 发送message ${newValue.message}---${newValue.messageSourceTimestamp}---${newValue.id}---$currentTimeMillis") + OchChainLogManager.writeChainLogEyeVlm("收到VlmData","message先来 图片后来 发送message ${newValue.message}---${newValue.messageSourceTimestamp}---${newValue.id}---$currentTimeMillis") } } } diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/data/VlmData.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/data/VlmData.kt index 5c8b1e4fa7..0e9236d1ab 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/data/VlmData.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/data/VlmData.kt @@ -1,6 +1,11 @@ package com.mogo.och.common.module.biz.birdge.data -data class VlmData(val id:Int?,val message:String?,var image: ByteArray?) { +data class VlmData( + val id: Int?, + val message: String?, + var image: ByteArray?, + var timestamp: Long = System.currentTimeMillis() +) { override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt index 9d4b22cd84..9d836d77a2 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/logchainanalytic/OchChainLogManager.kt @@ -64,12 +64,16 @@ object OchChainLogManager { const val EVENT_KEY_INFO_ERROR = "analytics_event_och_error" + const val EVENT_KEY_INFO_VLM = "analytics_event_och_vlm" fun writeChainLogEye(title: String, info: String) { writeChainLog(title, info, true, EVENT_KEY_INFO_CALL_EYE) } + fun writeChainLogEyeVlm(title: String, info: String) { + writeChainLog(title, info, false, EVENT_KEY_INFO_VLM) + } // 时间方面的日志 fun writeChainLogTime(title: String, info: String) { diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/mind/bean/AssistantMessage.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/mind/bean/AssistantMessage.kt index ab2dcb2585..cd3abee857 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/mind/bean/AssistantMessage.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/mind/bean/AssistantMessage.kt @@ -177,11 +177,4 @@ sealed class AIMessage( var roadList: List ): AIMessage(id,title) - data class AiVlmData( - override val id: String, - override val title: String, - var desc: String, - var vlmData: VlmData - ):AIMessage(id,title) - } \ No newline at end of file diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt index 1adf8c3853..6b3f0b21bd 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/aiview/adapter/AIMessageViewHolder.kt @@ -28,7 +28,6 @@ import com.mogo.eagle.core.function.hmi.ui.v2n.RoadV2NEventLivePlayView import com.mogo.eagle.core.function.view.MapRoamView import com.mogo.eagle.core.function.view.RoadCrossRoamListAdapter import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp import com.mogo.eagle.core.utilcode.mogo.glide.GlideImageLoader import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform import com.mogo.eagle.core.utilcode.mogo.imageloader.MogoImageView @@ -454,6 +453,7 @@ class NDEViewHolder(binding: View) : MessageViewHolder(binding){ class VlmViewHolder(binding: View) : MessageViewHolder(binding){ private var tvNdeTitle: TextView = binding.findViewById(R.id.tvVlmMessage) + private var tvVlmTime: TextView = binding.findViewById(R.id.tvVlmTimeStr) private var acivVlmImage: AppCompatImageView = binding.findViewById(R.id.acivVlmImage) @@ -461,6 +461,7 @@ class VlmViewHolder(binding: View) : MessageViewHolder(binding){ if(item is AIMessage.AiVlmData){ tvNdeTitle.text = item.vlmData.message acivVlmImage.showOrHideWithByteArray(item.vlmData.image) + tvVlmTime.text = "更新时间:${DateTimeUtils.getTimeText(item.vlmData.timestamp,DateTimeUtils.HH_mm_ss)}" } } diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_vlm_action.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_vlm_action.xml index 5814ef7fe9..adac7de786 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_vlm_action.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/item_ai_vlm_action.xml @@ -27,24 +27,39 @@ android:layout_marginStart="@dimen/dp_30" android:layout_marginEnd="@dimen/dp_30" android:layout_marginTop="@dimen/dp_27" - android:layout_marginBottom="@dimen/dp_20" tools:text="前方100米有道路施工,施工长度100米,影响第1、2车道通行。" /> + + \ No newline at end of file