gevis-agent-mcp / geo_engine.py
aryn25's picture
Create geo_engine.py
00bdc86 verified
from scoring.corpus import corpus_score, corpus_recommendation
from scoring.structure import structure_score, structure_recommendation
from scoring.quality import quality_score, quality_recommendation
from scoring.hygiene import hygiene_score, hygiene_recommendation
def compute_full_geo(input_text: str) -> dict:
"""
Combine all four scoring modules. Compute:
- corpus_score (0–100)
- structure_score (0–100)
- quality_score (0–100)
- hygiene_score (0–100)
- geo_score = average of all four
- recommendations: dict with four strings
"""
# 1. Corpus Presence & Authority
c_score = corpus_score(input_text)
c_rec = corpus_recommendation(input_text, c_score)
# 2. Extractability & Structure
s_score = structure_score(input_text)
s_rec = structure_recommendation(input_text, s_score)
# 3. Content Quality & E-E-A-T
q_score = quality_score(input_text)
q_rec = quality_recommendation(input_text, q_score)
# 4. Technical AI-Crawl Hygiene
h_score = hygiene_score(input_text)
h_rec = hygiene_recommendation(input_text, h_score)
# Weighted GEO Score (equal 25% each)
geo_score = int(
0.25 * c_score +
0.25 * s_score +
0.25 * q_score +
0.25 * h_score
)
recommendations = {
"corpus": c_rec,
"structure": s_rec,
"quality": q_rec,
"hygiene": h_rec
}
return {
"corpus_score": c_score,
"structure_score": s_score,
"quality_score": q_score,
"hygiene_score": h_score,
"geo_score": geo_score,
"recommendations": recommendations
}