基于华为云主机一键部署快速搭建 Deepseek,打造宠物AI行为分析智能系统
华为开发者空间与云主机应用实践 华为开发者空间为全球开发者提供免费云主机资源,集成昇腾、鸿蒙等根技术开发工具。本文演示了在华为云主机上部署Ollama平台运行DeepSeek-R1大语言模型的全过程: 环境搭建:通过4核8G云主机安装Ubuntu系统,支持图形化/命令行两种远程访问方式,提供15小时免费时长。 模型部署: 下载并配置Ollama服务 导入1.5B参数的DeepSeek-R1模型 实
华为开发者空间介绍:
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
1.2 华为云空间核心功能演示:
在华为开发者空间,华为云为每个新生态的开发者免费提供一台云主机,每位开发者每年可享有数百小时的云主机使用时长。
云主机预集成CodeArts IDE、代码仓及JDK、Python等运行时插件,解决本地开发环境中配置复杂、稳定性不足和依赖等问题,为开发者提供性能强大、安全、稳定、高效的开发环境,应用场景:
- ①. 个人开发者:为开发者提供丰富的开发工具,支持开发者应用构建;
- ②. 高校师生:支持教师开课、设计实验项目,学生学习课程及开发实践;
- ③. 开源共创:开发者进行开源适配和开发,完成项目并发布开源仓库和云商店,获得开源激励。
默认机器配置是4核8G的配置,这里我们选择安装Ubuntu 24.04的镜像安装包,点击安装成功后,可以通过两种不同的远程访问方式,主要区别体现在连接目的、交互界面、适用场景和技术实现上:
- ①. 进入桌面:为开发者提供丰富的开发工具,支持开发者应用构建。
- 通过图形化界面远程操作目标计算机的完整桌面环境(如Windows、macOS或Linux桌面)。
- 用户看到的界面与本地操作相同,可运行图形软件、编辑文件等。
- 典型工具:Windows远程桌面(RDP)、第三方软件(向日葵、TeamViewer)。
- 适用场景:远程办公、技术支持、图形化运维。 - ②. 进入远程终端:支持教师开课、设计实验项目,学生学习课程及开发实践。
- 通过命令行界面(CLI)远程登录目标设备,仅支持文本指令操作(如Linux的SSH、Windows的Telnet)。
- 无图形界面,只能执行命令、查看文本输出。
- 典型协议:SSH(安全)、Telnet(明文传输,不安全)。
- 适用场景:服务器运维、网络设备配置、批量脚本执行。
(1).进入主机桌面前
-
云主机首次配置后,CPU类型、规格、操作系统、系统镜像和工具需要重置云主机后可重新配置。
-
点击进入桌面,加载云端系统桌面,需要大约3-5分钟的等待时间。
-
请将您自己电脑的输入法切换成英文,以便在云主机内能够正常输入。
(2).进入主机桌面后
-
进入主机后,初始默认可使用时长为15小时,剩余时长小于等于60分钟后,可以点击延时按钮继续使用。
-
为了保证数据的隐私安全,本地主机和云主机之间的数据传输通过安全剪贴板来传输。
-
云主机内提供了关机操作,为避免时长额度浪费,在您不用的时候请关机。
-
如果您很久未使用云主机,我们将对资源进行回收,以服务更多的开发者。
(3).退出主机桌面后
-
若您的主机还在运行中,您可以点击关机。
-
若您的剩余使用时长小于等于60分钟,可以点击延时按钮。
-
关闭连接云主机的浏览器窗口,不会使云主机立即关机,云主机仍正常运行,15分钟内未再次进入云主机,将自动关闭云主机。
二:下载ollama模型文件并运行:
Ollama是一个前沿的平台,可以让你在本地机器上运行开源的大型语言模型。它简化了部署和管理这些模型的复杂性,对于研究人员、开发者以及任何想要尝试语言模型的人来说,都是一个不错的选择。Ollama提供了一个用户友好的界面,让你可以在MacOS和Linux(Windows支持即将到来)上本地运行大型语言模型(LLMs)。
Open WebUI是一个可扩展、功能丰富、用户友好的自托管WebUI,设计为完全离线运行。它支持多种大型语言模型(LLM)运行器,包括Ollama和OpenAI兼容的API。
2.1 在终端中输入命令:
wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama-linux-amd64.tgz
2.2 解压安装包:
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
2.3 增加执行权限,创建Ollama用户:
sudo chmod +x /usr/bin/ollama
sudo useradd -r -s /bin/false -m -d /usr/share/ollama ollama
2.4 创建ollama.service:
cat << EOF > /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
[Install]
WantedBy=default.target
EOF
2.5 配置完成后,设置开机自启并运行:
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl start ollama # 启动服务
sudo systemctl enable ollama # 设置开机自启
sudo systemctl status ollama # 查看服务状态
三:下载拉取 deepseek-r1并运行测试
3.1 在终端中输入命令:
wget https://sandbox-experiment-files.obs.cn-north-4.myhuaweicloud.com/deepseek/ollama_deepseek_r1_1.5b.tar.gz
3.2 解压并将模型文件放在ollama目录:
sudo tar -C /usr/share/ollama/.ollama/models -xzf ollama_deepseek_r1_1.5b.tar.gz
sudo systemctl daemon-reload # 重新加载systemd配置
sudo systemctl start ollama # 启动服务
sudo systemctl enable ollama # 设置开机自启
sudo systemctl status ollama # 查看服务状态
3.3 运行deepseek-r1:
ollama run deepseek-r1:1.5b
3.4 可以查看模型列表:
ollama list
四:模型调用与应用开发
API文档
基础信息
- 基础URL:
http://localhost:8000
- API版本: v1
- 接口前缀:
/api/v1
认证
所有需要认证的接口都需要在请求头中携带token:
Authorization: Bearer <access_token>
用户注册
POST /api/v1/register
请求参数:
{
"email": "user@example.com",
"password": "strongpassword"
}
响应示例:
{
"id": 1,
"email": "user@example.com",
"is_active": true,
"created_at": "2024-01-01T12:00:00"
}
用户登录
POST /api/v1/token
请求参数:
{
"username": "user@example.com",
"password": "strongpassword"
}
响应示例:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"token_type": "bearer"
}
获取当前用户信息
GET /api/v1/me
响应示例:
{
"id": 1,
"email": "user@example.com",
"is_active": true,
"created_at": "2024-01-01T12:00:00"
}
宠物管理
创建宠物
POST /api/v1/pets/
请求参数:
{
"name": "小白",
"species": "猫",
"breed": "英短",
"age": 2,
"weight": 4.5
}
响应示例:
{
"id": 1,
"name": "小白",
"species": "猫",
"breed": "英短",
"age": 2,
"weight": 4.5,
"owner_id": 1,
"created_at": "2024-01-01T12:00:00"
}
获取宠物列表
GET /api/v1/pets/
查询参数:
skip
: 跳过的记录数(可选,默认0)limit
: 返回的最大记录数(可选,默认100)
响应示例:
[
{
"id": 1,
"name": "小白",
"species": "猫",
"breed": "英短",
"age": 2,
"weight": 4.5,
"owner_id": 1,
"created_at": "2024-01-01T12:00:00"
}
]
获取宠物详情
GET /api/v1/pets/{pet_id}
响应示例:
{
"id": 1,
"name": "小白",
"species": "猫",
"breed": "英短",
"age": 2,
"weight": 4.5,
"owner_id": 1,
"created_at": "2024-01-01T12:00:00"
}
更新宠物信息
PUT /api/v1/pets/{pet_id}
请求参数:
{
"name": "小白",
"age": 3,
"weight": 4.8
}
响应示例:
{
"id": 1,
"name": "小白",
"species": "猫",
"breed": "英短",
"age": 3,
"weight": 4.8,
"owner_id": 1,
"created_at": "2024-01-01T12:00:00"
}
行为记录
创建行为记录
POST /api/v1/pets/{pet_id}/behaviors/
请求参数:
{
"behavior_type": "进食",
"description": "食欲良好,吃了半罐猫粮"
}
响应示例:
{
"id": 1,
"pet_id": 1,
"behavior_type": "进食",
"description": "食欲良好,吃了半罐猫粮",
"timestamp": "2024-01-01T12:00:00",
"ai_analysis": "猫咪进食状况正常,食量适中..."
}
获取行为记录
GET /api/v1/pets/{pet_id}/behaviors/
查询参数:
skip
: 跳过的记录数(可选,默认0)limit
: 返回的最大记录数(可选,默认100)
响应示例:
[
{
"id": 1,
"pet_id": 1,
"behavior_type": "进食",
"description": "食欲良好,吃了半罐猫粮",
"timestamp": "2024-01-01T12:00:00",
"ai_analysis": "猫咪进食状况正常,食量适中..."
}
]
健康记录
创建健康记录
POST /api/v1/pets/{pet_id}/health-records/
请求参数:
{
"record_type": "疫苗",
"description": "完成年度疫苗接种",
"date": "2024-01-01T12:00:00",
"next_appointment": "2025-01-01T12:00:00"
}
响应示例:
{
"id": 1,
"pet_id": 1,
"record_type": "疫苗",
"description": "完成年度疫苗接种",
"date": "2024-01-01T12:00:00",
"next_appointment": "2025-01-01T12:00:00"
}
获取健康记录
GET /api/v1/pets/{pet_id}/health-records/
查询参数:
skip
: 跳过的记录数(可选,默认0)limit
: 返回的最大记录数(可选,默认100)
响应示例:
[
{
"id": 1,
"pet_id": 1,
"record_type": "疫苗",
"description": "完成年度疫苗接种",
"date": "2024-01-01T12:00:00",
"next_appointment": "2025-01-01T12:00:00"
}
]
AI分析
饮食分析
POST /api/v1/pets/{pet_id}/diet-analysis
请求参数:
{
"current_diet": "每天两餐猫粮,早晚各半罐湿粮"
}
响应示例:
{
"analysis": "当前饮食结构合理,蛋白质摄入充足...",
"recommendations": [
"建议增加饮水量",
"可以适当添加营养补充剂",
"建议定时定量投喂"
]
}
开发指南
项目结构
/backend
├── config.py # 配置管理
├── database.py # 数据库连接
├── models.py # 数据库模型
├── schemas.py # 数据验证模式
├── crud.py # 数据库操作
├── auth.py # 认证服务
├── ai_service.py # AI服务
├── main.py # 应用入口
├── requirements.txt # 项目依赖
└── routers/ # API路由
├── auth.py # 认证路由
└── pets.py # 宠物管理路由
技术栈
后端框架
- FastAPI:高性能异步Web框架
- SQLAlchemy:ORM框架
- Pydantic:数据验证
- Python-Jose:JWT认证
- OpenAI:AI服务
数据库
- SQLite(开发环境)
- PostgreSQL(生产环境推荐)
开发环境设置
1. Python环境
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
# 安装依赖
pip install -r backend/requirements.txt
2. 环境变量配置
# 复制环境变量示例文件
cp backend/.env.example backend/.env
# 编辑.env文件,配置必要的环境变量
# - 数据库连接
# - JWT密钥
# - OpenAI API密钥
# - 其他配置项
3. 数据库初始化
# 在Python交互式环境中执行
from backend.database import engine
from backend.models import Base
Base.metadata.create_all(bind=engine)
开发工作流
1. 代码风格
- 遵循PEP 8规范
- 使用类型注解
- 编写文档字符串
- 保持代码简洁清晰
2. 数据库操作
- 所有数据库操作都应通过CRUD函数进行
- 使用异步会话处理并发
- 正确处理事务和异常
3. API开发
- 遵循RESTful设计原则
- 使用Pydantic模型验证数据
- 实现适当的错误处理
- 添加API文档注释
4. 认证和授权
- 使用JWT进行身份验证
- 实现适当的权限控制
- 保护敏感数据
5. AI服务集成
- 合理使用OpenAI API
- 实现错误重试机制
- 优化API调用成本
数据库管理
模型变更
- 修改
models.py
中的模型定义 - 创建数据库迁移脚本
- 应用迁移更新数据库
数据备份
- 定期备份数据库
- 实现数据导出功能
- 维护数据一致性
部署
开发环境
uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000
生产环境
- 使用生产级WSGI服务器(如Gunicorn)
- 配置反向代理(如Nginx)
- 启用HTTPS
- 实现日志管理
性能优化
数据库优化
- 添加适当的索引
- 优化查询语句
- 实现缓存机制
API优化
- 实现数据分页
- 使用异步处理
- 添加缓存层
AI服务优化
- 实现结果缓存
- 优化API调用频率
- 实现请求队列
安全考虑
数据安全
- 加密敏感数据
- 实现数据备份
- 控制数据访问权限
API安全
- 使用HTTPS
- 实现速率限制
- 验证请求来源
认证安全
- 使用安全的密码存储
- 实现登录尝试限制
- 定期更新密钥
测试
单元测试
# 运行测试
pytest backend/tests/
# 生成覆盖率报告
pytest --cov=backend backend/tests/
API测试
- 使用Postman或类似工具测试API
- 编写自动化测试脚本
- 测试各种边界情况
故障排除
常见问题
-
数据库连接问题
- 检查连接字符串
- 验证数据库服务状态
- 检查网络连接
-
API错误
- 检查请求参数
- 验证认证信息
- 查看错误日志
-
AI服务问题
- 验证API密钥
- 检查API限额
- 查看错误响应
日志管理
- 配置适当的日志级别
- 实现日志轮转
- 监控错误日志
宠物行为分析AI助手
项目介绍
宠物行为分析AI助手是一个基于人工智能的宠物行为分析和健康管理系统。该系统帮助宠物主人更好地理解和照顾他们的宠物,通过AI技术分析宠物的行为模式,提供个性化的建议和健康管理方案。
功能特性
1. 宠物档案管理
- 创建和管理宠物基本信息
- 记录宠物的品种、年龄、体重等关键数据
- 支持多宠物管理
2. 行为分析
- 记录日常行为表现
- AI分析行为模式
- 提供个性化行为建议
- 异常行为预警
3. 健康管理
- 健康记录追踪
- 疫苗接种提醒
- 体检记录管理
- 就医记录存档
4. 智能建议
- 基于AI的行为分析
- 个性化饮食建议
- 健康管理提醒
- 训练方案推荐
后端技术栈
- FastAPI:高性能的Python Web框架
- SQLAlchemy:ORM数据库操作
- OpenAI:AI分析服务
- JWT:用户认证
- SQLite/PostgreSQL:数据存储
安全特性
- JWT token认证
- 密码加密存储
- 用户数据隔离
- API访问控制
安装说明
环境要求
- Python 3.8+
- pip包管理器
- 虚拟环境(推荐)
安装步骤
- 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
- 安装依赖
pip install -r backend/requirements.txt
- 配置环境变量
cp backend/.env.example backend/.env
# 编辑.env文件,配置必要的环境变量
- 启动服务
cd backend
uvicorn main:app --reload
访问 http://localhost:8000/docs 查看API文档
API文档
认证接口
- POST /api/v1/register:用户注册
- POST /api/v1/token:用户登录
- GET /api/v1/me:获取当前用户信息
宠物管理
- POST /api/v1/pets/:创建宠物档案
- GET /api/v1/pets/:获取宠物列表
- GET /api/v1/pets/{pet_id}:获取宠物详情
- PUT /api/v1/pets/{pet_id}:更新宠物信息
行为记录
- POST /api/v1/pets/{pet_id}/behaviors/:记录行为
- GET /api/v1/pets/{pet_id}/behaviors/:获取行为记录
健康管理
- POST /api/v1/pets/{pet_id}/health-records/:创建健康记录
- GET /api/v1/pets/{pet_id}/health-records/:获取健康记录
AI分析
- POST /api/v1/pets/{pet_id}/diet-analysis:饮食分析
使用说明
1. 用户注册和认证
- 注册新账户
- 登录获取token
- 使用token访问API
2. 宠物管理
- 创建宠物档案
- 更新宠物信息
- 查看宠物列表
3. 行为记录
- 记录日常行为
- 查看行为分析
- 获取AI建议
4. 健康管理
- 记录健康检查
- 设置提醒
- 追踪健康状况
更多推荐
所有评论(0)