Spaces:
Sleeping
Sleeping
File size: 2,460 Bytes
ef78361 | 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 | """ν€μλ κ°μ±λΆμ ν.
ν€μλλ³ κ°μ± μμ½, λΈλλxν€μλ κ΅μ°¨ λΆμ, LLM μ΄μ νκ·Έ.
ν¨ν€μ§λ‘ λΆλ¦¬ (overview, drilldown, detail, cross_analysis, export_kw).
"""
import streamlit as st
from .overview import render_keyword_overview, render_summary_table, render_sentiment_chart
from .drilldown import render_keyword_drilldown, render_competitor_summary, render_competitor_drilldown
from .cross_analysis import render_brand_keyword_cross
def render(data: dict):
"""ν€μλ λΆμ ν λ λλ§."""
st.markdown("##### π ν€μλ κ°μ± λΆμ")
st.caption("ν€μλλ³ AI λ΅λ³ κ°μ± λΆν¬μ λΈλλ μΈκΈ λΆμ")
keyword_data = data.get("keyword_data", {})
keywords_list = keyword_data.get("keywords", [])
if not keywords_list:
st.info("ν€μλ λΆμ λ°μ΄ν°κ° μμ΅λλ€. μ€νμμ² νμμ ν€μλ λΆμμ μ€νν΄μ£ΌμΈμ.")
return
# Brand type toggle
brand_mode = st.radio(
"λΆμ λμ",
options=["π μμ¬ λΈλλ", "π’ κ²½μμ¬ λΈλλ"],
horizontal=True,
key="sentiment:kw_brand_mode",
)
is_competitor = brand_mode == "π’ κ²½μμ¬ λΈλλ"
if is_competitor:
_render_competitor_view(data)
else:
_render_inhouse_view(data, keywords_list)
def _render_inhouse_view(data: dict, keywords_list: list[dict]):
"""μμ¬ λΈλλ ν€μλ λΆμ."""
# --- Overview Card ---
render_keyword_overview(keywords_list)
# --- Section 1: Summary Table ---
render_summary_table(keywords_list)
# --- Section 2: Sentiment Comparison Chart ---
st.markdown("---")
render_sentiment_chart(keywords_list)
# --- Section 3: Keyword Drill-down (includes export) ---
st.markdown("---")
render_keyword_drilldown(data, keywords_list)
# --- Section 4: Brand x Keyword Cross Analysis ---
st.markdown("---")
render_brand_keyword_cross(data)
def _render_competitor_view(data: dict):
"""κ²½μμ¬ ν€μλ LLM λΆμ κ²°κ³Ό."""
st.markdown("##### π’ κ²½μμ¬ ν€μλ LLM λΆμ")
st.caption("κ²½μμ¬λ§ μΈκΈλ λ¬Έμ₯μ λν LLM κ°μ± λΆμ κ²°κ³Ό")
# Competitor summary card
render_competitor_summary(data)
# Cross analysis
st.markdown("---")
render_brand_keyword_cross(data, competitor=True)
# Drill-down
st.markdown("---")
render_competitor_drilldown(data)
|