You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain+OpenAI心理健康评估工具:限制模型仅用明确信息技术问询

问题解答

1. 优化Prompt避免过度推断

  • 明确强制模型仅使用用户输入中的明确表述信息,添加核心规则:若用户未明确提及某类心理状态相关内容,对应字段必须设为"No",禁止任何主观推断
  • 在Prompt中加入具象示例,强化规则认知:

    用户输入:"我最近总是失眠"
    输出:{"StressRecently": "No", "InsomniaRecently": "Yes"}

  • 增加约束语句:"严格基于用户输入的字面信息作答,没有明确提到的内容一律视为未发生,不得猜测"
  • 使用ChatPromptTemplate时将约束规则作为系统消息固定传入,示例代码:
    from langchain.prompts import ChatPromptTemplate
    
    system_prompt = """你是严格基于用户明确输入信息的心理健康评估分析员。
    必须遵守以下规则:
    1. 仅使用用户输入中明确表述的内容,不得进行任何推断或猜测
    2. 若用户未明确提及某一评估项,对应字段值设为"No"
    3. 输出必须为符合要求的JSON格式
    """
    human_prompt = "用户输入:{user_input}\n请按照要求输出评估结果:"
    prompt = ChatPromptTemplate.from_messages([
        ("system", system_prompt),
        ("human", human_prompt)
    ])
    

2. 适合的LangChain组件与技术

  • PydanticOutputParser:用Pydantic定义评估结果的结构化模型,强制模型输出符合字段枚举值要求的内容,从结构上限制过度推断,示例代码:
    from langchain.output_parsers import PydanticOutputParser
    from pydantic import BaseModel, Field
    
    class MentalHealthAssessment(BaseModel):
        StressRecently: str = Field(description="是否最近有压力,仅能为Yes/No")
        InsomniaRecently: str = Field(description="是否最近失眠,仅能为Yes/No")
    
    parser = PydanticOutputParser(pydantic_object=MentalHealthAssessment)
    
  • OutputFixingParser:当模型输出不符合格式或规则时,自动修正输出,确保结果合规
  • Guardrails组件:添加内容校验逻辑,过滤不符合规则的输出,比如检查每个字段是否为指定的枚举值(Yes/No)
  • SystemMessagePromptTemplate:将核心约束规则固化为系统消息,提升模型对规则的遵循度

3. LangChain新手最佳实践

  • 优先使用结构化输出解析器:用Pydantic或JsonOutputParser约束输出格式,避免模型返回非结构化内容,降低后续处理难度
  • 系统消息固化核心规则:将任务的核心约束(如禁止推断)放在系统消息中,模型会更严格遵循规则
  • 小步测试+示例驱动:先编写简单的Prompt和测试示例,验证模型输出符合要求后,再逐步扩展功能,避免一开始就构建复杂流程
  • 开启调试日志:使用LangChain的verbose模式或日志组件,查看模型的输入输出细节,快速定位过度推断等问题的触发场景
  • 限制模型自由发挥空间:对于需要严格基于输入的任务,尽量减少模型的自由生成权限,用明确的规则和结构化输出限制其行为

内容的提问来源于stack exchange,提问作者ASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:52:13