合并分支
* Merge branch 'main' into feature/modal-cluster-gemini * ADD 增加大模型输出错误时间值的处理 * Merge branch 'main' into feature/modal-cluster-gemini * FIX 修复推理问题 * Merge branch 'main' into feature/modal-cluster-gemini * FIX 修复拼接网格图的异步失效问题 * FIX 修复拼接网格图的异步失效问题 * Merge branch 'main' into feature/modal-cluster-gemini * Merge branch 'main' into feature/modal-cluster-gemini * FIX 调高合成网格图容器配置 * Merge branch 'main' into feature/modal-cluster-gemini * FIX 修复带图片模态推理接口 * PERF 优化Gemini Prompt词 * Merge remote-tracking branch 'origin/main' into feature/modal-cluster-gemini * ADD 增加网格图片创建接口 ADD gemini推理打点增加商品封面模态 PERF gemini打点结果相邻时间线同商品合并 * Merge branch 'main' into feature/modal-cluster-gemini * FIX 429重试机制 * FIX 修复Gemini推理函数入参 * Merge branch 'main' into feature/modal-cluster-gemini * PERF gemini修改参数类型 ADD 增加批量删除Gemini文件接口 * PERF gemini修改prompt * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF gemini修改prompt * 录制HLS时 结果复制到S3挂载点增加一个fallback处理 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF gemini修改prompt * PERF gemini增加图像模态 * PERF gemini增加图像模态 * fix : TikHub的Logger换为Loguru * fix : 修复直播切分视频接口 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF tikhub接口增加随机延迟 * Merge remote-tracking branch 'origin/feature/modal-cluster' into feature/modal-cluster * 合并分支 * fix : hls录制缓存读写问题 * FIX 修改冲突 * ADD 增加获取直播间指定商品数量接口 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF 修改tikhub到aws * fix : 增加s3分片上传接口 * PERF Gemini推理直接从参数列表获取商品列表 ADD Tikhub增加获取置顶|讲解中商品接口 * PERF Gemini推理直接从参数获取商品列表 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * fix 处理jpg图片的codec_name应为mjpg * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF 优化返回值 * fix 获取媒体metadata的类型报错,modal client升级到1.0.2 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF 风控后爬虫直接退出避免cookie失效 PERF 分离tikhub api, 使用更低的保持时间以更换IP FIX 修复Dict键不存在报错的bug * fix 一些webhook相关的bug,添加了更详细的接口说明 * 更新直播录制为可跳转时间的hls流接口,用于替代掉腾讯VOD+火山云拉流转推,片段保证每片开头为关键帧,时间精度准确到毫秒级 * ADD 增加直播间商品增量缓存触发器 * Merge branch 'feature/modal-cluster' into feature/modal-cluster-gemini * PERF 调整gemini prompt * - KVCache类改为可拓展,基于环境变量设置KV space - test 环境配置与CF测试环境对齐 * FIX 修复Gemini推理视频切条的问题 PERF 优化视频切条函数性能 * ADD 基本完成gemini视频推理API * ADD 添加内联的tikhub * 对齐预发环境 --------- Merge request URL: https://g-ldyi2063.coding.net/p/dev/d/modalDeploy/git/merge/4802 Co-authored-by: 康宇佳,shuohigh@gmail.com
This commit is contained in:
parent
fc98f3b5e3
commit
91ebad57c6
|
|
@ -105,8 +105,21 @@ def merge_timeline_items(items):
|
|||
return [format_timeline_item(start, end, activity) for start, end, activity in merged_items]
|
||||
|
||||
|
||||
def merge_product_data(data):
|
||||
def convert_time(time_str):
|
||||
# 去除秒字段并转换为标准时间
|
||||
parts = time_str.split(':')
|
||||
if len(parts) == 3:
|
||||
new_time_str = f"00:{parts[0]}:{parts[1]}.{parts[2].split('.')[1]}"
|
||||
return new_time_str
|
||||
return time_str
|
||||
|
||||
|
||||
def merge_product_data(data, start_time_str, end_time_str):
|
||||
"""合并相同产品的数据"""
|
||||
start_time = parse_time(start_time_str)
|
||||
end_time = parse_time(end_time_str)
|
||||
duration = end_time - start_time
|
||||
|
||||
product_dict = {}
|
||||
|
||||
# 按产品名称分组
|
||||
|
|
@ -118,7 +131,23 @@ def merge_product_data(data):
|
|||
|
||||
# 合并每个产品的时间线
|
||||
for product in product_dict:
|
||||
product_dict[product]["timeline"] = merge_timeline_items(product_dict[product]["timeline"])
|
||||
timeline = product_dict[product]["timeline"]
|
||||
new_timeline = []
|
||||
for item in timeline:
|
||||
start, end = parse_timeline_item(item)
|
||||
# 比较起始时间与时间差
|
||||
if (start - datetime.min) > duration:
|
||||
# 处理时间字符串
|
||||
start_str = format_time(start)
|
||||
end_str = format_time(end)
|
||||
new_start_str = convert_time(start_str)
|
||||
new_end_str = convert_time(end_str)
|
||||
activity = item.split(' (', 1)[1].rstrip(')')
|
||||
new_item = f"{new_start_str} - {new_end_str} ({activity})"
|
||||
new_timeline.append(new_item)
|
||||
else:
|
||||
new_timeline.append(item)
|
||||
product_dict[product]["timeline"] = merge_timeline_items(new_timeline)
|
||||
|
||||
# 返回合并后的列表
|
||||
return list(product_dict.values())
|
||||
|
|
@ -3,30 +3,20 @@ import modal
|
|||
from ..video import downloader_image, app, config, batch_update_cloudflare_kv, modal_kv_cache
|
||||
|
||||
with downloader_image.imports():
|
||||
import os, httpx, crcmod, json, time, requests
|
||||
import os, httpx, crcmod
|
||||
import sentry_sdk
|
||||
from sentry_sdk.integrations.loguru import LoguruIntegration
|
||||
from tqdm import tqdm
|
||||
from typing import Tuple, List, Dict
|
||||
from typing import Tuple
|
||||
from loguru import logger
|
||||
from datetime import datetime, UTC, timedelta, timezone
|
||||
from datetime import datetime, UTC, timedelta
|
||||
from modal import current_function_call_id
|
||||
from ffmpy import FFmpeg, FFprobe
|
||||
from fastapi import HTTPException
|
||||
from httpx import Timeout
|
||||
from starlette import status
|
||||
|
||||
from tencentcloud.common.credential import Credential
|
||||
from tencentcloud.vod.v20180717.vod_client import VodClient
|
||||
from tencentcloud.vod.v20180717 import models as vod_request_models
|
||||
|
||||
from BowongModalFunctions.config import WorkerConfig
|
||||
from BowongModalFunctions.utils.KVCache import MediaSourceKVCache, LiveProductKVCache
|
||||
from BowongModalFunctions.models.media_model import MediaSource, MediaCacheStatus, MediaProtocol
|
||||
from BowongModalFunctions.models.web_model import SentryTransactionInfo, MonitorLiveRoomProductRequest, LiveProduct, \
|
||||
LiveProductCaches, WebhookNotify
|
||||
from BowongModalFunctions.models.ffmpeg_worker_model import FFMpegSliceSegment
|
||||
from BowongModalFunctions.utils.TimeUtils import TimeDelta, merge_product_data
|
||||
from BowongModalFunctions.models.web_model import SentryTransactionInfo
|
||||
|
||||
|
||||
@app.function(cpu=1, timeout=1800,
|
||||
|
|
|
|||
Loading…
Reference in New Issue