aboutsummaryrefslogtreecommitdiff
path: root/gn3/llms/response.py
blob: 9172860af4cc2bbba788fae6685caf530691769c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# pylint: skip-file
import string
import json
import os


basedir           = os.path.abspath(os.path.dirname(__file__))


class DocIDs():
    def __init__(self):
        # open doc ids for GN refs
        self.doc_ids = self.loadFile("doc_ids.json")
        # open doc ids for Diabetes references
        self.sugar_doc_ids = self.loadFile("sugar_doc_ids.json")
        # format is not what I prefer, it needs to be rebuilt
        self.formatDocIDs(self.sugar_doc_ids)

    def loadFile(self, file_name):
        file_path = os.path.join(basedir, file_name)
        if os.path.isfile(file_path):
            f = open(file_path, "rb")
            result = json.load(f)
            f.close()
            return result
        else:
            raise Exception("\n{0} -- File does not exist\n".format(file_path))
    
    def formatDocIDs(self, values):
        for _key, _val in values.items():
            if isinstance(_val, list):
                for theObject in _val:
                    docName = self.formatDocumentName(theObject['filename'])
                    docID   = theObject['id']
                    self.doc_ids.update({docID: docName})
                    
    def formatDocumentName(self, val):
       result = val.removesuffix('.pdf') 
       result = result.removesuffix('.txt') 
       result = result.replace('_', ' ')
       return result


    def getInfo(self, doc_id):
        if doc_id in self.doc_ids.keys():
            return self.doc_ids[doc_id]
        else:
            return doc_id

class RespContext():
    def __init__(self, context):
        self.cntxt = context
        self.theObj = {}

    def parseIntoObject(self, info):
        # check for obj, arr, or val
        for key, val in info.items():
            if isinstance(val, list):
                self.parseIntoObject(val)
            elif isinstance(val, str) or isinstance(val, int):
                self.theObj[key] = val
            self.theObj[key] = self.val


def createAccordionFromJson(theContext):
    result = ''
    # loop thru json array
    ndx = 0
    for docID, summaryLst in theContext.items():
        # item is a key with a list
        comboTxt = ''
        for entry in summaryLst:
            comboTxt += '\t' + entry['text']
    return result