Blame view

docs/环境配置说明.md 5.42 KB
be52af70   tangwang   first commit
1
  
a7920e17   tangwang   项目名称和部署路径修改
2
  ## 1. 系统要求
670c701f   tangwang   文档完善
3
  
a7920e17   tangwang   项目名称和部署路径修改
4
5
6
7
8
9
10
  - **操作系统**:Linux(推荐 Ubuntu 18.04+)
  - **Conda**:Miniconda3 或 Anaconda(用于 Python 环境隔离)
  - **Python**:3.10(由 Conda 环境提供)
  - **内存**:建议 8GB+(含模型与 ES)
  - **磁盘**:10GB+(含模型与索引)
  
  ---
670c701f   tangwang   文档完善
11
12
13
  
  ## 2. Python 运行环境
  
484adbfe   tangwang   adapt ubuntu; con...
14
15
16
17
18
19
20
21
22
23
24
25
26
  本项目历史上使用 Conda 管理环境;目前推荐使用 **venv**(更轻量、对 CI/容器更友好)。项目根目录下的 `activate.sh` 已升级为 **优先激活 `.venv`,并兼容 Conda 回退**,且会自动加载当前目录下的 `.env`(忽略注释与空行)。
  
  ### 2.1 venv(推荐)
  
  首次创建 venv:
  
  ```bash
  cd /data/saas-search
  ./scripts/create_venv.sh
  source activate.sh
  ```
  
  如需运行本地 embedding / 图像编码服务(torch/transformers 等依赖较重):
a7920e17   tangwang   项目名称和部署路径修改
27
  
670c701f   tangwang   文档完善
28
  ```bash
a7920e17   tangwang   项目名称和部署路径修改
29
  cd /data/saas-search
484adbfe   tangwang   adapt ubuntu; con...
30
  INSTALL_ML=1 ./scripts/create_venv.sh
a7920e17   tangwang   项目名称和部署路径修改
31
32
  source activate.sh
  ```
2c9fad19   tangwang   撰写接口文档
33
  
484adbfe   tangwang   adapt ubuntu; con...
34
35
36
37
38
39
40
41
42
43
  日常使用:
  
  ```bash
  cd /data/saas-search
  source activate.sh
  ```
  
  ### 2.2 Conda(兼容旧流程)
  
  `activate.sh` 会在未发现 `.venv` 时回退激活 Conda 环境 `searchengine`。若在新机器上部署,请先设置本机 Conda 路径再执行:
a7920e17   tangwang   项目名称和部署路径修改
44
45
46
47
48
  
  ```bash
  # 你的 conda 在 ~/anaconda3/bin/conda,则 CONDA_ROOT=~/anaconda3
  export CONDA_ROOT=$HOME/anaconda3   # 或你的 Conda 安装路径(如 /home/ubuntu/anaconda3)
  source activate.sh
670c701f   tangwang   文档完善
49
50
  ```
  
484adbfe   tangwang   adapt ubuntu; con...
51
  **新机器首次部署(创建 Conda 环境)**:若本机尚未创建 `searchengine` 环境,任选其一:
a7920e17   tangwang   项目名称和部署路径修改
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
  
  - **方式 A(推荐,与 environment.yml 一致)**
    ```bash
    cd /data/saas-search
    export CONDA_ROOT=$HOME/anaconda3   # 或你的 Conda 安装路径
    conda env create -f environment.yml
    source activate.sh
    ```
  - **方式 B(仅 pip)**
    ```bash
    conda create -n searchengine python=3.10 -y
    conda activate searchengine
    cd /data/saas-search
    pip install -r requirements.txt
    ```
  
  之后日常使用执行 `source activate.sh` 即可(如需可先 `export CONDA_ROOT=...`)。
  
670c701f   tangwang   文档完善
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
  ---
  
  ## 3. 外部服务与端口
  
  | 服务 | 默认地址 | 说明 |
  |------|----------|------|
  | Elasticsearch | `http://localhost:9200` | 可通过 Docker 单节点启动 |
  | MySQL | `120.79.247.228:3316` | 存放店匠 SPU/SKU 数据 |
  | Redis(可选) | `localhost:6479` | Embedding/翻译缓存 |
  
  示例:使用 Docker 启动 Elasticsearch
  
  ```bash
  docker run -d \
    --name elasticsearch \
    -p 9200:9200 \
    -e "discovery.type=single-node" \
    -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" \
    elasticsearch:8.11.0
  ```
  
  ---
  
  ## 4. 环境变量与 `.env` 模板
  
  在项目根目录创建 `.env`,并根据环境替换敏感信息:
  
  ```env
  # MySQL
  DB_HOST=120.79.247.228
  DB_PORT=3316
  DB_DATABASE=saas
  DB_USERNAME=saas
  DB_PASSWORD=P89cZHS5d7dFyc9R
  
  # Elasticsearch
  ES_HOST=http://localhost:9200
484adbfe   tangwang   adapt ubuntu; con...
107
  ES_USERNAME=saas
670c701f   tangwang   文档完善
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
  ES_PASSWORD=4hOaLaf41y2VuI8y
  
  # Redis(可选)
  REDIS_HOST=localhost
  REDIS_PORT=6479
  REDIS_PASSWORD=BMfv5aI31kgHWtlx
  
  # DeepL 翻译
  DEEPL_AUTH_KEY=c9293ab4-ad25-479b-919f-ab4e63b429ed
  
  # API
  API_HOST=0.0.0.0
  API_PORT=6002
  ```
  
  ---
  
  ## 5. 服务凭证速查
  
  | 项目 | 值 |
  |------|----|
  | **MySQL** | host `120.79.247.228`, port `3316`, user `saas`, password `P89cZHS5d7dFyc9R` |
