Spaces:
Sleeping
Sleeping
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) |