Files
ChouJuGEO/modules/ui/state.py
T

54 lines
1.4 KiB
Python
Raw Normal View History

import streamlit as st
def ss_init(key, default):
"""
统一的 session_state 初始化函数。
- 仅当 key 不存在时才写入默认值
- 避免在多个模块中重复实现
"""
if key not in st.session_state:
st.session_state[key] = default
def init_session_state():
"""
初始化 GEO 应用中跨 Tab 使用的核心 session_state 字段。
说明:
- 这里只负责**跨 Tab 共享**或在多处使用的 key
- 各 Tab 内部的临时/局部状态仍然由 Tab 自己按需调用 ss_init
"""
# 配置相关
# ss_init("cfg", {}) # 移除:由主程序 geo_tool.py 负责初始化,避免空字典覆盖默认配置
ss_init("cfg_applied", False)
ss_init("cfg_valid", False)
ss_init("cfg_errors", [])
# 关键词模块
ss_init("keywords", [])
ss_init("kw_last_num", 40)
ss_init("kw_generation_mode", "AI生成")
ss_init("wordbanks", None)
# 内容创作模块
ss_init("generated_contents", [])
ss_init("zip_bytes", None)
ss_init("zip_filename", "")
ss_init("content_scores", {})
ss_init("selected_content_idx", 0)
# 文章优化模块
ss_init("optimized_article", "")
ss_init("opt_changes", "")
ss_init("opt_platform", "通用优化")
# 多模型验证
ss_init("verify_combined", None)
ss_init("verify_last_queries", "")
# 其他跨模块使用的标志位
ss_init("cancel_generation", False)