修改随机生成

This commit is contained in:
997146918 2025-06-27 10:54:51 +08:00
parent c591f93da1
commit 10734baabf

View File

@ -15,7 +15,7 @@ from Utils.AIGCLog import AIGCLog
from ollama import Client, ResponseError from ollama import Client, ResponseError
app = FastAPI(title = "AI 通信服务") app = FastAPI(title = "AI 通信服务")
logger = AIGCLog(name = "TestLog", log_file = "aigc.log") logger = AIGCLog(name = "AIGC", log_file = "./Log/aigc.log")
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--model', type=str, default='deepseek-r1:1.5b', parser.add_argument('--model', type=str, default='deepseek-r1:1.5b',
@ -63,6 +63,7 @@ async def websocket_endpoint(websocket: WebSocket, client_id: str):
data = await websocket.receive_text() data = await websocket.receive_text()
logger.log(logging.INFO, f"收到UE5消息 [{client_id}]: {data}") logger.log(logging.INFO, f"收到UE5消息 [{client_id}]: {data}")
success, prompt = process_prompt(data) success, prompt = process_prompt(data)
lastPrompt = prompt
# 调用AI生成响应 # 调用AI生成响应
if(success): if(success):
asyncio.create_task(generateAIChat(prompt, websocket)) asyncio.create_task(generateAIChat(prompt, websocket))
@ -82,9 +83,7 @@ async def websocket_endpoint(websocket: WebSocket, client_id: str):
def process_prompt(promptFromUE: str) -> Tuple[bool, str]: def process_prompt(promptFromUE: str) -> Tuple[bool, str]:
try: try:
lastPrompt = promptFromUE
data = json.loads(promptFromUE) data = json.loads(promptFromUE)
# 提取数据 # 提取数据
dialog_scene = data["dialogContent"]["dialogScene"] dialog_scene = data["dialogContent"]["dialogScene"]
persons = data["persons"] persons = data["persons"]
@ -92,10 +91,8 @@ def process_prompt(promptFromUE: str) -> Tuple[bool, str]:
assert len(persons) == 2 assert len(persons) == 2
for person in persons: for person in persons:
print(f" 姓名: {person['name']}, 职业: {person['job']}") print(f" 姓名: {person['name']}, 职业: {person['job']}")
#动态标识吗 防止重复输入导致的结果重复
dynamic_token = str(int(time.time() % 1000))
prompt = f""" prompt = f"""
[动态标识码:{dynamic_token}]
你是一个游戏NPC对话生成器请严格按以下要求生成两个路人NPC{persons[0]["name"]}{persons[1]["name"]}的日常对话 你是一个游戏NPC对话生成器请严格按以下要求生成两个路人NPC{persons[0]["name"]}{persons[1]["name"]}的日常对话
1. 生成2轮完整对话每轮包含双方各一次发言共4句 1. 生成2轮完整对话每轮包含双方各一次发言共4句
2. 对话场景{dialog_scene} 2. 对话场景{dialog_scene}
@ -140,6 +137,11 @@ def run_webserver():
) )
async def generateAIChat(prompt: str, websocket: WebSocket): async def generateAIChat(prompt: str, websocket: WebSocket):
#动态标识吗 防止重复输入导致的结果重复
dynamic_token = str(int(time.time() % 1000))
prompt = f"""
[动态标识码:{dynamic_token}]
""" + prompt
logger.log(logging.INFO, "prompt:" + prompt) logger.log(logging.INFO, "prompt:" + prompt)
starttime = time.time() starttime = time.time()
receivemessage=[ receivemessage=[