From eab124cc5dfc32dad5de239fcd91cd59806fdcaf Mon Sep 17 00:00:00 2001 From: Alexander_Kabui Date: Tue, 23 Apr 2024 18:18:19 +0300 Subject: Add reimplementation for gnqa error page --- gn2/wqflask/templates/gnqa_errors.html | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) (limited to 'gn2/wqflask') diff --git a/gn2/wqflask/templates/gnqa_errors.html b/gn2/wqflask/templates/gnqa_errors.html index d2e04135..34d0121f 100644 --- a/gn2/wqflask/templates/gnqa_errors.html +++ b/gn2/wqflask/templates/gnqa_errors.html @@ -1,21 +1,11 @@ -{% extends "base.html" %} -{% block title %}GNQNA{% endblock %} - -{% block content %} - -
-
-

Error: - {{error}}

-
- -
- - - - - - -{% endblock %} +
+
+ Search_Query: {{ query }} +
+ Status_Code: {{ status_code }} +
+ Error/Reason: {{ error }} +
+
+
-- cgit v1.2.3 From 252c35cdf9589a34d4ba25ca1026b9a21ee48985 Mon Sep 17 00:00:00 2001 From: Alexander_Kabui Date: Tue, 23 Apr 2024 18:19:05 +0300 Subject: Implementation for gnqa chatbox ui --- gn2/wqflask/templates/gnqa_chat_box.html | 136 +++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 gn2/wqflask/templates/gnqa_chat_box.html (limited to 'gn2/wqflask') diff --git a/gn2/wqflask/templates/gnqa_chat_box.html b/gn2/wqflask/templates/gnqa_chat_box.html new file mode 100644 index 00000000..a10062cd --- /dev/null +++ b/gn2/wqflask/templates/gnqa_chat_box.html @@ -0,0 +1,136 @@ +
+
+
+
+
+
+

You

+

+ {{ query }} +

+
+
+
+

GNQA

+
+ {{ answer }} +
+
+
+
+

References Metadata related to your query

+ {% if references %} +
    + {% for reference in references %} +
  • +
    +
    + {% if loop.first %} + +
    +
    +

    {{ reference.comboTxt }}

    +
    + {% if reference.pubmed %} +
    +
    + See PubMed Info +
    +

    {{ reference.pubmed[0].get('title') }}:

    +

    Authors:{{ reference.pubmed[0].get('authors') }}

    +

    PMID: {{ reference.pubmed[0].get('pub_id') }}

    +

    Abstract:

    +

    {{ reference.pubmed[0].get('abstract')|safe }}

    +

    Click to view full Article on Pubmed

    +
    +
    + {% endif %} +
    +
    + {% else %} + +
    +
    +

    {{reference.comboTxt}}

    +
    + {% if reference.pubmed %} +
    +
    + See PubMed Info +
    +

    {{ reference.pubmed[0].get('title') }}:

    +

    Authors:{{ reference.pubmed[0].get('authors') }}

    +

    PMID: {{ reference.pubmed[0].get('pub_id') }}

    +

    Abstract:

    +

    {{ reference.pubmed[0].get('abstract')|safe }}

    +

    Click to view full Article on Pubmed

    +
    +
    + + {% endif %} +
    +
    +
    + {% endif %} +
    +
    +
  • + {% endfor %} +
+ {% else %} +

No references available.

+ {% endif %} +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+

Click links below to view references

+ {% for reference in references %} + {{reference.bibInfo}} +
+ {% endfor %} +
+
+
+ +
-- cgit v1.2.3 From ed0e55326787f61a7fe130b64d52af75eb3257aa Mon Sep 17 00:00:00 2001 From: Alexander_Kabui Date: Tue, 23 Apr 2024 18:20:45 +0300 Subject: Add implementation for new gnqa template. * This is a separate interface from gnqa main page for testing. --- gn2/wqflask/templates/gnqa_test.html | 178 +++++++++++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 gn2/wqflask/templates/gnqa_test.html (limited to 'gn2/wqflask') diff --git a/gn2/wqflask/templates/gnqa_test.html b/gn2/wqflask/templates/gnqa_test.html new file mode 100644 index 00000000..eefa66f7 --- /dev/null +++ b/gn2/wqflask/templates/gnqa_test.html @@ -0,0 +1,178 @@ +{% extends "base.html" %} +{% block title %}GNQA test{% endblock %} +{% block css %} + +{% endblock %} +{% block search %}{% endblock %} +{% block content %} +
+
+
+
+
+ +
+
+
+

Search History

+
+
    + {% for record in history %} +
  • +
    + +
    + +
    +
    + +
    +
    +
    +
  • + {% endfor %} +
+
+
+
+
+
+
+
+
+

+ Welcome to the GeneNetwork Question and Answer (GNQA)system. We utilize a large language model and 3000 scientific publications to make GNQA a subject matter expert in three areas: GeneNetwork.org , genomics/genetics with regards to diabetes and genomics/genetics with regards to agin.. +

+

At the moment when you ask GNQA something it will attempt to return a sensible answer with real references. To this end we aim to reduce hallucinations and provide a knowledge launchpad for a researcher to enhance their knowledge on the relevant subject matter.

+

+ GNQA is not a finished product as we are working diligently to improve it daily. +

+

Thanks for using GNQA!

+ +
+
+
+
+
+ Examples of Questions +
+
+ + + +
+
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+{% endblock %} +{% block js %} + + + + +{% endblock %} + -- cgit v1.2.3 From a514d910fe16c5e693dd03d8a78885aedfb97ad4 Mon Sep 17 00:00:00 2001 From: Alexander_Kabui Date: Tue, 23 Apr 2024 18:28:13 +0300 Subject: Create an endpoint for gnqa test template --- gn2/wqflask/views.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gn2/wqflask') 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__ -- cgit v1.2.3