Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d8d3da2
condense endpoint
jniestroy Mar 12, 2026
952f93b
fix structure
jniestroy Mar 12, 2026
bd9cbd9
don't grab stored identifier
jniestroy Mar 12, 2026
17d7afa
more
jniestroy Mar 12, 2026
3908679
copy models
jniestroy Mar 12, 2026
6cc36ce
more
Mar 16, 2026
5b49e25
workign
Mar 17, 2026
2fc69b3
latest
Mar 17, 2026
f702985
prompts
jniestroy Mar 17, 2026
79ea572
include summary stats
jniestroy Mar 18, 2026
cc26927
splits fix
jniestroy Mar 18, 2026
f708e56
assumptions
Mar 23, 2026
81185eb
try something
jniestroy Mar 27, 2026
64accd7
latest with errors
Apr 1, 2026
6ec8eb6
add AEG upload endpoint and condensation CRUD
Apr 20, 2026
c07cf8a
Phase 0: migrate pure helpers/prompts/models to fairscape_interpret.
jniestroy Apr 20, 2026
e7882a0
Phase 1 #10: Mongo adapters for fairscape_interpret ports.
jniestroy Apr 20, 2026
dbc9922
Phase 1 #11: shrink interpretation + condensation CRUDs to thin wrapp…
jniestroy Apr 20, 2026
6642227
Phase 0: switch dependency fairscape_interpret -> fairscape_graph_tools.
jniestroy Apr 21, 2026
6e0c5d8
Phase 1: shrink models/evidence_graph.py to shim over shared pkg.
jniestroy Apr 21, 2026
93bb7fa
move evidence graph into graph tools
jniestroy Apr 22, 2026
75e57c9
build with intepert
Apr 23, 2026
4cdd5da
my latest code
May 13, 2026
1326407
Merge remote-tracking branch 'origin/main' into intepret
May 13, 2026
f6799fe
local creation
Jun 1, 2026
4503889
person defined term
Jun 1, 2026
a20fee3
Merge branch 'main' into intepret
Jun 8, 2026
ea58483
build updates to support lcoal edits
Jun 9, 2026
78bc0f9
delete code moved to graph tools
Jun 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -170,3 +170,4 @@ mds/src/fairscape_mds/tests/descriptive_statistics.ipynb
/.devcontainer
.devcontainer/devcontainer.json
CLAUDE.md
preflight.sh
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ WORKDIR /fairscape/src/

COPY pyproject.toml .
COPY uv.lock .
RUN uv sync --locked
# --no-sources ignores the [tool.uv.sources] local-path overrides in pyproject,
RUN uv sync --no-sources


#RUN export PYTHONPATH="$PYTHONPATH:/fairscape/src"
Expand Down
25 changes: 25 additions & 0 deletions Dockerfile.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM python:3.12-slim-bookworm

RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates

RUN pip install uv

COPY fairscape_server/mds/src/ /fairscape/src/
COPY fairscape_graph_tools/ /fairscape/fairscape_graph_tools/
COPY fairscape_models/ /fairscape/fairscape_models/

WORKDIR /fairscape/src/

COPY fairscape_server/pyproject.toml .
COPY fairscape_server/uv.lock .
RUN uv sync --locked
RUN uv pip install --editable /fairscape/fairscape_models/

ENV PYTHONPATH="/fairscape/src"
ENV PATH="/fairscape/src/.venv/bin:$PATH"
# Prevent uv run from re-syncing on startup (which would overwrite the editable install above)
ENV UV_NO_SYNC=1

WORKDIR /fairscape/src/

CMD ["uv", "run", "uvicorn", "fairscape_mds.main:app", "--no-access-log", "--host", "0.0.0.0", "--port", "8080"]
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
VERSION = RELEASE.2026-06-05.v1
VERSION = RELEASE.2026-06-09.v1
IMAGE = ghcr.io/fairscape/mds_python

run:
cd src/ && python -m fairscape_mds
Expand All @@ -23,7 +24,10 @@ clean:
rm -rf __pycache__

build:
docker build --no-cache -t ghcr.io/fairscape/mds_python:${VERSION} .
docker build --no-cache -f Dockerfile -t $(IMAGE):$(VERSION) .

build-local:
cd .. && docker build --no-cache -f fairscape_server/Dockerfile.local -t $(IMAGE):$(VERSION) .

push:
docker push ghcr.io/fairscape/mds_python:${VERSION}
15 changes: 15 additions & 0 deletions compose.local.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Local development override — builds from the local fairscape_graph_tools and
# fairscape_models checkouts (editable).
# Usage: docker compose -f compose.yaml -f compose.local.yaml up --build
services:
fairscape-worker:
image: fairscape/mds_python:local
build:
context: "../"
dockerfile: "fairscape_server/Dockerfile.local"

