some finalish touches
This commit is contained in:
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
**ClimbingBoardGPT** is a unified transformer-style modeling project for climbing-board routes on:
|
**ClimbingBoardGPT** is a unified transformer-style modeling project for climbing-board routes on:
|
||||||
|
|
||||||
- **Tension Board 2 Mirror**
|
- **Tension Board 2 Mirror** (12ftx12ft)
|
||||||
- **Kilter Board Original**
|
- **Kilter Board Original** (16ftx12ft)
|
||||||
|
|
||||||
The project treats climbing-board problems as symbolic sequences of board-aware hold-role tokens. It supports:
|
The project treats climbing-board problems as symbolic sequences of board-aware hold-role tokens. It supports:
|
||||||
|
|
||||||
@@ -637,6 +637,7 @@ models/joint_route_gpt_generator.pth
|
|||||||
models/joint_transformer_grade_predictor.pth
|
models/joint_transformer_grade_predictor.pth
|
||||||
data/processed/tokenized/token_metadata.csv
|
data/processed/tokenized/token_metadata.csv
|
||||||
data/processed/tokenized/token_vocab.json
|
data/processed/tokenized/token_vocab.json
|
||||||
|
data/processed/tokenized/route_sequences.csv
|
||||||
configs/
|
configs/
|
||||||
images/
|
images/
|
||||||
src/climbingboardgpt/
|
src/climbingboardgpt/
|
||||||
@@ -675,7 +676,9 @@ Example prediction payload:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Board-size-specific generation is a planned future extension. For now, the demo uses the full TB2 12x12 and Kilter 16x12-style background images and placement sets.
|
# Future Work
|
||||||
|
- Board-size-specific generation is a planned future extension. For now, the demo uses the full TB2 12x12 and Kilter 16x12-style background images and placement sets.
|
||||||
|
- "No Match" token and "No Match" options in the demo.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ services:
|
|||||||
climbingboardgpt-webapp:
|
climbingboardgpt-webapp:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.webapp
|
dockerfile: webapp/Dockerfile
|
||||||
container_name: climbingboardgpt-webapp
|
container_name: climbingboardgpt-webapp
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1,24 +1,35 @@
|
|||||||
FROM python:3.11-slim
|
FROM python:3.12-slim
|
||||||
|
|
||||||
ENV PYTHONDONTWRITEBYTECODE=1
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||||||
ENV PYTHONUNBUFFERED=1
|
ENV PYTHONUNBUFFERED=1
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apt-get update \
|
# Install CPU-only PyTorch first (separate index, ~200MB vs ~2.5GB)
|
||||||
&& apt-get install -y --no-install-recommends build-essential \
|
RUN pip install --no-cache-dir \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
--index-url https://download.pytorch.org/whl/cpu \
|
||||||
|
torch
|
||||||
|
|
||||||
COPY requirements.txt pyproject.toml README.md ./
|
# Install only runtime dependencies (no matplotlib, jupyter, etc.)
|
||||||
|
COPY pyproject.toml README.md ./
|
||||||
COPY src ./src
|
COPY src ./src
|
||||||
|
|
||||||
|
RUN pip install --no-cache-dir -e . \
|
||||||
|
--no-deps \
|
||||||
|
&& pip install --no-cache-dir \
|
||||||
|
numpy \
|
||||||
|
pandas \
|
||||||
|
scipy \
|
||||||
|
matplotlib \
|
||||||
|
scikit-learn \
|
||||||
|
fastapi \
|
||||||
|
"uvicorn[standard]" \
|
||||||
|
pydantic
|
||||||
|
|
||||||
COPY configs ./configs
|
COPY configs ./configs
|
||||||
COPY images ./images
|
COPY images ./images
|
||||||
COPY webapp ./webapp
|
COPY webapp ./webapp
|
||||||
|
|
||||||
RUN pip install --no-cache-dir --upgrade pip \
|
|
||||||
&& pip install --no-cache-dir fastapi "uvicorn[standard]" pydantic \
|
|
||||||
&& pip install --no-cache-dir -e .
|
|
||||||
|
|
||||||
EXPOSE 8055
|
EXPOSE 8055
|
||||||
|
|
||||||
CMD ["uvicorn", "webapp.app:app", "--host", "0.0.0.0", "--port", "8055"]
|
CMD ["uvicorn", "webapp.app:app", "--host", "0.0.0.0", "--port", "8055"]
|
||||||
Reference in New Issue
Block a user