|
|
2 هفته پیش | |
|---|---|---|
| base | 2 هفته پیش | |
| config | 2 هفته پیش | |
| data | 2 هفته پیش | |
| docker | 2 هفته پیش | |
| docs | 2 هفته پیش | |
| script | 2 هفته پیش | |
| service | 2 هفته پیش | |
| tests | 2 هفته پیش | |
| views | 2 هفته پیش | |
| .gitignore | 2 هفته پیش | |
| Dockerfile.dev | 2 هفته پیش | |
| Dockerfile.prod | 2 هفته پیش | |
| Dockerfile.test | 2 هفته پیش | |
| Dockerfile.uat | 2 هفته پیش | |
| README.md | 2 هفته پیش | |
| __init__.py | 2 هفته پیش | |
| app.py | 2 هفته پیش | |
| requirements.txt | 2 هفته پیش |
在项目根目录执行:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r standards_service/requirements.txt
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
source .venv/bin/activate
uvicorn standards_service.app:app --host 127.0.0.1 --port 18765
默认读取项目根目录下的 归集617清洗.csv,默认把查询日志写入 standards_service/logs/query.jsonl。
可以通过环境变量覆盖路径:
export STANDARDS_CSV_PATH=/path/to/standards.csv
export STANDARDS_LOG_PATH=/path/to/query.jsonl
curl --noproxy '*' \
-X POST http://127.0.0.1:18765/v1/search \
-H 'Content-Type: application/json' \
-d '{"keywords":["GB 50330","建筑边坡工程技术规范"]}'
每条查询返回 0~3 条候选规范。状态、实施日期和替代情况只作为结果返回,不参与匹配。
source .venv/bin/activate
python -m pytest -q standards_service/tests
测试同时覆盖合成数据和项目中的真实规范清单。
当前服务支持多个 HTTP(网络请求)并发访问。匹配器在启动时加载本地规范库,查询阶段只读内存数据;查询日志在单进程内使用线程锁写入。
本地压测结果显示,单进程 Uvicorn(Python ASGI 服务)下:
如果后续使用多进程部署,需要重新设计日志写入方式,避免多个进程同时写同一个 JSONL(逐行结构化日志)文件。