mirror of
https://github.com/hoshikawa2/rfp_response_automation.git
synced 2026-03-03 16:09:35 +00:00
44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
import threading
|
|
import uuid
|
|
from .store import CHAT_JOBS, CHAT_LOCK
|
|
from oci_genai_llm_graphrag_rerank_rfp import answer_question
|
|
|
|
|
|
def start_chat_job(question: str):
|
|
|
|
job_id = str(uuid.uuid4())
|
|
|
|
with CHAT_LOCK:
|
|
CHAT_JOBS[job_id] = {
|
|
"status": "PROCESSING",
|
|
"result": None,
|
|
"error": None,
|
|
"logs": []
|
|
}
|
|
|
|
def log(msg):
|
|
with CHAT_LOCK:
|
|
CHAT_JOBS[job_id]["logs"].append(str(msg))
|
|
|
|
def background():
|
|
try:
|
|
log("Starting answer_question()")
|
|
|
|
result = answer_question(question)
|
|
|
|
with CHAT_LOCK:
|
|
CHAT_JOBS[job_id]["result"] = result
|
|
CHAT_JOBS[job_id]["status"] = "DONE"
|
|
|
|
log("DONE")
|
|
|
|
except Exception as e:
|
|
with CHAT_LOCK:
|
|
CHAT_JOBS[job_id]["error"] = str(e)
|
|
CHAT_JOBS[job_id]["status"] = "ERROR"
|
|
|
|
log(f"ERROR: {e}")
|
|
|
|
threading.Thread(target=background, daemon=True).start()
|
|
|
|
return job_id |