484adbfe   tangwang   adapt ubuntu; con...
130
  | **Elasticsearch** | host `http://localhost:9200`, user `saas`, password `4hOaLaf41y2VuI8y` |
670c701f   tangwang   文档完善
131
132
133
134
135
136
137
138
139
  | **Redis(可选)** | host `localhost`, port `6479`, password `BMfv5aI31kgHWtlx` |
  | **DeepL** | `c9293ab4-ad25-479b-919f-ab4e63b429ed` |
  
  > 所有凭证仅用于本地/测试环境,生产环境需替换并妥善保管。
  
  ---
  
  ## 6. 店匠数据源说明
  
a7920e17   tangwang   项目名称和部署路径修改
140
  saas-search 以 MySQL 中的店匠标准表为权威数据源:
670c701f   tangwang   文档完善
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
  
  - `shoplazza_product_spu`:SPU 商品主表
  - `shoplazza_product_sku`:SKU 变体表
  
  ### `shoplazza_product_sku` 字段节选
  
  | 字段 | 类型 | 描述 |
  |------|------|------|
  | `id` | bigint(20) | SKU 主键 |
  | `spu_id` | bigint(20) | 对应 SPU |
  | `shop_id` | bigint(20) | 店铺 ID |
  | `shoplazza_product_id` | varchar(64) | 店匠商品 ID |
  | `title` | varchar(500) | 变体标题 |
  | `sku` | varchar(100) | SKU 编码 |
  | `price` | decimal(10,2) | 售价 |
  | `compare_at_price` | decimal(10,2) | 原价 |
  | `option1/2/3` | varchar(255) | 颜色/尺码等选项 |
  | `inventory_quantity` | int(11) | 库存 |
  | `image_src` | varchar(500) | 图片 |
  | `tenant_id` | bigint(20) | 租户 |
  | `create_time` | datetime | 创建时间 |
  | `update_time` | datetime | 更新时间 |
  | `deleted` | bit(1) | 逻辑删除标记 |
  
  > 完整字段、索引映射与 ES 对应关系详见 `INDEX_FIELDS_DOCUMENTATION.md`。
  
  ---
  
  ## 7. 相关脚本
  
a7920e17   tangwang   项目名称和部署路径修改
171
  - **`activate.sh`**(项目根目录):激活 Conda 环境 `searchengine` 并加载 `.env`**日常开发/部署以本脚本为准**
670c701f   tangwang   文档完善
172
  - `scripts/mock_data.sh`:一次性生成 Tenant1 Mock + Tenant2 CSV 数据并导入 MySQL
d1d356f8   tangwang   脚本优化
173
174
175
176
  - `scripts/create_tenant_index.sh <tenant_id>`:创建租户索引结构
  - `POST /indexer/reindex`:从 MySQL 导入到 Elasticsearch(推荐)
  - `run.sh` / `restart.sh`:服务启动/重启(统一走 `scripts/service_ctl.sh`
  - `scripts/service_ctl.sh`:统一服务管理(start/stop/restart/status)
a7920e17   tangwang   项目名称和部署路径修改
177
178
  
  **新机器部署**:若 Conda 未安装在默认路径(如 `/home/tw/miniconda3`),请在执行上述脚本前设置 `CONDA_ROOT`。例如你的 conda 是 `~/anaconda3/bin/conda`(即 `/home/ubuntu/anaconda3/bin/conda`),则设置:`export CONDA_ROOT=$HOME/anaconda3`。可将该行写入 `~/.bashrc` 或部署说明。
670c701f   tangwang   文档完善
179
  
a7920e17   tangwang   项目名称和部署路径修改
180
  更多脚本参数、日志与验证命令参见 `Usage-Guide.md` 与 `测试数据指南.md`
2c9fad19   tangwang   撰写接口文档

be52af70   tangwang   first commit