def process_evidence()

in supporting-blog-content/building-multimodal-rag-with-elasticsearch-gotham/stages/03-stage/index_all_modalities.py [0:0]


def process_evidence(generator, es_manager, file_path, modality, description, metadata):
    """Helper function to process each piece of evidence"""
    try:
        if not os.path.exists(file_path):
            logger.error(f"File not found: {file_path}")
            return

        embedding = generator.generate_embedding([file_path], modality)
        response = es_manager.index_content(
            embedding=embedding,
            modality=modality,
            description=description,
            content_path=file_path,
            metadata=metadata,
        )

        # Convert Elasticsearch response to dict for JSON serialization
        response_dict = {
            "result": response["result"],
            "_id": response["_id"],
            "_index": response["_index"],
        }
        logger.info(f"\n\nIndexed {modality}: {json.dumps(response_dict, indent=2)}")

    except Exception as e:
        logger.error(f"Error processing {modality}: {str(e)}")