Spaces:
Sleeping
Sleeping
| """ν€μλ κ°μ±λΆμ ν. | |
| ν€μλλ³ κ°μ± μμ½, λΈλλ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) | |