| 74 | sample['recall_results'] = recall_results |
| 75 | return sample |
| 76 | def vidorag(self,sample): |
| 77 | query = sample['query'] |
| 78 | print(query) |
| 79 | recall_results = self.search_engine.search(query) |
| 80 | candidate_image = [os.path.join(self.img_dir, os.path.basename(node['node']['metadata'].get('file_name',node['node']['metadata'].get('filename')).replace('.txt','.jpg'))) for node in recall_results['source_nodes']] |
| 81 | if 'gmm' not in self.experiment_type: |
| 82 | candidate_image = candidate_image[:self.top_k] |
| 83 | try: |
| 84 | answer = self.agents.run_agent(query, candidate_image) |
| 85 | except Exception as e: |
| 86 | print(e) |
| 87 | return None |
| 88 | |
| 89 | sample['eval_result'] = self.evaluator.evaluate(query, sample['reference_answer'], str(answer)) |
| 90 | sample['response'] = answer |
| 91 | sample['recall_results'] = dict( |
| 92 | source_nodes=[NodeWithScore(node=ImageNode(image_path=image,metadata=dict(file_name=image)), score=None).to_dict() for image in candidate_image], |
| 93 | response=None, |
| 94 | metadata=None) |
| 95 | return sample |
| 96 | |
| 97 | |
| 98 | def eval_dataset(self): |