File size: 3,609 Bytes
840f3e9
cac4e7b
4d969ce
 
 
6141f1b
 
 
 
 
 
 
 
9f9bea7
0e9c24d
 
 
 
5bcc2da
 
 
 
0e9c24d
1923ab6
722929d
ed306c8
4d969ce
 
 
ed306c8
cac4e7b
4d969ce
 
 
 
d8a9c24
cac4e7b
ed306c8
cac4e7b
 
 
4d969ce
 
722929d
4d969ce
722929d
 
d56f6b1
cac4e7b
7ddfa83
05c2b03
 
 
 
 
b1c069d
6141f1b
febf589
4e847ac
febf589
2897070
f017154
d8f2386
da61fc4
 
 
 
d8f2386
 
da61fc4
 
11d87fa
da61fc4
11d87fa
da61fc4
 
11d87fa
 
d8f2386
e90039b
 
 
 
 
 
 
 
 
 
 
 
9049e22
e90039b
 
 
 
 
 
 
 
 
 
 
 
 
febf589
0e9c24d
febf589
9602a81
febf589
576e7cf
 
 
 
 
 
cac4e7b
576e7cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import base64, os

from autogen import ConversableAgent, AssistantAgent
from autogen.coding import LocalCommandLineCodeExecutor

def read_image_file(image_file_path: str) -> str:
    with open(image_file_path, "rb") as image_file:
        image_data = image_file.read()
        return base64.b64encode(image_data).decode("utf-8")

def generate_markdown_code(image_data: str) -> str:
    return f"![Image](data:image/png;base64,{image_data})"

def read_file(file_path: str) -> str:
    with open(file_path, 'r', encoding='utf-8') as file:
        return file.read()

def format_as_markdown(code: str) -> str:
    markdown_code = '```\n'
    markdown_code += code
    markdown_code += '\n```'
    return markdown_code

def run_multi_agent(llm, message):
    llm_config = {"model": llm}
    
    executor = LocalCommandLineCodeExecutor(
        timeout=60,
        work_dir="coding",
    )

    code_executor_agent = ConversableAgent(
        name="code_executor_agent",
        llm_config=False,
        code_execution_config={"executor": executor},
        human_input_mode="NEVER",
        default_auto_reply="Please continue. If everything is done, reply 'TERMINATE'.",
    )

    print("### code_executor_agent.system_message = " + code_executor_agent.system_message)

    code_writer_agent = AssistantAgent(
        name="code_writer_agent",
        llm_config=llm_config,
        code_execution_config=False,
        human_input_mode="NEVER",
    )
    
    print("### code_writer_agent.system_message = " + code_writer_agent.system_message)
    
    chat_result = code_executor_agent.initiate_chat(
        code_writer_agent,
        message=message,
        max_turns=10
    )

    image_data = read_image_file("/home/user/app/coding/ytd_stock_gains.png")
    markdown_code = generate_markdown_code(image_data)

    print("### markdown_code = " + markdown_code)

    files_in_folder = os.listdir("coding")

    file_name_py = ""
    file_name_sh = ""
    
    print(f"Files in {files_in_folder}:")
    for file in files_in_folder:
        print(file)
        if file :
            _, file_extension = os.path.splitext(file)
            if file_extension == ".py":
                file_name_py = file
            if file_extension == ".sh":
                file_name_sh = file
    
    print("#" + file_name_py)
    print("#" + file_name_sh)
    
    try:
        file_path_py = "coding/" + file_name_py
        print("##" + file_path_py)
        code_py = read_file(file_path_py)
        markdown_code_py = format_as_markdown(code_py)
        print("### " + markdown_code_py)
    except FileNotFoundError:
        print(f"Error: File '{file_path_sh}' not found.")
    except IOError as e:
        print(f"Error reading file '{file_path_sh}': {e.strerror}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
    
    try:
        file_path_sh = "coding/" + file_name_sh
        print("##" + file_path_sh)
        code_sh = read_file(file_path_sh)
        markdown_code_sh = format_as_markdown(code_sh)
        print("### " + markdown_code_sh)
    except FileNotFoundError:
        print(f"Error: File '{file_path_sh}' not found.")
    except IOError as e:
        print(f"Error reading file '{file_path_sh}': {e.strerror}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

    #print("### markdown_code = " + markdown_code)
    
    #print("###")
    #print(chat_result)
    #print("###")

    result = markdown_code + "\n" + markdown_code_sh + "\n" + markdown_code_py

    print("###")
    print(result)
    print("###")
    
    return result