分享一下我们是如何实现『成语接龙』这个游戏的,对于 AI 应用层开发感兴趣的同学可以看看。可能开发一个可用的产品时,利用 LLM 模型开发可能并不是想象的那么容易。

问题

Animos.ai 是一款给孩子的玩伴产品,小朋友们可以跟 AI 语音聊天来提问各种天马行空的问题、玩益智游戏,AI 也可以提供情感陪伴,帮助孩子学习心理健康相关的技能。益智游戏一直是我们的开发重点之一,我们期望把一些有趣的语言类的游戏转化成产品,可以让小孩子们随时游玩。

成语接龙是我们小时候常玩的游戏,可能需要有一定的成语积累量,比较适合5-10 岁、小学阶段的孩子游玩。跟 Animos 玩的时候不仅可以玩成语接龙,也可以学习一下成语故事,一举多得。

目前的 LLM,包括gpt3.5 和 gpt4,都无法判断出哪些是成语,所以如果直接使用 prompt 的方式,AI 基本上无法完成这个游戏。(如下图所示,gpt4 接龙的成语都是啥啊?!)

Untitled

解决方案

既然无法直接利用 prompt 去实现,那我们只能借助外部信息了:

这些信息可以借助 function calling 的方式,告知 LLM 外部信息可以提供哪些功能,然后 LLM 会在恰当的时候告知后台程序应该如何调用,拿到结果后再返回给 LLM 让他来整个信息。整个流程如下: