Download Game! Currently 111 players. Last logged in:SecderNakkiAtleticoTaika

Blitzer's Blog >> 72646

Back to blogs index
Posted: 21 Sep 2026 08:17 [ permalink ]
 
     # TARKISTETAAN AUTOMAATIOEHDOT (SC$C$nnC6t 2.1 - 2.3) 
     auto_approve = False 
     if mode == "all": 
         auto_approve = True 
     elif mode == "regex": 
         pattern = state.get("approval_regex", "") 
         if pattern and re.search(pattern, full_prompt_text): 
             auto_approve = True 
  
     if auto_approve: 
         # Ohitetaan saapuvien hyvC$ksyntC$ ja ajetaan suoraan LLM:C$C$n 
         prompt_data["status"] = "auto_approved" 
         state["prompts"][prompt_id] = prompt_data 
         save_state(state) 
          
         # Ajetaan taustalla eteenpC$in 
         process_prompt_to_llm(prompt_id, state) 
          
         # Palautetaan asiakkaalle heti valmis vastaus (jos halutaan
synkronisena) taikka ilmoitus 
         # Koska haluamme response-jonon kuratointiin, tarkistetaan onko
vastaus jo valmis: 
         updated_state = load_state() 
         resp_obj = updated_state["responses"].get(prompt_id, {}) 
          
         return { 
             "id": prompt_id, 
             "object": "chat.completion", 
             "choices": [{ 
                 "message": {"role": "assistant", "content": resp_obj.get("cont
ent", "[AUTO-APPROVED]")}, 
                 "finish_reason": "stop" 
             }] 
         } 
     else: 
         # PysC$ytetC$C$n saapuvien jonoon (Tila 2.1: Kaikki jC$C$vC$t
hyvC$ksyttC$viksi) 
         state["prompts"][prompt_id] = prompt_data 
         save_state(state) 
         return { 
             "id": prompt_id, 
             "object": "chat.completion", 
             "choices": [{ 
                 "message": {"role": "assistant", "content": "[VALVOMO]
Prompti pysC$ytetty saapuvien hyvC$ksyntC$jonoon."}, 
                 "finish_reason": "stop" 
             }] 
         } 
  
  
 # ========================================== 
 # 2. VALVOMON HALLINTARAJAPINTA: LLM-PCCTEPISTEET (FC6C6ri 1 & 3) 
 # ========================================== 
 @app.get("/valvomo/llms") 
 def list_llm_endpoints(): 
     """1. Listaa nykyiset online-LLM:t, joille prompteja voi ohjata.""" 
     state = load_state() 
     return state["llm_endpoints"] 
  
 @app.post("/valvomo/llms") 
 def add_llm_endpoint(data: LLMEndpointRequest): 
     """3. LisC$C$ uuden online-LLM pC$C$tepisteen.""" 
     state = load_state() 
     state["llm_endpoints"][data.name] = data.url 
     save_state(state) 
     return {"status": "success", "message": f"LLM '{data.name}' lisC$tty
osoitteeseen {data.url}"} 
  
 @app.delete("/valvomo/llms/{name}") 
 def remove_llm_endpoint(name: str): 
     """3. Poistaa online-LLM pC$C$tepisteen.""" 
     state = load_state() 
     if name not in state["llm_endpoints"]: 
         raise HTTPException(status_code=404, detail="PC$C$tepistettC$ ei
lC6ydy") 
     if len(state["llm_endpoints"]) <= 1: 
         raise HTTPException(status_code=400, detail="Et voi poistaa
viimeistC$ jC$ljellC$ olevaa LLM-pC$C$tepistettC$.") 
      
     del state["llm_endpoints"][name] 
     save_state(state) 
     return {"status": "success", "message": f"LLM '{name}' poistettu"} 
  
  
 # ========================================== 
 # 3. VALVOMON HALLINTARAJAPINTA: TILAN / SCCNTCJEN HALLINTA (FC6C6ri 2) 
 # ========================================== 
 @app.get("/valvomo/mode") 
 def get_valvomo_mode(): 
     """NC$yttC$C$ nykyisen hyvC$ksyntC$tilan (manual / all / regex).""" 
     state = load_state() 
     return { 
         "mode": state.get("mode", "manual"), 
         "approval_regex": state.get("approval_regex", "") 
     } 
  
 @app.put("/valvomo/mode") 
 def set_valvomo_mode(data: ModeRequest): 
     """ 
     2. Asettaa tilan: 
        - 'manual': Kaikki jC$C$vC$t hyvC$ksyttC$viksi (2.1) 
        - 'all': Kaikki hyvC$ksytC$C$n automaattisesti (2.2) 
        - 'regex': Kaikki sC$C$nnC6n matchaavat hyvC$ksytC$C$n (2.3) 
     """ 
     state = load_state() 
     if data.mode not in ["manual", "all", "regex"]: 
         raise HTTPException(status_code=400, detail="Virheellinen tila.
Sallitut: manual, all, regex") 
      
     state["mode"] = data.mode 
     state["approval_regex"] = data.regex_pattern 
     save_state(state) 
     return {"status": "success", "message": f"Valvomon tila pC$ivitetty
muotoon: {data.mode}"} 
  
  
 # ========================================== 
 # 4. VALVOMON HALLINTARAJAPINTA: PROMPTIT & REITITYS (FC6C6ri 4) 
 # ========================================== 
 @app.get("/valvomo/prompts/pending") 
 def list_pending_prompts(): 
     """Listaa odottavat promptit.""" 
     state = load_state() 
     return {pid: p for pid, p in state["prompts"].items() if p["status"] ==
"pending_approval"} 
  
 @app.put("/valvomo/prompts/{prompt_id}/target-llm") 
 def change_prompt_target_llm(prompt_id: str, llm_name: str): 
     """4. Muuttaa hyvC$ksynnC$ssC$ olevan kyselyn tulevaa online-llm
pC$C$tepistettC$.""" 
     state = load_state() 
     if prompt_id not in state["prompts"]: 
         raise HTTPException(status_code=404, detail="Promptia ei lC6ydy") 
     if llm_name not in state["llm_endpoints"]: 
         raise HTTPException(status_code=400, detail=f"LLM-pC$C$tepistettC$
'{llm_name}' ei ole olemassa") 
      
     state["prompts"][prompt_id]["assigned_llm"] = llm_name 
     save_state(state) 
     return {"status": "success", "message": f"Promptin {prompt_id} kohde-LLM
vaihdettu muotoon: {llm_name}"}