File size: 1,440 Bytes
1a0f750
693d949
961c967
693d949
961c967
693d949
1a0f750
 
693d949
1a0f750
693d949
 
 
 
 
 
961c967
 
 
 
 
 
 
 
 
1a0f750
 
 
 
961c967
 
 
 
693d949
 
 
1a0f750
693d949
 
 
1a0f750
693d949
 
 
 
 
 
1a0f750
693d949
1a0f750
693d949
 
 
 
 
 
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
from utils.retriever import get_engine
from utils.index import create_index
from utils.constant import INDEX_PATH, DATA_PATH
import os
import shutil


def set_keys(co_api_key: str, llama_cloud_api_key: str) -> str:
    try:
        os.environ["CO_API_KEY"] = co_api_key
        os.environ["LLAMA_CLOUD_API_KEY"] = llama_cloud_api_key
        return "Keys are set successfully"
    
    except Exception as e:
        return str(e)

def handle_file(uploaded_file):
    try:

        temp_file_path = uploaded_file.name
        save_file_path = os.path.join(DATA_PATH, "paper.pdf")
        
        shutil.move(temp_file_path, save_file_path)
        
        create_index(DATA_PATH, INDEX_PATH)
        
        engine_manager = get_engine()[1]
        engine_manager.initialize_index()
        
        return "File uploaded and indexed"
    
    except Exception as e:
        return str(e)

def answer_query(query: str) -> str:
    
    query_engine = get_engine(semantic=True)[0]
    response = query_engine.query(query)
    
    nodes = query_engine.retriever.retrieve(query)
    nodes_str = ""
    
    for node in nodes:

        score = node.get_score()
        text = node.text
        
        nodes_str += f"\nNode: {node.node_id}\nScore: {score:0.3f}\nText: {text[:1000]}\n"
    
    return response, nodes_str

if __name__ == "__main__":
    
    query = "What is Few-NERD"
    response = answer_query(query)
    print(response)