|
@@ -10,6 +10,7 @@ from google.generativeai.types import (HarmBlockThreshold, HarmCategory)
|
|
from loguru import logger
|
|
from loguru import logger
|
|
import traceback
|
|
import traceback
|
|
|
|
|
|
|
|
+from utils.json_utils import parse_general_json
|
|
|
|
|
|
CACHE_DIR = '/app/cache/'
|
|
CACHE_DIR = '/app/cache/'
|
|
# CACHE_DIR = '/Users/z/Downloads/'
|
|
# CACHE_DIR = '/Users/z/Downloads/'
|
|
@@ -56,7 +57,7 @@ class GoogleAI(object):
|
|
response = model.generate_content(
|
|
response = model.generate_content(
|
|
contents=[
|
|
contents=[
|
|
video,
|
|
video,
|
|
- "你是一名专业的短视频分析师,请你输出这个视频的完整口播,只输出文字即可。使用一下JSON格式输出:{'text': string}",
|
|
|
|
|
|
+ '你是一名专业的短视频分析师,请你输出这个视频的完整口播,只输出文字即可。使用以下JSON格式输出,不要包含任何额外的解释、注释或非JSON文本:{"text": string}',
|
|
],
|
|
],
|
|
stream=False,
|
|
stream=False,
|
|
request_options={
|
|
request_options={
|
|
@@ -64,11 +65,10 @@ class GoogleAI(object):
|
|
},
|
|
},
|
|
)
|
|
)
|
|
# 打印响应内容用于调试
|
|
# 打印响应内容用于调试
|
|
- logger.info(f"[+]Response text: {response.text}")
|
|
|
|
- try:
|
|
|
|
- text = orjson.loads(response.text.strip())['text']
|
|
|
|
- except orjson.JSONDecodeError as json_error:
|
|
|
|
- logger.error(f"[内容分析] JSON解析错误, 响应内容: {response.text}, 错误信息: {json_error}")
|
|
|
|
|
|
+ logger.info(f"[+] 响应内容: {response.text}")
|
|
|
|
+ # 使用通用 JSON 解析函数解析响应
|
|
|
|
+ text = parse_general_json(response.text, key='text')
|
|
|
|
+ if text is None:
|
|
return
|
|
return
|
|
# text = orjson.loads(response.text.strip())['text']
|
|
# text = orjson.loads(response.text.strip())['text']
|
|
genai.delete_file(name=video.name)
|
|
genai.delete_file(name=video.name)
|