import sys sys.path.append("./novel-server") sys.path.append("agents") import yaml import os import argparse import random from SOP import SOP from Agent import Agent from Environment import Environment from gradio_base import Client from Memory import Memory from myagent import Node, MyAgent, ask_gpt from typing import List, Tuple from PROMPT import NOVEL_PROMPT from myutils import print_log, new_parse import json from gradio_base import Client from cmd_outline import run_node_1, run_node_2 from cmd_perform import init, run from create_sop import create_sop def show_in_gradio(state, name, chunk, node_name): if state == 30: Client.send_server(str([state, name, chunk, node_name, 50])) return if name.lower() in ["summary", "recorder"]: """It is recorder""" name = "Recorder" if state == 0: state = 22 else: state = 21 else: if Client.current_node != node_name and state == 0: state = 12 Client.current_node = node_name elif Client.current_node != node_name and state != 0: assert False else: state = 10 + state Client.send_server(str([state, name, chunk, node_name, 50])) if __name__ == "__main__": MyAgent.SIMULATION = False MyAgent.TEMPERATURE = 0.3 stream_output = True output_func = show_in_gradio print("in") if output_func is not None: client = Client() Client.send_server = client.send_message client.send_message( { "agents_name": ['Elmo','Abby', 'Zoe', 'Ernie', 'Bert', 'Oscar'], "nodes_name": ['Node 1','Node 2','Node 3', 'Node 4', 'state1', 'state2', 'state3', 'state4'], "output_file_path": f"{os.getcwd()+'/novel_outline'}", "requirement": NOVEL_PROMPT['Node 1']["task"], "api_key": "sk-xxxxxxxxxxxxxxxxxxxx" } ) client.listening_for_start_() os.environ["API_KEY"] = client.cache["api_key"] MyAgent.API_KEY = client.cache["api_key"] NOVEL_PROMPT['Node 1']['task'] = client.cache['requirement'] print("Received: ", client.cache['requirement']) outline = run_node_1( stream_output=stream_output, output_func=output_func, task_prompt=client.cache['requirement'] ) else: outline = run_node_1( stream_output=stream_output, output_func=output_func ) # pass print(outline) run_node_2(outline, stream_output=stream_output, output_func=output_func) print("done") create_sop() with open("novel_outline.json", 'r') as f: data = json.load(f) name_list = list(data["agents"].keys()) show_in_gradio(30, str(name_list), " ", " ") agents,sop,environment = init("novel_outline.json") run(agents,sop,environment)