AI大模型工具的「无限追问」如何实现的?

技术

在我们使用国内AI工具的时候,发现AI生成回答之后,总是会在对话末尾处,加上三条「下一步追问问题建议」,那么,这些国内的AI大模型工具是如何实现无限追问的呢

picture.image

Dall-E配图

背景

这两天跟朋友讨论起了关于AI大模型的「下一步问题建议」是通过什么prompt驱动的?

即大模型回答用户问题之后的建议“追问问题”,往往在模型回复后,自动根据配置及对话内容提供 3 条用户输入建议。

拿Kimi来举例,如下图所示,当我问到「什么是人工智能」,Kimi给出相应的回复,并在末尾追加了三条继续追问的问题建议。

picture.image

什么是问题建议?

「问题建议」可以很好地帮助用户进行提问,降低用户的时间成本,更好地获取所需答案。

但疑问来了,有时候我们体验下来「问题建议」的时候,总觉得给出的示例问题并不是我们所想,或者说跟上下文关系并不大。

那么,AI模型仅仅是根据最后一段对话,还是根据所有上下文内容来实现的「无限追问」能力?

于是就去尝试了国内绝大部分AI模型,包括智谱、Kimi等等的调用逻辑,整理输出成文。

结论先行

先说结论,就是在最后边追加了一句类似“通过上下文或最后一段对话来猜测用户可能进一步追问的3个相关问题”Prompt,并用json解析出来之后追加到对话框末尾。

Kimi

我们打开**「开发者工具」** 进行观察,如果我们接着问Kimi,「人工智能技术在哪些行业中的应用最为广泛?」。

picture.image

Kimi关于问题的追问建议

等它输出完成之后我们可以看到,kimi调用了 https://kimi.moonshot.cn/api/chat/cr00drkjot6t3b2hs2v0/completion/stream 流式输出接口,而参数正是我们提出的问题。

  
{  
    "messages": [  
        {  
            "role": "user",  
            "content": "人工智能技术在哪些行业中的应用最为广泛?"  
        }  
    ],  
    "extend": {  
        "sidebar": true  
    },  
    "refs": [],  
    "use\_search": true,  
    "kimiplus\_id": "kimi",  
    "is\_pro\_search": false  
}  

注意看,我们重点关注接口返回结果,其中的第一条数据中的 group_id,这里先记下来:

  
{  
    "content": "人工智能技术在哪些行业中的应用最为广泛?",  
    "event": "req",  
    "group\_id": "cr00p9pldu5qa3d5vcgg",  
    "id": "cr00p9pldu5qa3d5vchg",  
    "refs": []  
    ....// 后续略,  
    // 后续内容为本轮Kimi关于[人工智能技术在哪些行业中的应用最为广泛?]的回答  
}  

紧接着我们会看到,Kimi输出了回答。

picture.image

关于人工智能应用的回答

Kimi在输出完回答之后随即请求了https://kimi.moonshot.cn/api/chat/recommend-prompt接口。

picture.image

kimi获取问题建议的接口

请求参数:

  
{  
    "chat\_id": "cr00drkjot6t3b2hs2v0",  
    "group\_id": "cr00p9pldu5qa3d5vcgg"  
}  

响应参数:

  
data: {"event":"chat\_prompt\_show"}  
data: {"event":"chat\_prompt","text":"人工智能在医疗诊断中具体是如何提高诊断准确性的?"}  
data: {"event":"chat\_prompt","text":"在金融风控领域,人工智能是如何帮助金融机构提高决策效率的?"}  
data: {"event":"chat\_prompt","text":"智能制造中,人工智能是如何实现生产自动化和智能化的?"}  
data: {"event":"all\_done"}  

结合下面界面显示结果,我们可以得知:「recommend-prompt」 接口正是Kimi获取「问题建议」的关键之处。

picture.image

recommend-prompt接口

划重点

recommend-prompt的请求参数 chat_id 代表整个对话窗口的唯一Id标识,而group_id 代表本轮对话kimi的回复内容的唯一Id标识。

recommend-prompt是一个通用接口,Kimi的服务器通过这两个参数获取到指定回复内容,再根据内置的**「问题建议生成Prompt」** ,生成三条具体的问题建议,并用json格式返回输出到前端进行解析。

