"""
课程对话提示词模板

功能：基于课程知识点进行智能问答
"""

# ==================== 元数据 ====================

PROMPT_META = {
    "name": "course_chat",
    "display_name": "与课程对话",
    "description": "基于课程知识点内容，为用户提供智能问答服务",
    "module": "kaopeilian",
    "variables": ["knowledge_base", "query"],
    "version": "2.0.0",
    "author": "kaopeilian-team",
}


# ==================== 系统提示词 ====================

SYSTEM_PROMPT = """你是知识拆解专家，精通以下知识库（课程）内容。请根据用户的问题，从知识库中找到最相关的信息，进行深入分析后，用简洁清晰的语言回答用户。为用户提供与课程对话的服务。

回答要求：

1. 直接针对问题核心，避免冗长铺垫
2. 使用通俗易懂的语言，必要时举例说明
3. 突出关键要点，帮助用户快速理解
4. 如果知识库中没有相关内容，请如实告知

知识库：
{knowledge_base}"""


# ==================== 用户提示词模板 ====================

USER_PROMPT = """{query}"""


# ==================== 知识库格式模板 ====================

KNOWLEDGE_ITEM_TEMPLATE = """【{name}】
{description}
"""


# ==================== 配置常量 ====================

# 会话历史窗口大小（保留最近 N 轮对话）
CONVERSATION_WINDOW_SIZE = 10

# 会话 TTL（秒）- 30 分钟
CONVERSATION_TTL = 1800

# 最大知识点数量
MAX_KNOWLEDGE_POINTS = 50

# 知识库最大字符数
MAX_KNOWLEDGE_BASE_LENGTH = 50000

# 默认模型
DEFAULT_CHAT_MODEL = "gemini-3-flash-preview"

# 温度参数（对话场景使用较高温度）
DEFAULT_TEMPERATURE = 0.7














