甄嬛传角色对话系统 (Ollama Baseline)
基于《甄嬛传》角色数据的智能对话系统,使用 LoRA 微调技术训练甄嬛角色模型,支持多种交互方式。
📁 项目结构
ollama_baseline/
├── application/ # Web应用界面
│ └── huanhuan_web.py # Streamlit对话界面
├── dataScripts/ # 数据处理脚本
│ ├── huanhuan_data_prepare.py # 训练数据预处理
│ └── download_data.py # 数据集下载
├── deployment/ # 模型部署
│ ├── FAST_DEPLOYMENT_GUIDE.md # 快速部署指南
│ ├── Modelfile.huanhuan # Ollama模型文件
│ └── huanhuan_fast_lora.gguf # LoRA权重文件
├── mcp_server/ # MCP服务器
│ ├── __init__.py # 服务器入口
│ └── server.py # MCP服务器核心逻辑
├── training/ # 模型训练
│ ├── huanhuan_train.py # 训练脚本
│ ├── huanhuan_config.yaml # 训练配置
│ ├── huanhuan_config_fast.yaml # 快速训练配置
│ └── logs/ # 训练日志
├── data/ # 数据目录
├── requirements.txt # 项目依赖
└── README.md # 项目说明
🚀 功能模块
📱 Web应用 (application)
huanhuan_web.py: 基于 Streamlit 的甄嬛角色对话Web界面
支持实时对话、参数调节、聊天历史管理
提供直观的用户界面和流式对话体验
📊 数据处理 (dataScripts)
huanhuan_data_prepare.py: 甄嬛传训练数据预处理脚本
download_data.py: 从GitHub下载甄嬛传数据集
支持数据清洗、格式转换、分割等功能
🚀 模型部署 (deployment)
FAST_DEPLOYMENT_GUIDE.md: 详细的快速部署指南
Modelfile.huanhuan: Ollama模型配置文件
huanhuan_fast_lora.gguf: 训练好的LoRA权重文件
支持一键部署到Ollama服务
🔌 MCP服务器 (mcp_server)
server.py: MCP (Model Context Protocol) 服务器实现
提供与甄嬛模型交互的API接口
支持对话、模型信息查询、状态检查等功能
🎯 模型训练 (training)
huanhuan_train.py: 甄嬛角色模型训练脚本
huanhuan_config.yaml: 完整训练配置
huanhuan_config_fast.yaml: 快速训练配置
基于LoRA技术进行高效微调
支持GPU/MPS/CPU多种设备
📦 安装依赖
方式一:使用 pip 安装
pip install -r requirements.txt
方式二:使用 conda 环境(推荐)
# 1. 创建conda环境(指定Python版本)
conda create -n huanhuan python=3.13
# 2. 激活环境
conda activate huanhuan
# 3. 安装依赖
pip install -r requirements.txt
# 或者优先使用conda安装
conda install pytorch transformers -c pytorch -c huggingface
pip install -r requirements.txt
# 4. 退出环境
conda deactivate
方式三:使用 uv
# 1. 安装uv(如果未安装)
pip install uv
# 2. 创建虚拟环境
uv venv huanhuan_env
# 3. 激活环境
source huanhuan_env/bin/activate # macOS/Linux
# 4. 使用uv安装依赖(比pip快10-100倍)
uv pip install -r requirements.txt
🚀 启动服务
1. 安装并启动Ollama服务
首先,您需要安装并启动Ollama服务:
# 安装Ollama(如果尚未安装)
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# 启动Ollama服务
ollama serve
2. 下载并加载甄嬛模型
在新的终端窗口中,下载并加载甄嬛模型:
# 进入项目目录
cd /path/to/ollama_baseline
# 使用Modelfile创建甄嬛模型
ollama create huanhuan-qwen -f deployment/Modelfile.huanhuan
# 验证模型是否成功加载
ollama list
3. 启动MCP服务器
MCP (Model Context Protocol) 服务器提供了与甄嬛模型交互的API接口,可以通过以下方式启动:
# 进入项目目录
cd /path/to/ollama_baseline
# 方式一:直接运行MCP服务器脚本
python mcp_server/server.py stdio
# 方式二:使用Python模块方式运行
python -m ollama_baseline.mcp_server stdio
4. 配置MCP服务器(用于Craft或其他支持MCP的应用)
如果您想在支持MCP的应用(如Craft)中使用甄嬛模型,需要配置MCP服务器:
{
"mcpServers": {
"huanhuan-chat": {
"command": "python",
"args": [
"/path/to/ollama_baseline/mcp_server/server.py",
"stdio"
],
"env": {
"OLLAMA_HOST": "http://localhost:11434",
"HUANHUAN_MODEL": "huanhuan-qwen:latest"
}
}
}
}
将上述配置添加到您的MCP配置文件中。配置文件的位置取决于您使用的应用程序:
Craft: /path/to/Craft_mcp_settings.json
其他支持MCP的应用: 请参考相应应用的文档
5. 验证MCP服务器
启动MCP服务器后,您可以通过以下方式验证其是否正常工作:
# 使用curl发送请求(如果使用HTTP传输)
curl -X POST http://localhost:8000/v1/chat -H "Content-Type: application/json" -d '{"message": "你好,甄嬛"}'
# 或者通过支持MCP的应用程序(如Craft)与甄嬛进行对话
如果一切正常,您应该能够收到甄嬛的回复。
6. 常见问题排查
Ollama服务未启动: 确保Ollama服务正在运行,可以通过ollama list命令验证
模型未加载: 检查模型是否正确加载,使用ollama list查看可用模型
端口冲突: 如果端口被占用,可以修改Ollama的默认端口
环境变量问题: 确保MCP服务器配置中的环境变量正确设置