Spaces:
Running
Running
Update utils.py
Browse files
utils.py
CHANGED
|
@@ -71,9 +71,17 @@ def parse_exec_result_nb(execution):
|
|
| 71 |
return outputs
|
| 72 |
|
| 73 |
|
| 74 |
-
system_template = """
|
| 75 |
-
<
|
| 76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
"""
|
| 78 |
|
| 79 |
user_template = """<div class="alert alert-block alert-success">
|
|
@@ -115,19 +123,50 @@ def create_base_notebook(messages):
|
|
| 115 |
"source": "",
|
| 116 |
"outputs": []
|
| 117 |
})
|
| 118 |
-
|
|
|
|
| 119 |
|
| 120 |
for message in messages:
|
| 121 |
if message["role"] == "system":
|
| 122 |
text = system_template.format(message["content"].replace('\n', '<br>'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
elif message["role"] == "user":
|
| 124 |
-
text = user_template.format(message["content"])
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
})
|
| 130 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
|
| 132 |
def execute_code(sbx, code):
|
| 133 |
execution = sbx.run_code(code, on_stdout=lambda data: print('stdout:', data))
|
|
@@ -158,9 +197,9 @@ def update_notebook_display(notebook_data):
|
|
| 158 |
return notebook_body
|
| 159 |
|
| 160 |
def run_interactive_notebook(client, model, messages, sbx, max_new_tokens=512):
|
| 161 |
-
notebook_data = create_base_notebook(messages)
|
| 162 |
try:
|
| 163 |
-
code_cell_counter = 0
|
| 164 |
while True:
|
| 165 |
response_stream = client.chat.completions.create(
|
| 166 |
model=model,
|
|
|
|
| 71 |
return outputs
|
| 72 |
|
| 73 |
|
| 74 |
+
system_template = """\
|
| 75 |
+
<details>
|
| 76 |
+
<summary>
|
| 77 |
+
<div class="alert alert-block alert-info">
|
| 78 |
+
<b>System:</b>
|
| 79 |
+
</div>
|
| 80 |
+
</summary>
|
| 81 |
+
<div class="alert alert-block alert-info">
|
| 82 |
+
{}
|
| 83 |
+
</div>
|
| 84 |
+
</details>
|
| 85 |
"""
|
| 86 |
|
| 87 |
user_template = """<div class="alert alert-block alert-success">
|
|
|
|
| 123 |
"source": "",
|
| 124 |
"outputs": []
|
| 125 |
})
|
| 126 |
+
|
| 127 |
+
code_cell_counter = 0
|
| 128 |
|
| 129 |
for message in messages:
|
| 130 |
if message["role"] == "system":
|
| 131 |
text = system_template.format(message["content"].replace('\n', '<br>'))
|
| 132 |
+
base_notebook["cells"].append({
|
| 133 |
+
"cell_type": "markdown",
|
| 134 |
+
"metadata": {},
|
| 135 |
+
"source": text
|
| 136 |
+
})
|
| 137 |
elif message["role"] == "user":
|
| 138 |
+
text = user_template.format(message["content"].replace('\n', '<br>'))
|
| 139 |
+
base_notebook["cells"].append({
|
| 140 |
+
"cell_type": "markdown",
|
| 141 |
+
"metadata": {},
|
| 142 |
+
"source": text
|
| 143 |
+
})
|
| 144 |
+
|
| 145 |
+
elif message["role"] == "assistant" and "tool_call" in message:
|
| 146 |
+
base_notebook["cells"].append({
|
| 147 |
+
"cell_type": "code",
|
| 148 |
+
"execution_count": None,
|
| 149 |
+
"metadata": {},
|
| 150 |
+
"source": message["content"],
|
| 151 |
+
"outputs": []
|
| 152 |
})
|
| 153 |
+
|
| 154 |
+
elif message["role"] == "ipython":
|
| 155 |
+
code_cell_counter +=1
|
| 156 |
+
base_notebook["cells"][-1]["outputs"].append(message["content"])
|
| 157 |
+
base_notebook["cells"][-1]["execution_count"] = code_cell_counter
|
| 158 |
+
|
| 159 |
+
elif message["role"] == "assistant" and "tool_call" not in message:
|
| 160 |
+
base_notebook["cells"].append({
|
| 161 |
+
"cell_type": "markdown",
|
| 162 |
+
"metadata": {},
|
| 163 |
+
"source": message["content"]
|
| 164 |
+
})
|
| 165 |
+
|
| 166 |
+
else:
|
| 167 |
+
raise ValueError(message)
|
| 168 |
+
|
| 169 |
+
return base_notebook, code_cell_counter
|
| 170 |
|
| 171 |
def execute_code(sbx, code):
|
| 172 |
execution = sbx.run_code(code, on_stdout=lambda data: print('stdout:', data))
|
|
|
|
| 197 |
return notebook_body
|
| 198 |
|
| 199 |
def run_interactive_notebook(client, model, messages, sbx, max_new_tokens=512):
|
| 200 |
+
notebook_data, code_cell_counter = create_base_notebook(messages)
|
| 201 |
try:
|
| 202 |
+
#code_cell_counter = 0
|
| 203 |
while True:
|
| 204 |
response_stream = client.chat.completions.create(
|
| 205 |
model=model,
|