Spaces:
Running
Running
import httpx | |
import time | |
from datetime import datetime | |
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader | |
from llama_parse import LlamaParse | |
from llama_index.embeddings.huggingface import HuggingFaceEmbedding | |
llm = llm = HuggingFaceInferenceAPI( | |
model_name="meta-llama/Llama-3.2-1B" | |
) | |
parser = LlamaParse(api_key='llx-zKtsC5UBLs8DOApOsLluXMBdQhC75ea0Vs80SmPSjsmDzuhh', result_type='markdown') | |
file_extractor = {'.pdf': parser} | |
documents = SimpleDirectoryReader('data/', file_extractor=file_extractor).load_data() | |
embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5") | |
vector_index = VectorStoreIndex.from_documents(documents, embed_model=embed_model) | |
query_engine = vector_index.as_query_engine(llm=llm) | |
def query_with_retry(query, max_retries=3, wait_time=5): | |
for attempt in range(max_retries): | |
try: | |
start_time = datetime.now() | |
response = query_engine.query(query) | |
end_time = datetime.now() | |
duration = (end_time - start_time).total_seconds() | |
print(f"Query completed in {duration:.2f} seconds.\n {response}") | |
return response | |
except httpx.ReadTimeout: | |
if attempt < max_retries - 1: | |
print(f"Timeout occurred. Retrying in {wait_time} seconds...") | |
time.sleep(wait_time) | |
else: | |
raise | |
except Exception as e: | |
print(f"An error occurred: {e}") | |
break | |
if __name__ == "__main__": | |
q3= 'Your task is to act as my personal [UHV] professor. Provide a detailed, well-structured explanation on the topic of [What are the programs needed to achieve the comprehensive human goal?]. Begin with an engaging introduction, followed by a comprehensive description, and break down key concepts under relevant subheadings. The content should be thorough and professionally written, similar to educational resources found on sites like GeeksforGeeks, JavaTpoint, and other learning platforms' | |
print(query_with_retry(q3)) |