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)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
def main():
|
||||
LOG_LEVEL = os.getenv("LOG_LEVEL")
|
||||
if LOG_LEVEL:
|
||||
logging.basicConfig(level=eval("logging." + LOG_LEVEL))
|
||||
@ -634,12 +634,19 @@ if __name__ == '__main__':
|
||||
app.logger.addHandler(handler)
|
||||
"""
|
||||
|
||||
wait_for_elasticsearch()
|
||||
#wait_for_elasticsearch()
|
||||
download_llm()
|
||||
connections.create_connection(hosts=app.config['elastic_uri'], request_timeout=60)
|
||||
wait_for_elasticsearch()
|
||||
init_indicies()
|
||||
create_default_users()
|
||||
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:
|
||||
try:
|
||||
client = Elasticsearch(hosts=elastic_url)
|
||||
client.indices.get_alias(index="*")
|
||||
#connections.create_connection(hosts=app.config['elastic_uri'])
|
||||
#connections.get_connection().cluster.health(wait_for_status='yellow')
|
||||
#init_indicies()
|
||||
@ -100,3 +101,6 @@ def wait_for_elasticsearch():
|
||||
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>
|
||||
</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>
|
||||
|
||||
<!-- Tab panes -->
|
||||
@ -325,6 +329,13 @@
|
||||
<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>
|
||||
<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){
|
||||
if(jwt){
|
||||
const response = await fetch("/bot", {
|
||||
@ -96,21 +131,7 @@ async function get_bots(jwt){
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
||||
async function change_bot(jwt, name, visibility, description, llm, sys_prompt){
|
||||
const formData = new FormData();
|
||||
formData.append("name", name);
|
||||
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);
|
||||
|
||||
const response = await fetch("/bot", {
|
||||
method: "POST",
|
||||
method: "PUT",
|
||||
headers: {
|
||||
'accept': '*/*',
|
||||
'Authorization': 'Bearer ' + jwt
|
||||
@ -129,6 +150,23 @@ async function create_bot(jwt, name, visibility, description, llm, sys_prompt){
|
||||
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=""){
|
||||
let socket;
|
||||
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 ()=>{
|
||||
document.documentElement.style.setProperty("--bs-primary-rgb", "45, 124, 172");
|
||||
|
||||
@ -275,12 +337,16 @@ window.onload = async ()=>{
|
||||
|
||||
//change bot form
|
||||
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_visibility_select = document.getElementById("change_bot_visibility_select");
|
||||
let change_bot_description = document.getElementById("change_bot_description");
|
||||
let change_bot_llm_select = document.getElementById("change_bot_llm_select");
|
||||
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
|
||||
create_bot_btn.removeAttribute("disabled");
|
||||
change_bot_btn.removeAttribute("disabled");
|
||||
delete_bot_btn.removeAttribute("disabled");
|
||||
|
||||
login_btn.style.display = "none";
|
||||
logout_btn.style.display = "block";
|
||||
|
||||
@ -335,6 +403,8 @@ window.onload = async ()=>{
|
||||
//disable create bot button
|
||||
create_bot_btn.setAttribute("disabled", "disabled");
|
||||
change_bot_btn.setAttribute("disabled", "disabled");
|
||||
delete_bot_btn.setAttribute("disabled", "disabled");
|
||||
|
||||
logout_btn.style.display = "none";
|
||||
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?
|
||||
let jwt = localStorage.getItem("jwt");
|
||||
if(jwt === null){
|
||||
@ -356,6 +449,10 @@ window.onload = async ()=>{
|
||||
set_bot_list(ls);
|
||||
set_ui_loggedin(true);
|
||||
}
|
||||
*/
|
||||
|
||||
update_ui();
|
||||
|
||||
|
||||
//init chat
|
||||
log_msg(get_bot_name(), "Ask a question!");
|
||||
@ -386,9 +483,10 @@ window.onload = async ()=>{
|
||||
clean_bot_create_form();
|
||||
|
||||
//update bot list
|
||||
let ls = await get_bots(jwt);
|
||||
set_bot_list(ls);
|
||||
//let ls = await get_bots(jwt);
|
||||
//set_bot_list(ls);
|
||||
|
||||
update_ui();
|
||||
}
|
||||
catch(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 ()=>{
|
||||
@ -422,12 +543,7 @@ window.onload = async ()=>{
|
||||
try{
|
||||
let {bot_id} = await change_bot(jwt, name, visibility, description, llm, sys_prompt);
|
||||
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);
|
||||
@ -465,11 +581,13 @@ window.onload = async ()=>{
|
||||
if(!jwt) throw Error("No JWT!");
|
||||
|
||||
localStorage.setItem("jwt", jwt);
|
||||
set_ui_loggedin(true);
|
||||
|
||||
|
||||
set_ui_loggedin(true);
|
||||
let ls = await get_bots(jwt);
|
||||
set_bot_list(ls);
|
||||
|
||||
|
||||
let myModalEl = document.querySelector('#myModal');
|
||||
let myModal = bootstrap.Modal.getOrCreateInstance(myModalEl);
|
||||
myModal.hide();
|
||||
@ -522,21 +640,18 @@ window.onload = async ()=>{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
logout_btn.onclick = async ()=>{
|
||||
localStorage.removeItem("jwt");
|
||||
|
||||
set_ui_loggedin(false);
|
||||
update_ui();
|
||||
|
||||
let ls = await get_bots();
|
||||
set_bot_list(ls);
|
||||
//set_ui_loggedin(false);
|
||||
//let ls = await get_bots();
|
||||
//set_bot_list(ls);
|
||||
};
|
||||
|
||||
|
||||
|
||||
function replace_dom_code(f, root_ele){
|
||||
let eles = root_ele.getElementsByTagName("code");
|
||||
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){
|
||||
@ -646,6 +745,8 @@ window.onload = async ()=>{
|
||||
}
|
||||
|
||||
|
||||
let receiving_token_atm = false;
|
||||
|
||||
|
||||
submit_btn.onclick = async evt =>{
|
||||
let input_string = user_input.value;
|
||||
|
Loading…
x
Reference in New Issue
Block a user