问题建议Prompt类似下述表述

  
## 相关问题推荐  
【注意】  
**请根据我提供的信息,通过上下文来猜测用户可能进一步追问你的3个相关问题,通过序号形式列出。**  
1.问题表述应与上下文内容紧密相关  
2.保证每个问题不超过30个字  

简单复现一下:

我们随便找一篇文章给到Kimi进行总结,并输出相关推荐问题。

输入prompt:

👨🏻

  
你是文档总结大师,擅长将用户发给你的文本以清晰简洁的格式总结输出出来。接下来我会发你一篇文章,在总结文章之后要给出下一步相关问题的建议。  
【输出格式】  
## 文章总结  
## 相关问题推荐  
【注意】  
**在接下来的对话中,请根据我每次跟你聊天的最后一条记录,通过上下文来猜测我可能进一步追问你的3个相关问题,通过序号形式列出,并保证每个问题不超过20个字**  

🤖

  
请发送您希望我总结的文章,我会在阅读后为您提供一个清晰简洁的总结,并根据文章内容推荐可能的相关问题。  

👨🏻

  
https://new.qq.com/rain/a/20240817A00UM700   

🤖

  
## 文章总结  
文章讨论了苹果公司对腾讯和字节跳动等中国企业施加压力,要求改变其应用内支付方式,以避免绕过苹果的30%佣金(即所谓的“苹果税”)。文章指出,苹果税在全球范围内引起了争议,欧盟、韩国和日本等地区已经采取措施要求降低或取消这一费用。专家建议中国也应采取行动,允许使用第三方支付系统以减少苹果税的影响。同时,文章强调中国企业需要团结起来,捍卫自身利益,不应在压力下妥协。  
  
## 相关问题推荐  
1. 苹果税在全球范围内的争议情况如何?  
2. 中国企业如何应对苹果税带来的挑战?  
3. 苹果税对消费者和开发者有何影响?  
  

可以看到,我们输出的问题推荐,跟Kimi自带的内容推荐相差无几。

picture.image

对比效果

在之后,我在一个chat对话框内进行了多轮对话,内容涉及了人工智能、娱乐圈、体育圈等多个没有相关性的话题讨论,发现Kimi每次给出的「问题建议」都是根据最后一段回复进行的上下文问题推荐

至于为什么这么做?

一方面,节省token,不用获取全部的上下文去进行推理生成;

另一方面,很多人在使用AI工具的时候往往都在同一个对话框中生成多轮对话,可能主题相关,可能主题完全风马牛不相及,所以,只针对最后一段话进行推理生成更为合理一些~

结论

Kimi自带的「追问」功能是以「最后一段回复内容」作为上下文,基于「问题建议生成器」Prompt,为用户生成3条相关建议

智谱

针对智谱,同样我们重复Kimi之类的操作,可以看到,调用的是https://chatglm.cn/chatglm/backend-api/v1/conversation/recommendation/list接口。

picture.image

智谱的下一步建议调用接口截图

值得注意的是,这里只用到了conversation_id一个字段,用的还是GET请求。通过此接口返回的问题。这里参数用的是整轮对话窗口的唯一Id:66c01d81667a2ddb444ff878

picture.image

调用接口后的响应截图

之后,我问了「人工智能有哪些伦理问题 」,生成了一系列回答,🤖返回的推荐问题建议是:

  
{  
    "message": "success",  
    "result": {  
        "list": [  
            "如何避免数据偏见?",  
            "人工智能责任归属怎么界定?",  
            "有哪些措施保护个人隐私?"  
        ]  
    },  
    "status": 0  
}  

似乎没什么问题,我接着转移话题开始问「奥运冠军一般都会在比赛结束干什么? 」,生成了一系列的回答,最后🤖返回的推荐问题建议是:

  
{  
    "message": "success",  
    "result": {  
        "list": [  
            "冠军们如何庆祝胜利的?",  
            "药检一般是什么时候进行?",  
            "他们回国后会有哪些活动?"  
        ]  
    },  
    "status": 0  
}  

到了这一步,大家似乎觉得智谱跟Kimi一样,只是基于最后一个回复来进行问题推理生成。

