Phi-3 Forest Lab环境部署:使用Caddy反向代理+HTTPS暴露内网森林服务
·
Phi-3 Forest Lab环境部署:使用Caddy反向代理+HTTPS暴露内网森林服务
1. 项目概述
Phi-3 Forest Lab是一个基于微软Phi-3 Mini 128K Instruct模型构建的极简主义AI对话终端。这个项目将前沿的轻量级大模型技术与自然审美设计相结合,为用户提供一个静谧、高效且富有逻辑的思考空间。
核心特点:
- 搭载微软Phi-3-mini-128k-instruct模型
- 支持128K Tokens超长上下文
- 极简森系UI设计
- 本地部署与安全访问
2. 环境准备
2.1 硬件要求
- 显卡:NVIDIA GPU(推荐RTX 3090/4090)
- 内存:至少16GB
- 存储:20GB可用空间
2.2 软件依赖
# 基础环境
sudo apt update && sudo apt install -y python3-pip git curl
# Python依赖
pip install torch transformers streamlit
3. 基础部署
3.1 下载模型
git clone https://huggingface.co/microsoft/Phi-3-mini-128k-instruct
cd Phi-3-mini-128k-instruct
3.2 启动Streamlit服务
创建app.py文件:
import streamlit as st
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(".")
tokenizer = AutoTokenizer.from_pretrained(".")
# 界面配置
st.set_page_config(page_title="Phi-3 Forest Lab")
user_input = st.text_input("向森林深处发出的讯息")
if user_input:
inputs = tokenizer(user_input, return_tensors="pt")
outputs = model.generate(**inputs, max_length=128)
st.write(tokenizer.decode(outputs[0]))
启动服务:
streamlit run app.py
4. Caddy反向代理配置
4.1 安装Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
4.2 配置Caddyfile
创建/etc/caddy/Caddyfile:
yourdomain.com {
reverse_proxy localhost:7860
tls your@email.com
}
4.3 启动Caddy服务
sudo systemctl enable caddy
sudo systemctl start caddy
5. HTTPS安全配置
5.1 自动获取证书
Caddy会自动处理SSL证书的获取和续期,确保添加了正确的域名解析。
5.2 防火墙设置
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
6. 高级配置
6.1 性能优化
# 修改app.py中的模型加载方式
model = AutoModelForCausalLM.from_pretrained(
".",
device_map="auto",
torch_dtype="auto"
)
6.2 对话历史持久化
# 在app.py中添加会话状态
if "history" not in st.session_state:
st.session_state.history = []
if user_input:
inputs = tokenizer(user_input, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_length=128)
response = tokenizer.decode(outputs[0])
st.session_state.history.append((user_input, response))
st.write(response)
7. 常见问题解决
7.1 端口冲突
如果7860端口被占用,可以修改Streamlit端口:
streamlit run app.py --server.port 8000
7.2 证书问题
检查Caddy日志:
journalctl -u caddy -f
7.3 模型加载失败
确保有足够的GPU内存,或尝试CPU模式:
model = AutoModelForCausalLM.from_pretrained(".", device_map="cpu")
8. 总结
通过本教程,我们完成了Phi-3 Forest Lab的完整部署流程:
- 基础环境准备与模型下载
- Streamlit交互界面搭建
- Caddy反向代理配置
- HTTPS安全访问设置
- 性能优化与功能扩展
这套方案不仅适用于Phi-3模型,也可以作为其他AI服务的部署参考。Caddy的自动HTTPS特性大大简化了安全配置流程,使得内网服务能够安全地暴露到公网。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)