about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander_Kabui2024-04-23 18:28:13 +0300
committerAlexander_Kabui2024-04-23 18:28:13 +0300
commita514d910fe16c5e693dd03d8a78885aedfb97ad4 (patch)
tree2bcac479aa069be16ba0baafc4a00c00e3dec8e5
parented0e55326787f61a7fe130b64d52af75eb3257aa (diff)
downloadgenenetwork2-a514d910fe16c5e693dd03d8a78885aedfb97ad4.tar.gz
Create an endpoint for gnqa test template
-rw-r--r--gn2/wqflask/views.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/gn2/wqflask/views.py b/gn2/wqflask/views.py
index 074ccae2..c126524b 100644
--- a/gn2/wqflask/views.py
+++ b/gn2/wqflask/views.py
@@ -347,6 +347,39 @@ def gnqna_rating(task_id, weight):
                                   lambda x: (x.json(), x.status_code))
 
 
+@app.route("/gnqa/testing", methods=["GET", "POST"])
+@require_oauth2
+def qnqa_testing():
+    def __error__(resp):
+        return render_template("gnqa_errors.html",
+                               **{"status_code": resp.status_code,
+                                  **resp.json()})
+
+    def __success__(result):
+        return render_template("gnqa_chat_box.html",
+                               **{"query": result["query"],
+                                  "answer": result["answer"],
+                                  "task_id": result["task_id"]["task_id"],
+                                  "references": result["references"]})
+    if request.method == "POST" or request.args.get("query") is not None:
+        token = session_info()["user"]["token"].either(
+            lambda err: err, lambda tok: tok["access_token"])
+        return (monad_requests.post(
+            urljoin(GN3_LOCAL_URL,
+                    "/api/llm/gnqna"),
+            json={"querygnqa": request.form.get("query") or
+                  request.args.get("query")},
+            headers={
+                "Authorization": f"Bearer {token}"
+            }
+        ).then(
+            lambda resp: resp.json()
+        ).either(__error__, __success__))
+    return render_template("gnqa_test.html", history=["what is a gene",
+                                                      "which genes are involved",
+                                                      "what is a gene"])
+
+
 @app.route("/gsearch_updating", methods=('POST',))
 def gsearch_updating():
     result = UpdateGSearch(request.args).__dict__