2025-09-22 23:28:55 +08:00

176 lines
5.9 KiB
Python

from bson import ObjectId
from tools.database.mongo import mainDB
from langchain.tools import tool
@tool(return_direct=True)
def UpdateDiagnosisAndAssessmentTool(session_id: str, diagnosis_and_assessment: str):
"""
更新诊断与资产评估报告
Args:
session_id: 会话id
diagnosis_and_assessment: 诊断与资产评估报告
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
return UpdateDiagnosisAndAssessment(session_id, diagnosis_and_assessment)
def UpdateDiagnosisAndAssessment(session_id: str, diagnosis_and_assessment: str):
"""
更新诊断与资产评估报告
Args:
session_id: 会话id
diagnosis_and_assessment: 诊断与资产评估报告
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
script = mainDB.agent_writer_session.update_one({"_id": ObjectId(session_id)},{"$set":{"diagnosis_and_assessment":diagnosis_and_assessment}})
return {
"success": script.modified_count > 0,
}
@tool(return_direct=True)
def UpdateAdaptationIdeasTool(session_id: str, adaptation_ideas: str):
"""
更新改编思路
Args:
session_id: 会话id
adaptation_ideas: 改编思路
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
return UpdateAdaptationIdeas(session_id, adaptation_ideas)
def UpdateAdaptationIdeas(session_id: str, adaptation_ideas: str):
"""
更新改编思路
Args:
session_id: 会话id
adaptation_ideas: 改编思路
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
script = mainDB.agent_writer_session.update_one({"_id": ObjectId(session_id)},{"$set":{"adaptation_ideas":adaptation_ideas}})
return {
"success": script.modified_count > 0,
}
@tool(return_direct=True)
def UpdateScriptBibleTool(
session_id: str,
core_outline:str|None = None,
character_profile:str|None = None,
core_event_timeline:str|None = None,
character_list:str|None = None,
):
"""
更新剧本圣经
Args:
session_id: 会话id
core_outline: 核心大纲
character_profile: 核心人物小传
core_event_timeline: 核心事件时间线
character_list: 总角色表
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
return UpdateScriptBible(session_id, core_outline, character_profile, core_event_timeline, character_list)
def UpdateScriptBible(
session_id: str,
core_outline:str|None = None,
character_profile:str|None = None,
core_event_timeline:str|None = None,
character_list:str|None = None,
):
"""
更新剧本圣经
Args:
session_id: 会话id
core_outline: 核心大纲
character_profile: 核心人物小传
core_event_timeline: 核心事件时间线
character_list: 总角色表
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
if core_outline is None and character_profile is None and core_event_timeline is None and character_list is None:
return {
"success": False,
}
update_dict = {}
if core_outline is not None:
update_dict["script_bible.core_outline"] = core_outline
if character_profile is not None:
update_dict["script_bible.character_profile"] = character_profile
if core_event_timeline is not None:
update_dict["script_bible.core_event_timeline"] = core_event_timeline
if character_list is not None:
update_dict["script_bible.character_list"] = character_list
script = mainDB.agent_writer_session.update_one({"_id": ObjectId(session_id)},{"$set":update_dict})
return {
"success": script.modified_count > 0,
}
@tool(return_direct=True)
def SetTotalEpisodeNumTool(session_id: str, total_episode_num: int):
"""
设置总集数
Args:
session_id: 会话id
total_episode_num: 总集数
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
return SetTotalEpisodeNum(session_id, total_episode_num)
def SetTotalEpisodeNum(session_id: str, total_episode_num: int):
"""
设置总集数
Args:
session_id: 会话id
total_episode_num: 总集数
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
script = mainDB.agent_writer_session.update_one({"_id": ObjectId(session_id)},{"$set":{"total_episode_num":total_episode_num}})
return {
"success": script.modified_count > 0,
}
@tool(return_direct=True)
def UpdateOneEpisodeTool(session_id: str, episode_num:int, content: str):
"""
更新单集内容
Args:
session_id: 会话id
episode_num: 剧集编号
content: 剧集内容
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
return UpdateOneEpisode(session_id, episode_num, content)
def UpdateOneEpisode(session_id: str, episode_num:int, content: str):
"""
更新单集内容
Args:
session_id: 会话id
episode_num: 剧集编号
content: 剧集内容
Returns:
Dict: 返回一个包含以下字段的字典:
success (bool): 是否更新成功
"""
script = mainDB.agent_writer_episodes.update_one({"session_id": session_id, "episode_num": episode_num},{"$set":{"content":content}}, upsert=True)
return {
"success": script.modified_count > 0,
}