# Cloud-Coding with SmolLM **Repository Path**: LambdaH/cloud-coding-with-smol-lm ## Basic Information - **Project Name**: Cloud-Coding with SmolLM - **Description**: 云计算个人作业代码仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-18 - **Last Updated**: 2025-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloud-Coding with SmolLM ## 核心部署要义 ### 1. 提示词修改 - **位置**:`python_server/model_server.py` 第151行 - **说明**:提示词是影响模型生成结果质量的关键因素,当前提示词为基础版本,可根据实际需求进行优化 - **优化建议**: - 可添加更多上下文信息 - 根据不同编程语言调整提示词结构 - 增加示例代码提高补全质量 ### 2. Docker镜像地址修改 - **位置**:各服务目录下的 `Dockerfile` - **说明**:当前Dockerfile使用轩辕私有镜像,用户需根据实际需求改为官方镜像或自己的私有镜像 ### 3. 模型下载 - **模型地址**:https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct/tree/main - **需下载文件**: - `config.json` - `generation_config.json` - `model.safetensors` - `special_tokens_map.json` - `tokenizer.json` - `vocab.json` - **存放位置**:项目根目录下的 `model/` 文件夹 - **注意事项**:由于模型文件较大,Git仓库不会包含这些文件,其他用户需自行下载 ### 4. model_server文件云主机环境配置 - **位置**:`python_server/model_server.py` - **核心配置**: - **GPU使用**:取消相应注释,启用CUDA加速 - **PyTorch和CUDA版本**:确保云主机安装的PyTorch版本与CUDA版本兼容 - **线程优化**:根据云主机CPU核心数调整相应的线程配置 - **内存优化**: - 16GB内存环境:启用第45-47行的内存优化配置 - 8GB内存环境:启用第63-71行的8位量化加载(不推荐8G,太慢了) - **推理优化**:根据云主机性能选择相应的推理参数配置 ## 完整的项目结构 ``` Cloud-Coding with SmolLM/ ├── backend/ # Spring Boot后端服务 │ ├── Dockerfile # 后端Docker构建文件 │ ├── pom.xml # Maven依赖配置 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/com/cloudcoding/backend/ │ │ │ │ ├── controller/ # API控制器 │ │ │ │ │ └── CodeCompletionController.java │ │ │ │ ├── dto/ # 数据传输对象 │ │ │ │ │ ├── CodeCompletionRequest.java │ │ │ │ │ └── CodeCompletionResponse.java │ │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ │ └── LLMService.java │ │ │ │ └── BackendApplication.java │ │ │ └── resources/ │ │ │ └── application.yml │ │ └── test/ │ └── target/ # 构建输出目录 ├── frontend/ # Vue.js前端应用 │ ├── Dockerfile # 前端Docker构建文件 │ ├── index.html # HTML模板 │ ├── package.json # npm依赖配置 │ ├── public/ # 静态资源 │ ├── src/ │ │ ├── App.vue # 主应用组件 │ │ ├── assets/ # 资源文件 │ │ ├── components/ # Vue组件 │ │ ├── main.js # 应用入口 │ │ ├── services/ # API服务 │ │ │ └── api.js │ │ └── style.css # 全局样式 │ ├── vite.config.js # Vite构建配置 │ └── dist/ # 构建输出目录 ├── model/ # 语言模型文件(需自行下载) │ ├── config.json │ ├── generation_config.json │ ├── model.safetensors │ ├── special_tokens_map.json │ ├── tokenizer.json │ └── vocab.json ├── nginx_proxy/ # Nginx代理配置 │ ├── Dockerfile # Nginx Docker构建文件 │ └── conf.d/ │ └── default.conf # Nginx配置 ├── python_server/ # Flask模型服务 │ ├── Dockerfile # 模型服务Docker构建文件 │ ├── model_server.py # 模型服务主程序 │ └── requirements.txt # Python依赖配置 ├── .gitignore # Git忽略文件配置 ├── docker-compose.yml # Docker容器编排配置 ├── README.md # 项目说明文档 ├── SMOLLM_INFO.md # SmolLM模型信息 ├── PROJECT_STRUCTURE.md # 项目结构文档 └── REQUEST_FLOWCHART.md # 请求处理流程图 ``` ## 部署步骤 ### 1. 准备工作 #### 1.1 下载模型文件 ```bash # 创建模型目录 mkdir -p model # 从Hugging Face下载模型文件(需安装git-lfs) git lfs install git clone https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct model ``` #### 1.2 安装依赖 ```bash # 安装Docker和docker-compose sudo apt-get update sudo apt-get install -y docker.io docker-compose # 启动Docker服务 sudo systemctl start docker sudo systemctl enable docker ``` ### 2. 配置调整 #### 2.1 模型服务配置 编辑 `python_server/model_server.py`: - 根据云主机环境启用GPU或CPU配置 - 调整线程数和内存参数 - 优化提示词 #### 2.2 Docker镜像配置(可选) - 根据实际需求修改各服务的Dockerfile - 替换为私有仓库镜像 ### 3. 构建与启动 #### 3.1 构建Docker镜像 ```bash docker-compose build ``` #### 3.2 启动所有服务 ```bash docker-compose up -d ``` #### 3.3 验证服务状态 ```bash docker-compose ps ``` ### 4. 访问应用 - **应用地址**:`http://服务器IP` - **服务端口**: - 前端:8081 - 后端:8080 - 模型服务:5000 - Nginx代理:80 ### 5. 常见问题处理 #### 5.1 模型加载失败 - 检查模型文件是否完整下载 - 确认模型路径配置正确 - 检查内存是否足够 #### 5.2 服务启动失败 - 查看日志:`docker-compose logs <服务名>` - 检查端口是否被占用 - 确认依赖服务已正常启动 #### 5.3 GPU使用问题 - 确认CUDA版本与PyTorch版本兼容 - 检查NVIDIA驱动是否正确安装 - 运行 `nvidia-smi` 确认GPU状态 ### 6. 停止服务 ```bash docker-compose down ``` ## 项目说明 Cloud-Coding with SmolLM是一个基于轻量级语言模型SmolLM的代码补全服务,采用微服务架构设计,支持云端部署。项目包含前端、后端、模型服务和Nginx代理四个核心组件,通过Docker容器化部署,实现了代码补全的完整流程。 ### 核心功能 - 多语言代码补全 - 实时补全预览 - 轻量级模型部署 - 容器化管理 ### 技术栈 - **前端**:Vue.js + Vite - **后端**:Spring Boot - **模型服务**:Flask + PyTorch + SmolLM - **代理**:Nginx - **容器化**:Docker + docker-compose --- **注意**:由于模型文件较大,Git仓库不会包含 `model/` 目录下的文件,使用该项目的用户需要自行下载模型文件并放置到对应目录。