Okay so while answering it is pulling irrelevant source nodes ?
You can give try to Similarity Postprocessor to set a threshold value which will limit the fetching of nodes based on the set threshold
from llama_index.postprocessor import SimilarityPostprocessor
query_engine = index.as_query_engine(similarity_top_k=10,node_postprocessors=[ SimilarityPostprocessor(similarity_cutoff=0.7)])