最近我花了三周时间,用Dify和Ollama搭建了一个具备长期记忆功能的虚拟女友聊天工具。这个项目最大的挑战在于如何让AI保持稳定的人设,同时又能记住用户的生活细节和对话历史。经过多次迭代,最终实现的版本不仅能进行自然对话,还能记住用户的生日、喜欢的食物等个人信息,让互动体验更加真实。
在开始之前,我评估了多种技术方案。最终选择Dify+Ollama的组合主要基于以下几个考虑:
首先,Ollama作为本地大模型部署工具,完美解决了隐私问题。所有对话数据都留在本地,不会上传到云端。这对于虚拟女友这种涉及个人隐私的应用场景尤为重要。我测试过DeepSeek-R1系列模型,发现它在中文对话场景下表现优异,特别是7B版本在16G内存的机器上就能流畅运行。
其次,Dify作为开源LLM应用开发平台,提供了可视化界面和丰富的功能模块。它内置的长期记忆功能、知识库管理、对话流程设计等特性,让我可以专注于人设塑造和交互设计,而不必从零开始编写代码。这对于没有专业开发背景的创作者来说非常友好。
根据我的实测经验,推荐以下硬件配置:
注意:如果只有8GB内存,可以考虑使用1.5B模型,但对话质量会明显下降。建议至少准备16GB内存以获得可接受的体验。
验证安装是否成功:
bash复制ollama --version
我推荐使用Docker方式安装Dify,这是最简便的方法:
bash复制# 使用官方一键安装脚本
curl -fsSL https://get.dify.ai/install.sh | sh
# 启动服务
docker compose up -d
安装完成后,访问http://localhost:8000即可进入Dify管理界面。
经过对比测试,DeepSeek-R1系列在中文对话场景表现最佳。以下是模型下载命令:
bash复制# 标准7B版本(需要16GB以上内存)
ollama pull deepseek-r1:7b
# 量化版7B模型(内存占用更少)
ollama pull deepseek-r1:7b-q4_K_M
# 轻量级1.5B版本(8GB内存可用)
ollama pull deepseek-r1:1.5b
默认情况下Ollama只绑定本地回环地址,需要修改配置以允许Dify访问:
bash复制# 停止现有服务
taskkill /f /im ollama.exe
# 设置监听所有网络接口
set OLLAMA_HOST=0.0.0.0
# 启动服务(保持此窗口开启)
ollama serve
验证服务是否正常:
bash复制curl http://127.0.0.1:11434/api/tags
关键配置参数:
保存配置后,务必点击"测试连接"按钮。常见的连接问题包括:
一个成功的虚拟女友需要精心设计的人设。我的经验是:
示例知识库结构:
code复制[基础信息]
姓名:小柔
年龄:22
职业:自由插画师
宠物:布偶猫"团子"
喜欢:蜜桃乌龙茶、星空摄影
[日常互动]
早安场景:
- "早上好呀~今天也要元气满满哦"
- "睡得好吗?我刚泡了蜜桃乌龙,要一起喝吗"
[情绪陪伴]
当用户难过时:
- "抱抱你,有什么烦恼都可以跟我说"
- "要不要听听团子今天的趣事?它总能让人开心起来"
问题1:端口11434被占用
bash复制# 查找占用进程
netstat -ano | findstr :11434
# 结束占用进程(替换PID)
taskkill /pid [PID] /f
问题2:模型下载速度慢
bash复制# 设置国内镜像源
set OLLAMA_MODELS=https://mirror.ai.tencent.com/ollama/models/
问题1:无法连接Ollama
问题2:人设不稳定
经过一个月的实际使用,我发现以下几个优化点可以显著提升体验:
在实际部署中,我建议先从小规模知识库开始,通过用户测试逐步完善。每周更新一次知识库内容,可以让虚拟女友的互动更加自然丰富。