diff --git a/app.py b/app.py index 0485bd7..8ee11c3 100644 --- a/app.py +++ b/app.py @@ -95,6 +95,12 @@ def init_db(): """ ) + # migrations + try: + c.execute("ALTER TABLE jobs ADD COLUMN user_prompt TEXT") + except Exception: + pass + # defaults c.execute("INSERT OR IGNORE INTO projects(name, created_at) VALUES (?,?)", ("Default", now_iso())) c.execute( @@ -342,10 +348,12 @@ def _process_analysis_job(job_id: int): if not doc or not prm: raise RuntimeError("Dokument oder Prompt nicht gefunden") + user_extra = (j.get("user_prompt") or "").strip() llm_prompt = ( "Du bist ein präziser Assistent. Antworte auf Deutsch.\\n" - f"AUFTRAG:\\n{prm['prompt']}\\n\\n" - f"TEXT:\\n{doc['content_md']}\\n" + f"AUFTRAG:\\n{prm['prompt']}\\n" + + (f"\\nZUSATZINFOS:\\n{user_extra}\\n" if user_extra else "") + + f"\\nTEXT:\\n{doc['content_md']}\\n" ) r = requests.post( @@ -389,8 +397,8 @@ def enqueue_job(kind: str, **kwargs) -> int: with db() as c: cur = c.execute( """ - INSERT INTO jobs(kind,status,project_id,document_id,prompt_id,title,file_path,created_at) - VALUES (?,?,?,?,?,?,?,?) + INSERT INTO jobs(kind,status,project_id,document_id,prompt_id,title,file_path,user_prompt,created_at) + VALUES (?,?,?,?,?,?,?,?,?) """, ( kind, @@ -400,6 +408,7 @@ def enqueue_job(kind: str, **kwargs) -> int: kwargs.get("prompt_id"), kwargs.get("title"), kwargs.get("file_path"), + kwargs.get("user_prompt") or None, now_iso(), ), ) @@ -1253,34 +1262,90 @@ def run_page(): with db() as c: docs = c.execute("SELECT id,title,kind,created_at FROM documents ORDER BY id DESC LIMIT 200").fetchall() prompts = c.execute("SELECT id,name FROM prompts ORDER BY name").fetchall() + projects = c.execute("SELECT id,name FROM projects ORDER BY name").fetchall() d_opts = "".join([f"" for d in docs]) p_opts = "".join([f"" for p in prompts]) + proj_opts = "".join([f"" for p in projects]) body = f"""