直到我再次“跨界”问了下一个问题「娱乐圈的金鸡奖获奖之后演员们干什么?」,智谱生成了一系列的回答之后,变成了跟前轮对话相关的问题建议,大家可以感受一下~

  
{  
    "message": "success",  
    "result": {  
        "list": [  
            "隐私泄露怎么防范?",  
            "数据偏见如何消除?",  
            "责任归属怎么界定?"  
        ]  
    },  
    "status": 0  
}  

我们可以看到,前几轮对话中我们围绕着人工智能进行了两轮对话,讨论了隐私保护和相关伦理问题,在新一轮的对话中,智谱应该是读取了history进行归纳总结,注意到当前用户可能关心的问题,接着提出下一步建议。

picture.image

智谱在回答完金鸡奖相关问题之后回复了跟前几轮相关内容建议

我们接着问下一个问题「运动员结束之后会进行娱乐吗?」,智谱生成了一系列的回答之后,在接下来的对话相关的问题建议又回到了「获奖演员会休息多久?」上。

  
{  
    "message": "success",  
    "result": {  
        "list": [  
            "运动员平时怎么放松?",  
            "获奖演员会休息多久?",  
            "有哪些运动员参与公益活动?"  
        ]  
    },  
    "status": 0  
}  

再次论证了智谱的下一步问题建议是基于上下文进行回复的~

picture.image

对于运动员的相关回答之后问题建议又回到了history相关话题上

智谱对话框中的「问题建议」是基于history来进行回复的~

智谱智能体

为了看一下智谱对于「下一步问题建议」的支持,我们直接打开智谱的智能体中心,可以看到:

picture.image

智谱智能体搭建界面

在智能体配置中心已经给了明确的指令:

1、参考配置信息和上下文,结合最后一轮回复内容推测用户下一轮最可能输入的内容。

2、用户输入建议应与上一轮回复紧密相关,但不要与前文已经提问或者回答过的内容重复。

3、用户输入建议应匹配用户在对话中的角色和对话类型。

picture.image

智能体关于下一步问题的配置

同样地,也可支持自定义指令配置,自由地搭配自定义想要的问题建议。

结论

智谱自带的「追问」功能是以「当前对话框中所有内容」作为上下文,基于「问题建议」Prompt,为用户生成3条相关建议

结语与展望

在深入分析了Kimi和智谱等国内AI大模型工具的「无限追问」功能后,我们可以得出一些共同点和差异。

无论是基于最后一段回复内容还是整个对话历史,这些工具都在尝试通过智能的方式,为用户提供更加连贯和相关的提问建议,以优化交互体验。

感兴趣的朋友也可以基于此来定制自己的「问题建议助手」帮助目标用户进行更好的提问和建议~

共同点

  • 上下文理解 :无论是Kimi还是智谱,它们都能够在一定程度上理解对话的上下文,根据已有的信息生成问题建议。(或许也有成本考量?)
  • 用户便利性 :通过自动提供问题建议,减少了用户思考下一步提问的时间,提高了对话效率。

差异

  • 上下文范围 :Kimi似乎更倾向于基于最后一段回复内容生成问题建议,而智谱则能够考虑整个对话历史,提供更为全面的建议。
  • 个性化配置 :智谱提供了智能体配置中心,允许用户或开发者根据特定需求自定义问题建议的生成逻辑。

未来展望

随着AI技术的不断进步,我们有理由相信,「无限追问」功能将变得更加智能和个性化:

  • 深度学习 :通过更深入的机器学习,AI将能更好地理解用户的意图和对话的深层含义。
  • 个性化体验 :AI将能够根据用户的历史行为和偏好,提供更加个性化的问题建议。
  • 跨领域融合 :AI工具将能够更好地处理跨领域的话题转换,提供更加灵活的问题建议。
  • 交互式学习 :用户将能够通过反馈机制,教导AI更准确地捕捉自己的需求,实现交互式学习和优化。

「无限追问」功能将成为AI助手与用户之间沟通的桥梁,不仅提高信息获取的效率,也将丰富人机交互的深度和广度。

我们期待一个更加智能、更加贴心的AI助手时代的到来。

期待,

并憧憬着,

Javis的到来~


三连(点赞+在看+转发 )跪谢!!

欢迎大家加入结构词AI社区一起解锁🔓更多prompt高端玩法~

picture.image

结构词AI社区——玩转提示词

更多

关于结构化提示词如何学习入门请参考结构化提示词[1]

参考资料

[1]结构词AI: http://langgpt.ai/

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论