LLM-Comparison-Hub / search_fallback.py
chunchu-08's picture
Initial commit: Move all local changes to GitHub
c313477
# search_fallback.py
import os
import requests
from dotenv import load_dotenv
load_dotenv()
GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
GOOGLE_CSE_ID = os.getenv("GOOGLE_CSE_ID")
def get_google_snippets(query: str, num_results: int = 3) -> str:
try:
url = "https://www.googleapis.com/customsearch/v1"
params = {
"key": GOOGLE_API_KEY,
"cx": GOOGLE_CSE_ID,
"q": query,
"num": num_results
}
response = requests.get(url, params=params)
response.raise_for_status()
data = response.json()
snippets = []
for item in data.get("items", []):
title = item.get("title", "")
snippet = item.get("snippet", "")
link = item.get("link", "")
snippets.append(f"\n **{title}**\n{snippet}\n {link}")
return "\n\n".join(snippets) if snippets else "No relevant information found."
except Exception as e:
return f"[Google Search Error] {e}"
# Support structure for explainability output in the UI:
# Each model should output:
# - Response
# - Helpfulness, Correctness, Coherence, Tone, Bias
# - Reasoning/Explanation why the score was assigned
#
# Radar Chart Inputs Example:
# scores = {
# 'Model': 'GPT-4',
# 'Helpfulness': 0.8,
# 'Correctness': 0.75,
# 'Coherence': 0.85,
# 'Tone': 0.7,
# }
# CSV export format should include:
# model, response, helpfulness, correctness, coherence, tone, bias_flag, reasoning, source_info
# Charts and UI logic should be implemented in gradio_full_llm_eval.py using Plotly or Matplotlib