fairscape-api:
image: fairscape/mds_python:local
build:
context: "../"
dockerfile: "fairscape_server/Dockerfile.local"
33 changes: 16 additions & 17 deletions compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ services:
- fairscape-api
- mongo
fairscape-worker:
build: "./"
# image: ghcr.io/fairscape/mds_python:RELEASE.2025-05-21.v1
image: ghcr.io/fairscape/mds_python:RELEASE.2026-06-09.v1
env_file: "./deploy/docker_compose.env"
environment:
- GEMINI_API_KEY=${GEMINI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- GITHUB_TOKEN=${GITHUB_TOKEN}
command:
- "uv"
Expand All @@ -23,25 +23,24 @@ services:
- mongo
- minio
fairscape-api:
build: "./"
# image: ghcr.io/fairscape/mds_python:RELEASE.2025-05-21.v1
image: ghcr.io/fairscape/mds_python:RELEASE.2026-06-09.v1
env_file: "./deploy/docker_compose.env"
ports:
- 8080:8080
depends_on:
- mongo
- minio
fairscape-frontend:
image: ghcr.io/fairscape/fairscapefrontendlocal:RELEASE.2026-02-24
ports:
- "5173:80"
environment:
VITE_FAIRSCAPE_API_URL: "http://localhost:8080/api"
SEMANTIC_SEARCH_ENABLED: "false"
depends_on:
- fairscape-api
- mongo
- minio
# fairscape-frontend:
# image: ghcr.io/fairscape/fairscapefrontendlocal:RELEASE.2026-02-24
# ports:
# - "5173:80"
# environment:
# VITE_FAIRSCAPE_API_URL: "http://localhost:8080/api"
# SEMANTIC_SEARCH_ENABLED: "false"
# depends_on:
# - fairscape-api
# - mongo
# - minio

redis:
image: redis:7.2.4
Expand Down Expand Up @@ -74,8 +73,8 @@ services:
image: minio/minio:latest
restart: always
ports:
- 9000:9000
- 9001:9001
- 9010:9000
- 9011:9001
environment:
MINIO_ROOT_USER: miniotestadmin
MINIO_ROOT_PASSWORD: miniotestsecret
Expand Down
1 change: 1 addition & 0 deletions deploy/docker_compose.env
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export FAIRSCAPE_REDIS_PORT="6379"
export FAIRSCAPE_REDIS_JOB_DATABASE="0"
export FAIRSCAPE_REDIS_RESULT_DATABASE="1"
export FAIRSCAPE_BASE_URL="http://localhost:8080/api"
export FAIRSCAPE_INTERNAL_URL="http://fairscape-api:8080/api"

# auth config
export FAIRSCAPE_ADMIN_GROUP="admin"
Expand Down
11 changes: 7 additions & 4 deletions mds/src/fairscape_mds/core/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class Settings(BaseSettings):
FAIRSCAPE_ADMIN_GROUP: str

FAIRSCAPE_BASE_URL: str
FAIRSCAPE_INTERNAL_URL: Optional[str] = Field(default=None)
FAIRSCAPE_DESCRIPTIVE_STATISTICS_MAX_COLUMNS: int = 100

FAIRSCAPE_LOGFIRE_ENV: Optional[str] = Field(default=None)
Expand All @@ -67,7 +68,8 @@ def __init__(
tokensCollection,
jwtSecret: str,
adminGroup: str,
baseUrl: str
baseUrl: str,
internalUrl: Optional[str] = None
):
self.minioClient=minioClient
self.minioBucket=minioBucket
Expand All @@ -80,6 +82,7 @@ def __init__(
self.jwtSecret = jwtSecret
self.adminGroup = adminGroup
self.baseUrl = baseUrl
self.internalUrl = internalUrl



Expand Down Expand Up @@ -167,8 +170,7 @@ def _add_header(request, **kwargs):


celeryApp.conf.update(
task_concurrency=4, # Use 4 threads for concurrency
worker_prefetch_multiplier=4 # Prefetch one task at a time
worker_prefetch_multiplier=1 # Process one task at a time
)


Expand All @@ -183,5 +185,6 @@ def _add_header(request, **kwargs):
tokensCollection=tokensCollection,
jwtSecret=settings.FAIRSCAPE_JWT_SECRET,
adminGroup=settings.FAIRSCAPE_ADMIN_GROUP,
baseUrl=settings.FAIRSCAPE_BASE_URL
baseUrl=settings.FAIRSCAPE_BASE_URL,
internalUrl=settings.FAIRSCAPE_INTERNAL_URL
)
Loading
Loading