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

如何限制ChatGPT仅围绕指定主题作答?Dart代码优化求助

问题分析与解决方案

你的代码无法实现主题限制,核心问题在于消息角色的顺序和使用错误,以及提示指令不够明确,导致AI无法正确理解并执行主题限制规则。

核心问题点

  • 错误地将用户提问设置为assistant角色:assistant角色用于存放AI的历史回复,用户的提问必须放在user角色中。
  • 重复且混乱的系统提示:同时在system和user角色中放入相同规则提示,会干扰AI对指令优先级的判断。
  • 提示规则不够明确:未清晰定义AI遇到无关问题时的具体响应方式,AI可能会模糊处理。

修正后的Dart代码

Future<(ChatGtpResponseModel?, ChatErrorResponseModel?)> getChatGtpResponse(String content) async {
  final headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer $apiKey',
    'OpenAI-Organization': 'org-SOMETHING'
  };

  var data = jsonEncode(ChatGtpRequestModel(
    model: 'gpt-4',
    messages: [
      // 系统提示:放在最前面,定义AI核心角色与规则
      Message(
        role: 'system',
        content: '你是一个聪明、风趣且友好的助手,仅专注于分享与颜色相关的信息。'
                 '如果遇到与颜色无关的问题(如数学计算、非颜色类知识查询等),'
                 '请直接回复:"抱歉,我只能回答与颜色相关的问题,请提问相关内容。"',
      ),
      // 用户实际提问:必须放在user角色中
      Message(role: 'user', content: content),
    ],
    temperature: 0, // 温度设为0,确保AI严格遵循规则,减少随机性
  ));

  final url = Uri.parse('https://api.openai.com/v1/chat/completions');
  final res = await http.post(url, headers: headers, body: data);

  if (res.statusCode != 200) {
    var model = ChatErrorResponseModel.fromJson(json.decode(res.body));
    return (null, model);
  }
  
  var model = ChatGtpResponseModel.fromJson(json.decode(res.body));
  return (model, null);
}

额外优化建议

  • 添加Few-Shot示例强化规则:在系统提示后加入示例对话,让AI更清晰地理解边界:
    messages: [
      Message(role: 'system', content: '你是专注于颜色主题的助手,仅回答与颜色相关的问题,无关问题直接拒绝。'),
      // 示例1:有效问题
      Message(role: 'user', content: '太阳是什么颜色?'),
      Message(role: 'assistant', content: '太阳的颜色会因大气散射等因素变化,通常我们看到的是白色,正午时接近淡黄色,日落时呈橙红色。'),
      // 示例2:无关问题
      Message(role: 'user', content: '1+2等于多少?'),
      Message(role: 'assistant', content: '抱歉,我只能回答与颜色相关的问题,请提问相关内容。'),
      // 用户当前提问
      Message(role: 'user', content: content),
    ]
    
  • 保持严格参数设置:维持temperature: 0,确保AI输出的确定性,避免偏离规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:58:22