Skip to content

wanghuanjun2113/AIFriends

Repository files navigation

AI角色养成游戏

一个基于AI的角色养成互动游戏,玩家可以与AI扮演的角色进行对话和互动,建立情感关系,体验不同的场景故事。

功能特点

  • 🤖 智能对话: 使用DeepSeek AI实现自然流畅的角色对话
  • 👥 多角色选择: 提供3个精心设计的预设角色,支持创建自定义角色
  • ❤️ 亲密度系统: 通过对话和行动影响与角色的亲密度
  • 🎭 动态场景: AI自动生成和切换不同的互动场景
  • 🧠 记忆系统: 角色拥有智能记忆,会记住重要互动
  • 🎮 丰富互动: 支持对话和多种行动(赞美、拥抱、礼物等)
  • 🎨 精美界面: 现代简洁的Web可视化界面

技术栈

后端

  • Python 3.8+
  • Flask (Web框架)
  • DeepSeek API (AI服务)
  • JSON文件存储

前端

  • HTML5 + CSS3 + JavaScript
  • Tailwind CSS风格
  • FontAwesome图标

快速开始

1. 克隆项目

git clone <repository-url>
cd friends

2. 配置API密钥

方式一:使用配置文件

# 复制配置模板
cp config/config.example.yaml config/config.yaml

# 编辑配置文件,填入您的DeepSeek API密钥
# 将 YOUR_DEEPSEEK_API_KEY_HERE 替换为您的实际密钥

方式二:使用环境变量

# 复制环境变量模板
cp .env.example .env

# 编辑.env文件,设置DEEPSEEK_API_KEY

获取DeepSeek API密钥: https://platform.deepseek.com/

3. 启动服务

Windows:

start.bat

Linux/Mac:

chmod +x start.sh
./start.sh

启动脚本会自动:

  • 创建Python虚拟环境
  • 安装所有依赖包
  • 启动Flask服务器

4. 访问游戏

打开浏览器访问: http://localhost:5000

手动安装(可选)

如果您想手动安装:

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

# 启动服务
python backend/app.py

项目结构

friends/
├── backend/                 # 后端代码
│   ├── app.py              # Flask主应用
│   ├── config.py           # 配置管理
│   ├── models/             # 数据模型
│   │   ├── character.py    # 角色模型
│   │   ├── message.py      # 消息模型
│   │   └── game_session.py # 游戏会话模型
│   ├── services/           # 业务逻辑
│   │   ├── ai_service.py   # AI服务
│   │   ├── character_service.py # 角色管理
│   │   └── game_service.py # 游戏逻辑
│   ├── utils/              # 工具函数
│   │   ├── helpers.py      # 辅助函数
│   │   └── prompt_templates.py # AI提示词模板
│   └── data/               # 数据存储
│       ├── characters.json # 角色数据
│       └── sessions/       # 游戏会话
├── frontend/               # 前端代码
│   ├── index.html          # 角色选择页面
│   ├── game.html           # 游戏页面
│   ├── css/
│   │   └── styles.css      # 样式文件
│   └── js/
│       ├── app.js          # 主应用逻辑
│       └── game.js         # 游戏逻辑
├── config/                 # 配置文件
│   └── config.example.yaml # 配置模板
├── requirements.txt        # Python依赖
├── start.bat              # Windows启动脚本
├── start.sh               # Linux/Mac启动脚本
├── 需求说明书.md          # 需求文档
├── 设计文档.md            # 设计文档
└── README.md              # 本文件

游戏说明

角色选择

游戏提供3个预设角色:

  • 林小雨: 温柔内向的女大学生,文学系学生
  • 陈阳: 阳光开朗的健身教练,热爱运动
  • 苏菲: 高冷理性的产品经理,外表高冷

您也可以创建自己的自定义角色。

对话互动

  • 在输入框中输入消息与角色对话
  • 角色会根据其性格、当前场景、亲密度和历史记忆进行回复
  • 对话会影响亲密度

行动系统

提供多种行动选项:

  • 👍 赞美 (增加3-8亲密度)
  • 💬 夸奖 (增加5-10亲密度)
  • 🎁 礼物 (增加8-15亲密度,需要20+亲密度)
  • 👋 摸头 (增加2-6亲密度,需要30+亲密度)
  • 🤗 拥抱 (增加5-12亲密度,需要40+亲密度)
  • 🤝 牵手 (增加3-8亲密度,需要60+亲密度)
  • ✋ 击掌 (增加2-5亲密度)
  • 💋 亲吻 (增加10-20亲密度,需要80+亲密度)

亲密度等级

  • 0-19: 陌生人
  • 20-39: 泛泛之交
  • 40-59: 朋友
  • 60-79: 好友
  • 80-100: 挚友

场景系统

  • 每10-15轮对话后会自动切换场景
  • AI根据亲密度和角色性格生成合适的场景
  • 场景切换会有动画提示

记忆系统

  • 角色会记住重要的对话和事件
  • 记忆会影响后续对话
  • 定期总结和优化记忆,保留最重要的内容

配置说明

config.yaml

# 服务器配置
server:
  host: "0.0.0.0"
  port: 5000
  debug: true

# DeepSeek API配置
deepseek:
  api_key: "YOUR_API_KEY"  # 必填
  model: "deepseek-chat"
  temperature: 0.8
  max_tokens: 500

# 游戏配置
game:
  intimacy:
    initial: 20            # 初始亲密度
    max: 100               # 最大亲密度
  scene:
    min_interactions: 10   # 最少交互次数后切换场景
    max_interactions: 15
  memory:
    max_memories: 20       # 最大记忆条数

API文档

角色相关

  • GET /api/characters - 获取所有角色
  • GET /api/characters/{id} - 获取单个角色
  • POST /api/characters - 创建自定义角色

游戏相关

  • POST /api/game/start - 开始游戏
  • POST /api/game/message - 发送消息
  • POST /api/game/action - 执行行动
  • GET /api/game/state - 获取游戏状态
  • GET /api/game/history - 获取对话历史

系统

  • GET /api/health - 健康检查

常见问题

Q: AI响应很慢怎么办?

A:

  • 检查网络连接
  • API请求可能需要几秒钟,请耐心等待
  • 可以在config.yaml中调整timeout参数

Q: 如何添加更多预设角色?

A: 编辑backend/data/characters.json文件,按照现有格式添加新角色。

Q: 游戏数据保存在哪里?

A:

  • 角色数据: backend/data/characters.json
  • 游戏会话: backend/data/sessions/目录下的JSON文件

Q: 如何修改游戏参数(如亲密度计算)?

A: 编辑backend/services/game_service.py中的相关方法,如_get_action_config

开发相关

运行测试

# 安装测试依赖
pip install pytest

# 运行测试
pytest tests/

代码规范

项目遵循PEP 8代码规范。

贡献指南

欢迎提交Issue和Pull Request!

许可证

MIT License

致谢

  • DeepSeek AI - 提供强大的AI对话能力
  • Flask - 简洁高效的Web框架
  • DiceBear - 可爱的头像生成服务

联系方式

如有问题或建议,欢迎提交Issue。


享受游戏!🎮

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors