Enhanced code execution

This commit is contained in:
Saifeddine ALOUI 2023-08-20 00:59:13 +02:00
parent 5d8e8c7fcc
commit 68fed9326b
4 changed files with 18 additions and 10 deletions

4
app.py
View File

@ -53,7 +53,7 @@ try:
from lollms.binding import LOLLMSConfig, BindingBuilder
from lollms.personality import AIPersonality
from lollms.config import BaseConfig
from lollms.helpers import ASCIIColors, trace_exception
from lollms.helpers import ASCIIColors, get_trace_exception, trace_exception
from lollms.paths import LollmsPaths
from api.db import Discussion
@ -443,7 +443,7 @@ class LoLLMsWebUI(LoLLMsAPPI):
# Get the output.
output = interpreter.getvalue()
except Exception as ex:
output = str(ex)
output = str(ex)+"\n"+get_trace_exception(ex)
end_time = time.time()
return jsonify({"output":output,"execution_time":end_time - start_time})

File diff suppressed because one or more lines are too long

2
web/dist/index.html vendored
View File

@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LoLLMS WebUI - Welcome</title>
<script type="module" crossorigin src="/assets/index-31e94240.js"></script>
<script type="module" crossorigin src="/assets/index-19fca3d7.js"></script>
<link rel="stylesheet" href="/assets/index-90cbdba9.css">
</head>
<body>

View File

@ -69,12 +69,16 @@ const markdownIt = new MarkdownIt('commonmark', {
'" class="overflow-x-auto break-all scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary">' +
highlightedCode +
'</code>' +
'</pre>' +
'<pre id="pre_exec_' +
id + '" class="hljs p-1 hidden rounded-md break-all grid grid-cols-1 mt-2">' +
'Execution output:<br>' +
'<code id="code_exec_' +
id +
'" class="overflow-x-auto hidden break-all scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary">' +
'" class="overflow-x-auto break-all scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary">' +
'</code>' +
'</pre>' +
'</div>'
);
} catch (error) {
@ -116,13 +120,13 @@ const markdownIt = new MarkdownIt('commonmark', {
'</code>' +
'<code id="code_exec_' +
id +
'" class="overflow-x-auto hidden break-all scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary">' +
'" class="overflow-x-auto mt-2 hidden break-all scrollbar-thin scrollbar-track-bg-light-tone scrollbar-thumb-bg-light-tone-panel hover:scrollbar-thumb-primary dark:scrollbar-track-bg-dark-tone dark:scrollbar-thumb-bg-dark-tone-panel dark:hover:scrollbar-thumb-primary active:scrollbar-thumb-secondary">' +
'</code>' +
'</pre>' +
'</div>';
return codeString;
},
bulletListMarker: '',
bulletListMarker: '-',
}).use(attrs).use(anchor).use(implicitFigures).use(emoji); // Add attrs plugin for adding attributes to elements
@ -208,7 +212,8 @@ export default {
function executeCode(id) {
const codeElement = document.getElementById('code_' + id);
const codeExecElement = document.getElementById('code_exec_' + id);
codeExecElement.classList.remove('hidden');
const preExecElement = document.getElementById('pre_exec_' + id);
const code = codeElement.innerText
const json = JSON.stringify({ 'code': code })
console.log(json)
@ -223,6 +228,7 @@ export default {
.then(jsonData => {
// Now you can work with the JSON data
console.log(jsonData);
preExecElement.classList.remove('hidden');
codeExecElement.innerText=jsonData.output
})
.catch(error => {