Spaces:
Running
Running
File size: 15,014 Bytes
f781593 b61db1b f781593 b61db1b f781593 b61db1b f781593 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 |
#!/bin/bash
# Script to add model tooltips and fix existing tooltips in all HTML files
# Model tooltip definitions - exact descriptions from cost analysis tab
declare -A model_tooltips
model_tooltips["OpenAI gpt-4o"]="OpenAI's flagship multimodal model optimized for a balance of quality and speed. Features strong performance across diverse tasks with capabilities for complex financial reasoning and instruction following."
model_tooltips["GPT-4o"]="OpenAI's flagship multimodal model optimized for a balance of quality and speed. Features strong performance across diverse tasks with capabilities for complex financial reasoning and instruction following."
model_tooltips["OpenAI o1-mini"]="OpenAI's smaller advanced model balancing efficiency and performance. Demonstrates surprisingly strong results on financial tasks despite its reduced parameter count."
model_tooltips["o1-mini"]="OpenAI's smaller advanced model balancing efficiency and performance. Demonstrates surprisingly strong results on financial tasks despite its reduced parameter count."
model_tooltips["Claude 3.5 Sonnet"]="Anthropic's advanced proprietary language model optimized for complex reasoning and instruction-following. Features enhanced performance on financial tasks with strong text processing capabilities."
model_tooltips["Claude 3 Haiku"]="Anthropic's smaller efficiency-focused model in the Claude family. Designed for speed and lower computational requirements while maintaining reasonable performance on financial tasks."
model_tooltips["Google Gemini 1.5 Pro"]="Google's advanced proprietary multimodal model designed for complex reasoning and instruction-following tasks. Features strong performance across financial domains with advanced reasoning capabilities."
model_tooltips["Gemini 1.5 Pro"]="Google's advanced proprietary multimodal model designed for complex reasoning and instruction-following tasks. Features strong performance across financial domains with advanced reasoning capabilities."
model_tooltips["Cohere Command R 7B"]="Cohere's 7-billion parameter model focused on instruction-following. An efficient model with reasonable financial domain capabilities for its size."
model_tooltips["Cohere Command R +"]="Cohere's enhanced command model with improved instruction-following capabilities. Features advanced reasoning for financial domains with stronger performance than its smaller counterpart."
model_tooltips["DeepSeek R1"]="DeepSeek's premium 671 billion parameter Mixture of Experts (MoE) model representing their most advanced offering. Designed for state-of-the-art performance across complex reasoning and financial tasks."
model_tooltips["DeepSeek-V3"]="DeepSeek's 685 billion parameter Mixture of Experts (MoE) model optimized for advanced reasoning. Strong performance on financial tasks with robust instruction-following capabilities."
model_tooltips["DeepSeek LLM (67B)"]="DeepSeek's 67 billion parameter model optimized for chat applications. Balances performance and efficiency across financial tasks with solid reasoning capabilities."
model_tooltips["Llama 3 70B Instruct"]="Meta's advanced 70 billion parameter dense language model optimized for instruction-following tasks. Available through Together AI and notable for complex reasoning capabilities."
model_tooltips["Llama 3 8B Instruct"]="Meta's efficient 8 billion parameter language model optimized for instruction-following. Balances performance and efficiency for financial tasks with reasonable reasoning capabilities."
model_tooltips["DBRX Instruct"]="Databricks' 132 billion parameter Mixture of Experts (MoE) model focused on advanced reasoning. Demonstrates competitive performance on financial tasks with strong text processing capabilities."
model_tooltips["Mixtral-8x22B Instruct"]="Mistral AI's 141 billion parameter MoE model with eight 22B expert networks. Features robust reasoning capabilities for financial tasks with strong instruction-following performance."
model_tooltips["Mixtral-8x7B Instruct"]="Mistral AI's 47 billion parameter MoE model with eight 7B expert networks. Balances efficiency and performance with reasonable financial reasoning capabilities."
model_tooltips["Mistral (7B) Instruct v0.3"]="Mistral AI's 7 billion parameter instruction-tuned model. Demonstrates impressive efficiency with reasonable performance on financial tasks despite its smaller size."
model_tooltips["Qwen 2 Instruct (72B)"]="Alibaba's 72 billion parameter instruction-following model optimized for reasoning tasks. Features strong performance on financial domains with advanced text processing capabilities."
model_tooltips["WizardLM-2 8x22B"]="A 176 billion parameter MoE model focused on complex reasoning. Designed for advanced instruction-following with strong capabilities across financial tasks."
model_tooltips["Gemma 2 27B"]="Google's open-weight 27 billion parameter model optimized for reasoning tasks. Balances performance and efficiency across financial domains with strong instruction-following."
model_tooltips["Gemma 2 9B"]="Google's efficient open-weight 9 billion parameter model. Demonstrates good performance on financial tasks relative to its smaller size."
model_tooltips["QwQ-32B-Preview"]="Qwen's experimental 32 billion parameter MoE model focused on efficient computation. Features interesting performance characteristics on certain financial tasks."
model_tooltips["Jamba 1.5 Mini"]="A compact variant in the Jamba model series focused on efficiency. Balances performance and computational requirements for financial tasks."
model_tooltips["Jamba 1.5 Large"]="An expanded variant in the Jamba model series with enhanced capabilities. Features stronger reasoning for financial tasks than its smaller counterpart."
# Files to process
files=(
"text_classification_table.html"
"sentiment_analysis_table.html"
"information_retrieval_table.html"
"causal_analysis_table.html"
"text_summarization_table.html"
"qa_table.html"
)
# Fix existing dataset tooltips
# Fix tooltips in information_retrieval_table.html
sed -i 's/tooltip-trigger" data-tooltip="A dataset for information retrieval in the financial domain/tooltip-trigger tooltip-right" data-tooltip="A dataset for information retrieval in the financial domain/g' information_retrieval_table.html
# Fix tooltips in text_classification_table.html
sed -i 's/tooltip-trigger" data-tooltip="An expert-annotated dataset for detecting fine-grained investor claims/tooltip-trigger tooltip-right" data-tooltip="An expert-annotated dataset for detecting fine-grained investor claims/g' text_classification_table.html
# Fix tooltips in causal_analysis_table.html (in case the tooltip-right class isn't working)
sed -i 's/tooltip-trigger tooltip-right" data-tooltip="Determines if a given financial text section contains a causal relation/tooltip-trigger tooltip-right" data-tooltip="Determines if a given financial text section contains a causal relation/g' causal_analysis_table.html
# Fix tooltips in sentiment_analysis_table.html (in case the tooltip-right class isn't working)
sed -i 's/tooltip-trigger tooltip-right" data-tooltip="Manually-annotated dataset focusing on subjectivity/tooltip-trigger tooltip-right" data-tooltip="Manually-annotated dataset focusing on subjectivity/g' sentiment_analysis_table.html
# Fix tooltips in text_summarization_table.html (in case the tooltip-right class isn't working)
sed -i 's/tooltip-trigger tooltip-right" data-tooltip="Financial news summarization dataset with 2,000 financial news articles/tooltip-trigger tooltip-right" data-tooltip="Financial news summarization dataset with 2,000 financial news articles/g' text_summarization_table.html
# Add or update model tooltips to each file
for file in "${files[@]}"; do
echo "Processing $file..."
# For each model in our list
for model in "${!model_tooltips[@]}"; do
# Convert model name to a sed-safe string by escaping special characters
model_sed_safe=$(echo "$model" | sed 's/[\/&]/\\&/g')
tooltip_sed_safe=$(echo "${model_tooltips[$model]}" | sed 's/[\/&]/\\&/g')
# First, update existing tooltips if they exist
sed -i "s/data-title=\"$model_sed_safe\" data-tooltip=\"[^\"]*\"/data-title=\"$model_sed_safe\" data-tooltip=\"$tooltip_sed_safe\"/g" "$file"
# Then, add tooltips to plain model names without tooltips
sed -i "s/<td>$model_sed_safe<\/td>/<td class=\"tooltip-trigger tooltip-right\" data-title=\"$model_sed_safe\" data-tooltip=\"$tooltip_sed_safe\">$model_sed_safe<\/td>/g" "$file"
done
# Ensure tooltip script is included at the bottom of the file
if ! grep -q "tooltips.js" "$file"; then
echo "<script src=\"static/js/tooltips.js\"></script>" >> "$file"
fi
if ! grep -q "fixed-tooltips.js" "$file"; then
echo "<script src=\"static/js/fixed-tooltips.js\"></script>" >> "$file"
fi
# Add tooltips.css if not already included
if ! grep -q "tooltips.css" "$file"; then
sed -i '1i<link rel="stylesheet" href="static/css/tooltips.css">' "$file"
fi
done
# Also update results.html to ensure proper tooltip handling
echo "Adding tooltip fix to results.html..."
# Copy the model tooltip fixing code for all tabs to a new JS file
cat > static/js/model-tooltips.js << EOF
document.addEventListener('DOMContentLoaded', function() {
// Fix model tooltips in all tabs
function fixAllModelTooltips() {
console.log("Fixing model tooltips in all tabs");
// Find all model name cells (first column in all tables)
const modelCells = document.querySelectorAll('td:first-child');
// Process each model cell
modelCells.forEach(cell => {
// Skip cells that already have tooltips
if (cell.classList.contains('tooltip-trigger')) {
return;
}
// Get the model name
const modelName = cell.textContent.trim();
// Add tooltip-trigger class and position style
cell.classList.add('tooltip-trigger');
cell.style.position = 'relative';
// Add data-title attribute with the model name
cell.setAttribute('data-title', modelName);
// Add descriptive tooltip based on model
let tooltipText = "";
// Set descriptive tooltip based on model name
if (modelName.includes("GPT-4o")) {
tooltipText = "OpenAI's advanced proprietary closed-source model. One of the top performers across most tasks.";
} else if (modelName.includes("o1-mini")) {
tooltipText = "Compact proprietary model from OpenAI. Shows strong performance on causal analysis tasks.";
} else if (modelName.includes("Claude 3.5 Sonnet")) {
tooltipText = "Anthropic's model optimized for advanced reasoning. Strong performer on text classification and summarization.";
} else if (modelName.includes("Claude 3 Haiku")) {
tooltipText = "Anthropic's smaller, efficiency-focused model in the Claude series.";
} else if (modelName.includes("Gemini 1.5")) {
tooltipText = "Google's highly capable proprietary model.";
} else if (modelName.includes("Command R 7B")) {
tooltipText = "A 7-billion parameter model from Cohere focused on instruction-following.";
} else if (modelName.includes("Command R +")) {
tooltipText = "An improved version of Cohere's Command R model.";
} else if (modelName.includes("DeepSeek R1")) {
tooltipText = "Open-weight model from DeepSeek AI with 671B parameters (MoE architecture). One of the top performers in the benchmark.";
} else if (modelName.includes("DeepSeek-V3") || modelName.includes("DeepSeek V3")) {
tooltipText = "Open-weight model from DeepSeek AI with 685B parameters (MoE architecture).";
} else if (modelName.includes("DeepSeek LLM")) {
tooltipText = "A 67-billion parameter chat-optimized model from DeepSeek AI.";
} else if (modelName.includes("Llama 3 70B")) {
tooltipText = "Meta's 70-billion parameter dense model, optimized for instruction-following tasks.";
} else if (modelName.includes("Llama 3 8B")) {
tooltipText = "Meta's 8-billion parameter efficient model variant.";
} else if (modelName.includes("DBRX")) {
tooltipText = "Databricks' 132B parameter MoE model.";
} else if (modelName.includes("Mixtral-8x22B")) {
tooltipText = "141B parameter MoE model from Mistral AI with eight 22-billion parameter sub-models.";
} else if (modelName.includes("Mixtral-8x7B")) {
tooltipText = "46.7B parameter MoE model from Mistral AI with eight 7-billion parameter sub-models.";
} else if (modelName.includes("Mistral")) {
tooltipText = "A 7-billion parameter instruction-tuned model from Mistral AI.";
} else if (modelName.includes("Qwen 2")) {
tooltipText = "Alibaba's 72-billion parameter instruction-following model.";
} else if (modelName.includes("WizardLM")) {
tooltipText = "A 176B parameter MoE model focused on complex reasoning.";
} else if (modelName.includes("Gemma 2 27B")) {
tooltipText = "Google's open-weight 27B parameter model.";
} else if (modelName.includes("Gemma 2 9B")) {
tooltipText = "Google's open-weight 9B parameter efficient model.";
} else if (modelName.includes("QwQ-32B")) {
tooltipText = "Qwen's experimental MoE model with 32B parameters.";
} else if (modelName.includes("Jamba 1.5 Mini")) {
tooltipText = "A compact variant of the Jamba model series.";
} else if (modelName.includes("Jamba 1.5 Large")) {
tooltipText = "An expanded variant of the Jamba model series.";
} else {
tooltipText = "A large language model from the FLaME evaluation benchmark.";
}
// Set the tooltip
cell.setAttribute('data-tooltip', tooltipText);
});
// After adding attributes, run the tooltip fix
if (window.fixProblemTooltips) {
window.fixProblemTooltips();
}
}
// Run on page load
setTimeout(fixAllModelTooltips, 500);
// Run when tabs are clicked
const tabs = document.querySelectorAll('.tabs li');
tabs.forEach(tab => {
tab.addEventListener('click', () => {
// Give time for content to be displayed
setTimeout(fixAllModelTooltips, 200);
});
});
});
EOF
# Add script inclusion to results.html if not already there
if ! grep -q "model-tooltips.js" "results.html"; then
# Add the script link before the closing body tag
sed -i 's/<\/body>/<script src="static\/js\/model-tooltips.js"><\/script>\n<\/body>/g' "results.html"
fi
# Add tooltip fix to ensure all tabs initialize properly
if ! grep -q "window.fixProblemTooltips" "results.html"; then
# Add call to fix all tooltips when tabs are clicked
sed -i '/document\.addEventListener.*DOMContentLoaded/a \
// Fix all tooltips in all tabs\
setTimeout(function() {\
if (window.fixProblemTooltips) {\
window.fixProblemTooltips();\
}\
}, 500);' "results.html"
fi
echo "Fixed tooltips in all HTML files" |