我尝试创建了一个基于大语言模型的智能对话NPC,拥有独特的角色设定,接受用户的自然语言输入后予以回复,并且能够根据回答文本的情感执行对应的动画。该NPC拥有记忆系统,能够记住用户的个人信息,在用户询问这些特定问题时给以准确的回答。

本项目使用python的FastAPI库来构建后端,Langchain库负责调用大模型,记忆存储在本地向量数据库,Unity作为前端负责处理用户输入和三维渲染。

以下是部分关键代码和Unity中的实机演示:

使用API调用DeepSeek-V3.2大模型

Python 代码从环境变量读取 API 密钥并配置 DeepSeek 模型调用查看完整图片
调用语言模型01

系统提示词为大模型提供身份信息

描述 NPC 身份与性格的中文系统提示词查看完整图片
定义角色设定02

ChromaDB构建本地向量数据库

Python 代码读取本地文本并将其拆分为有重叠的片段查看完整图片
准备本地记忆文档03

通过系统提示词的强制约束,模型的每次输出都会附带一个“情感标签”,在unity的C#程序中根据这个标签执行对应的动画。

Unity动画器

Unity 动画器中的动画状态与过渡关系查看完整图片
连接情感与动画04

Unity前端代码

Unity C# 代码处理玩家输入并发送对话请求查看完整图片
Unity 前端05

结果演示

Unity 中角色通过对话界面给出回复查看完整图片
在 Unity 中进行对话06

记忆功能测试

Unity 对话界面中的记忆召回测试查看完整图片
测试记忆功能07