25
25
ids = load ('models/ids.joblib' )
26
26
qa_model = QA ('models' )
27
27
28
- @strawberry .type
29
- class User :
30
- name : str
31
- age : int
32
-
33
28
34
29
@strawberry .type
35
30
class Document :
@@ -54,6 +49,17 @@ class QAResult:
54
49
answer : str
55
50
confidence : float
56
51
52
+
53
+ @strawberry .type
54
+ class MetaData :
55
+ tf_idf_len_diff : int
56
+ bert_len_diff : int
57
+
58
+ @strawberry .type
59
+ class IndexingResult :
60
+ status : str
61
+ metadata : MetaData
62
+
57
63
@strawberry .type
58
64
class Query :
59
65
@strawberry .field
@@ -80,4 +86,27 @@ def qa(self, q: str) -> QAResult:
80
86
answer = qa_model .predict (" " .join (reference ),q )
81
87
return QAResult (answer = answer ['answer' ], confidence = answer ['confidence' ], )
82
88
89
+ @strawberry .field
90
+ def pull_updates_from_index_cloud (self ) -> IndexingResult :
91
+ global tfidf_faiss , bert_faiss , ids , qa_model
92
+ tf_idf_prev_len = tfidf_faiss .ntotal
93
+ bert_prev_len = bert_faiss .ntotal
94
+
95
+ print ("Previous TFIDF length: {}" .format (tf_idf_prev_len ))
96
+ pull_indices (True )
97
+
98
+ tfidf_faiss , bert_faiss = load_faiss (tfidf_model , bert_model )
99
+ ids = load ('models/ids.joblib' )
100
+ qa_model = QA ('models' )
101
+
102
+ metadata = {'tfidf_len_diff' : tfidf_faiss .ntotal - tf_idf_prev_len , 'bert_len_diff' : bert_faiss .ntotal - bert_prev_len }
103
+ return IndexingResult (status = "Success" , metadata = metadata )
104
+
105
+ # @strawberry.field
106
+ # def reindex(self) -> IndexingResult:
107
+ # D, I = vector_search(q, bert_model, bert_faiss)
108
+ # reference = [x["description"] for x in collection.find({'_id': {'$in': (np.array(ids)[I[0][:2]]).tolist()}})]
109
+ # answer = qa_model.predict(" ".join(reference),q)
110
+ # return QAResult(answer = answer['answer'], confidence = answer['confidence'], )
111
+
83
112
schema = strawberry .Schema (query = Query )
0 commit comments