correct waiting for ES, change bot, delete bot
All checks were successful
Gitea Docker Redeploy / Redploy-App-on-self-via-SSH (push) Successful in 29s
All checks were successful
Gitea Docker Redeploy / Redploy-App-on-self-via-SSH (push) Successful in 29s
This commit is contained in:
parent
86a8d4589f
commit
2645b89488
@ -612,8 +612,8 @@ def catchAll(path):
|
|||||||
return send_from_directory('./public', path)
|
return send_from_directory('./public', path)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
|
|
||||||
|
def main():
|
||||||
LOG_LEVEL = os.getenv("LOG_LEVEL")
|
LOG_LEVEL = os.getenv("LOG_LEVEL")
|
||||||
if LOG_LEVEL:
|
if LOG_LEVEL:
|
||||||
logging.basicConfig(level=eval("logging." + LOG_LEVEL))
|
logging.basicConfig(level=eval("logging." + LOG_LEVEL))
|
||||||
@ -634,12 +634,19 @@ if __name__ == '__main__':
|
|||||||
app.logger.addHandler(handler)
|
app.logger.addHandler(handler)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
wait_for_elasticsearch()
|
#wait_for_elasticsearch()
|
||||||
download_llm()
|
download_llm()
|
||||||
connections.create_connection(hosts=app.config['elastic_uri'], request_timeout=60)
|
connections.create_connection(hosts=app.config['elastic_uri'], request_timeout=60)
|
||||||
|
wait_for_elasticsearch()
|
||||||
init_indicies()
|
init_indicies()
|
||||||
create_default_users()
|
create_default_users()
|
||||||
app.run(debug=False, threaded=True, host='0.0.0.0')
|
app.run(debug=False, threaded=True, host='0.0.0.0')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +88,7 @@ def wait_for_elasticsearch():
|
|||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
client = Elasticsearch(hosts=elastic_url)
|
client = Elasticsearch(hosts=elastic_url)
|
||||||
|
client.indices.get_alias(index="*")
|
||||||
#connections.create_connection(hosts=app.config['elastic_uri'])
|
#connections.create_connection(hosts=app.config['elastic_uri'])
|
||||||
#connections.get_connection().cluster.health(wait_for_status='yellow')
|
#connections.get_connection().cluster.health(wait_for_status='yellow')
|
||||||
#init_indicies()
|
#init_indicies()
|
||||||
@ -100,3 +101,6 @@ def wait_for_elasticsearch():
|
|||||||
print("Elasticsearch not found! Wait %s seconds!" % i, flush=True)
|
print("Elasticsearch not found! Wait %s seconds!" % i, flush=True)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -192,6 +192,10 @@
|
|||||||
<a id="tab3" class="nav-link disabled" data-bs-toggle="tab" href="#tweak_bot_tab">Tweak bot</a>
|
<a id="tab3" class="nav-link disabled" data-bs-toggle="tab" href="#tweak_bot_tab">Tweak bot</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item">
|
||||||
|
<a id="tab4" class="nav-link disabled" data-bs-toggle="tab" href="#question_templates_tab">Question templates</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- Tab panes -->
|
<!-- Tab panes -->
|
||||||
@ -325,6 +329,13 @@
|
|||||||
<form>
|
<form>
|
||||||
|
|
||||||
|
|
||||||
|
<label for="change_bots">Choose a bot:</label>
|
||||||
|
<select name="change_bots" id="change_bot_select" class="form-select">
|
||||||
|
<option value="md">Some bot</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
<label for="bot_name" class="form-label">Name:</label>
|
<label for="bot_name" class="form-label">Name:</label>
|
||||||
<input type="bot_name" class="form-control" id="bot_name" placeholder="The displayed name of the bot.">
|
<input type="bot_name" class="form-control" id="bot_name" placeholder="The displayed name of the bot.">
|
||||||
|
|
||||||
|
@ -72,8 +72,43 @@ async function register(email, pwd){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function text2speech(txt){
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("text", txt);
|
||||||
|
const response = await fetch("/text2speech", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
'accept': '*/*'//,
|
||||||
|
//'Authorization': 'Bearer ' + jwt
|
||||||
|
},
|
||||||
|
body: formData
|
||||||
|
});
|
||||||
|
return response.json();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//======= bot crud ===================
|
||||||
|
|
||||||
|
async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("name", name);
|
||||||
|
formData.append("visibility", visibility);
|
||||||
|
formData.append("description", description);
|
||||||
|
formData.append("llm_model", llm);
|
||||||
|
formData.append("system_prompt", sys_prompt);
|
||||||
|
|
||||||
|
const response = await fetch("/bot", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
'accept': '*/*',
|
||||||
|
'Authorization': 'Bearer ' + jwt
|
||||||
|
},
|
||||||
|
body: formData
|
||||||
|
});
|
||||||
|
return response.json();
|
||||||
|
}
|
||||||
|
|
||||||
async function get_bots(jwt){
|
async function get_bots(jwt){
|
||||||
if(jwt){
|
if(jwt){
|
||||||
const response = await fetch("/bot", {
|
const response = await fetch("/bot", {
|
||||||
@ -96,21 +131,7 @@ async function get_bots(jwt){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function text2speech(txt){
|
async function change_bot(jwt, name, visibility, description, llm, sys_prompt){
|
||||||
const formData = new FormData();
|
|
||||||
formData.append("text", txt);
|
|
||||||
const response = await fetch("/text2speech", {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
'accept': '*/*'//,
|
|
||||||
//'Authorization': 'Bearer ' + jwt
|
|
||||||
},
|
|
||||||
body: formData
|
|
||||||
});
|
|
||||||
return response.json();
|
|
||||||
}
|
|
||||||
|
|
||||||
async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("name", name);
|
formData.append("name", name);
|
||||||
formData.append("visibility", visibility);
|
formData.append("visibility", visibility);
|
||||||
@ -119,7 +140,7 @@ async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
|||||||
formData.append("system_prompt", sys_prompt);
|
formData.append("system_prompt", sys_prompt);
|
||||||
|
|
||||||
const response = await fetch("/bot", {
|
const response = await fetch("/bot", {
|
||||||
method: "POST",
|
method: "PUT",
|
||||||
headers: {
|
headers: {
|
||||||
'accept': '*/*',
|
'accept': '*/*',
|
||||||
'Authorization': 'Bearer ' + jwt
|
'Authorization': 'Bearer ' + jwt
|
||||||
@ -129,6 +150,23 @@ async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
|||||||
return response.json();
|
return response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async function delete_bot(jwt, bot_id){
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("id", bot_id);
|
||||||
|
const response = await fetch("/bot", {
|
||||||
|
method: "DELETE",
|
||||||
|
headers: {
|
||||||
|
'accept': '*/*',
|
||||||
|
'Authorization': 'Bearer ' + jwt
|
||||||
|
},
|
||||||
|
body: formData
|
||||||
|
});
|
||||||
|
return response.json();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async function* ask_question(bot_id, question, system_prompt=""){
|
async function* ask_question(bot_id, question, system_prompt=""){
|
||||||
let socket;
|
let socket;
|
||||||
let room = null;
|
let room = null;
|
||||||
@ -243,6 +281,30 @@ function alert_bot_change(success){
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function is_graph(obj){
|
||||||
|
if("nodes" in obj){
|
||||||
|
if("edges" in obj || "links" in obj){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function rename_attr(obj, old, s){
|
||||||
|
if(obj[old]){
|
||||||
|
obj[s] = obj[old];
|
||||||
|
delete obj[old];
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
window.onload = async ()=>{
|
window.onload = async ()=>{
|
||||||
document.documentElement.style.setProperty("--bs-primary-rgb", "45, 124, 172");
|
document.documentElement.style.setProperty("--bs-primary-rgb", "45, 124, 172");
|
||||||
|
|
||||||
@ -275,12 +337,16 @@ window.onload = async ()=>{
|
|||||||
|
|
||||||
//change bot form
|
//change bot form
|
||||||
let change_bot_btn = document.getElementById("change_bot_btn");
|
let change_bot_btn = document.getElementById("change_bot_btn");
|
||||||
|
let change_bot_select = document.getElementById("change_bot_select");
|
||||||
let change_bot_name = document.getElementById("change_bot_name");
|
let change_bot_name = document.getElementById("change_bot_name");
|
||||||
let change_bot_visibility_select = document.getElementById("change_bot_visibility_select");
|
let change_bot_visibility_select = document.getElementById("change_bot_visibility_select");
|
||||||
let change_bot_description = document.getElementById("change_bot_description");
|
let change_bot_description = document.getElementById("change_bot_description");
|
||||||
let change_bot_llm_select = document.getElementById("change_bot_llm_select");
|
let change_bot_llm_select = document.getElementById("change_bot_llm_select");
|
||||||
let change_bot_system_prompt = document.getElementById("change_bot_system_prompt");
|
let change_bot_system_prompt = document.getElementById("change_bot_system_prompt");
|
||||||
|
|
||||||
|
let delete_bot_btn = document.getElementById("delete_bot_btn");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -323,6 +389,8 @@ window.onload = async ()=>{
|
|||||||
//enable create bot button
|
//enable create bot button
|
||||||
create_bot_btn.removeAttribute("disabled");
|
create_bot_btn.removeAttribute("disabled");
|
||||||
change_bot_btn.removeAttribute("disabled");
|
change_bot_btn.removeAttribute("disabled");
|
||||||
|
delete_bot_btn.removeAttribute("disabled");
|
||||||
|
|
||||||
login_btn.style.display = "none";
|
login_btn.style.display = "none";
|
||||||
logout_btn.style.display = "block";
|
logout_btn.style.display = "block";
|
||||||
|
|
||||||
@ -335,6 +403,8 @@ window.onload = async ()=>{
|
|||||||
//disable create bot button
|
//disable create bot button
|
||||||
create_bot_btn.setAttribute("disabled", "disabled");
|
create_bot_btn.setAttribute("disabled", "disabled");
|
||||||
change_bot_btn.setAttribute("disabled", "disabled");
|
change_bot_btn.setAttribute("disabled", "disabled");
|
||||||
|
delete_bot_btn.setAttribute("disabled", "disabled");
|
||||||
|
|
||||||
logout_btn.style.display = "none";
|
logout_btn.style.display = "none";
|
||||||
login_btn.style.display = "block";
|
login_btn.style.display = "block";
|
||||||
|
|
||||||
@ -344,6 +414,29 @@ window.onload = async ()=>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function update_ui(){
|
||||||
|
|
||||||
|
//are we logged in?
|
||||||
|
let jwt = localStorage.getItem("jwt");
|
||||||
|
if(jwt === null){
|
||||||
|
let ls = await get_bots();
|
||||||
|
set_bot_list(ls);
|
||||||
|
set_ui_loggedin(false);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
let ls = await get_bots(jwt);
|
||||||
|
set_bot_list(ls);
|
||||||
|
set_ui_loggedin(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
//init: are we logged in on start?
|
//init: are we logged in on start?
|
||||||
let jwt = localStorage.getItem("jwt");
|
let jwt = localStorage.getItem("jwt");
|
||||||
if(jwt === null){
|
if(jwt === null){
|
||||||
@ -356,6 +449,10 @@ window.onload = async ()=>{
|
|||||||
set_bot_list(ls);
|
set_bot_list(ls);
|
||||||
set_ui_loggedin(true);
|
set_ui_loggedin(true);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
update_ui();
|
||||||
|
|
||||||
|
|
||||||
//init chat
|
//init chat
|
||||||
log_msg(get_bot_name(), "Ask a question!");
|
log_msg(get_bot_name(), "Ask a question!");
|
||||||
@ -386,9 +483,10 @@ window.onload = async ()=>{
|
|||||||
clean_bot_create_form();
|
clean_bot_create_form();
|
||||||
|
|
||||||
//update bot list
|
//update bot list
|
||||||
let ls = await get_bots(jwt);
|
//let ls = await get_bots(jwt);
|
||||||
set_bot_list(ls);
|
//set_bot_list(ls);
|
||||||
|
|
||||||
|
update_ui();
|
||||||
}
|
}
|
||||||
catch(err){
|
catch(err){
|
||||||
console.error(err);
|
console.error(err);
|
||||||
@ -398,6 +496,29 @@ window.onload = async ()=>{
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
delete_bot_btn.onclick = async ()=>{
|
||||||
|
let jwt = localStorage.getItem("jwt");
|
||||||
|
if(jwt){
|
||||||
|
let bot_id = change_bot_select.value
|
||||||
|
try{
|
||||||
|
let r = await delete_bot(jwt, bot_id);
|
||||||
|
alert_bot_change(true);
|
||||||
|
//clean_bot_create_form();
|
||||||
|
|
||||||
|
//update bot list
|
||||||
|
//let ls = await get_bots(jwt);
|
||||||
|
//set_bot_list(ls);
|
||||||
|
|
||||||
|
|
||||||
|
update_ui();
|
||||||
|
}
|
||||||
|
catch(err){
|
||||||
|
console.error(err);
|
||||||
|
console.error("Couldn't delete bot!");
|
||||||
|
alert_bot_change(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
change_bot_btn.onclick = async ()=>{
|
change_bot_btn.onclick = async ()=>{
|
||||||
@ -422,12 +543,7 @@ window.onload = async ()=>{
|
|||||||
try{
|
try{
|
||||||
let {bot_id} = await change_bot(jwt, name, visibility, description, llm, sys_prompt);
|
let {bot_id} = await change_bot(jwt, name, visibility, description, llm, sys_prompt);
|
||||||
alert_bot_change(true);
|
alert_bot_change(true);
|
||||||
//clean_bot_create_form();
|
update_ui();
|
||||||
|
|
||||||
//update bot list
|
|
||||||
let ls = await get_bots(jwt);
|
|
||||||
set_bot_list(ls);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch(err){
|
catch(err){
|
||||||
console.error(err);
|
console.error(err);
|
||||||
@ -465,11 +581,13 @@ window.onload = async ()=>{
|
|||||||
if(!jwt) throw Error("No JWT!");
|
if(!jwt) throw Error("No JWT!");
|
||||||
|
|
||||||
localStorage.setItem("jwt", jwt);
|
localStorage.setItem("jwt", jwt);
|
||||||
set_ui_loggedin(true);
|
|
||||||
|
|
||||||
|
|
||||||
|
set_ui_loggedin(true);
|
||||||
let ls = await get_bots(jwt);
|
let ls = await get_bots(jwt);
|
||||||
set_bot_list(ls);
|
set_bot_list(ls);
|
||||||
|
|
||||||
|
|
||||||
let myModalEl = document.querySelector('#myModal');
|
let myModalEl = document.querySelector('#myModal');
|
||||||
let myModal = bootstrap.Modal.getOrCreateInstance(myModalEl);
|
let myModal = bootstrap.Modal.getOrCreateInstance(myModalEl);
|
||||||
myModal.hide();
|
myModal.hide();
|
||||||
@ -522,21 +640,18 @@ window.onload = async ()=>{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
logout_btn.onclick = async ()=>{
|
logout_btn.onclick = async ()=>{
|
||||||
localStorage.removeItem("jwt");
|
localStorage.removeItem("jwt");
|
||||||
|
|
||||||
set_ui_loggedin(false);
|
update_ui();
|
||||||
|
|
||||||
let ls = await get_bots();
|
//set_ui_loggedin(false);
|
||||||
set_bot_list(ls);
|
//let ls = await get_bots();
|
||||||
|
//set_bot_list(ls);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function replace_dom_code(f, root_ele){
|
function replace_dom_code(f, root_ele){
|
||||||
let eles = root_ele.getElementsByTagName("code");
|
let eles = root_ele.getElementsByTagName("code");
|
||||||
for(let i=0; i<eles.length; i++){
|
for(let i=0; i<eles.length; i++){
|
||||||
@ -554,24 +669,8 @@ window.onload = async ()=>{
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function is_graph(obj){
|
|
||||||
if("nodes" in obj){
|
|
||||||
if("edges" in obj || "links" in obj){
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function rename_attr(obj, old, s){
|
|
||||||
if(obj[old]){
|
|
||||||
obj[s] = obj[old];
|
|
||||||
delete obj[old];
|
|
||||||
}
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function translate_graph(obj){
|
function translate_graph(obj){
|
||||||
@ -646,6 +745,8 @@ window.onload = async ()=>{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let receiving_token_atm = false;
|
||||||
|
|
||||||
|
|
||||||
submit_btn.onclick = async evt =>{
|
submit_btn.onclick = async evt =>{
|
||||||
let input_string = user_input.value;
|
let input_string = user_input.value;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user