Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 23 additions & 2 deletions README-podman-quadlets.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,14 @@ needed when you want to **reset and fully rebuild** the Qdrant collections.

Requires `pathfinder-qdrant` to be running. Run from the project root so the
report output path resolves correctly:
```bash
systemctl --user status pathfinder-qdrant
# if required:
systemctl --user start pathfinder-qdrant
```

```bash
# make sure this is user-owned, not root:
mkdir -p apps/api/ingest_reports

podman run --rm \
Expand All @@ -196,13 +202,28 @@ podman run --rm \
-v "$PWD/apps/api/ingest_reports:/reports:Z" \
-w /app/apps/api \
localhost/pathfinder-api:latest \
/bin/sh -lc "uv run python -m veupath_chatbot.services.vectorstore.ingest.wdk_catalog --sites all --reset && \
uv run python -m veupath_chatbot.services.vectorstore.ingest.public_strategies --sites all --reset --report-path /reports/ingest_public_strategies_report.jsonl"
/bin/sh -lc "uv run python -m veupath_chatbot.integrations.vectorstore.ingest.wdk_catalog --sites all --reset && \
uv run python -m veupath_chatbot.integrations.vectorstore.ingest.public_strategies --sites all --reset --report-path /reports/ingest_public_strategies_report.jsonl"
```

Both jobs require `OPENAI_API_KEY` (used for embeddings). The second job writes
a JSONL report to `apps/api/ingest_reports/` (gitignored).

**Beta sites:** if your `VEUPATHDB_SITES_CONFIG` points at `beta-sites.yaml`,
many WDK endpoints require authentication. Add both variables to
`~/.config/pathfinder/.env`:

```bash
# Note: path is inside the container, not on the host
VEUPATHDB_SITES_CONFIG=/app/apps/api/src/veupath_chatbot/integrations/veupathdb/beta-sites.yaml
VEUPATHDB_AUTH_TOKEN=your_api_key_here
```

Logged-in users can find their API key at their VEuPathDB profile page under
**Service Access** — for example:
`https://beta.plasmodb.org/plasmo.beta/app/user/profile#serviceAccess`
(any component site works).

## Services overview

| Service | Image | Published port | Depends on |
Expand Down
111 changes: 111 additions & 0 deletions apps/api/src/veupath_chatbot/integrations/veupathdb/beta-sites.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# VEuPathDB Beta Sites Configuration
# Base URLs for beta/staging versions of all VEuPathDB resources.
# Override this file at runtime with env: VEUPATHDB_SITES_CONFIG=/path/to/your.yaml

sites:
# Portal (queries across all component sites)
veupathdb:
name: VEuPathDB
display_name: VEuPathDB Portal (All organisms)
base_url: https://beta.veupathdb.org/veupathdb.beta/service
project_id: EuPathDB
is_portal: true

# Apicomplexan parasites
plasmodb:
name: PlasmoDB
display_name: PlasmoDB (Plasmodium)
base_url: https://beta.plasmodb.org/plasmo.beta/service
project_id: PlasmoDB
is_portal: false

toxodb:
name: ToxoDB
display_name: ToxoDB (Toxoplasma)
base_url: https://beta.toxodb.org/toxo.beta/service
project_id: ToxoDB
is_portal: false

cryptodb:
name: CryptoDB
display_name: CryptoDB (Cryptosporidium)
base_url: https://beta.cryptodb.org/cryptodb.beta/service
project_id: CryptoDB
is_portal: false

piroplasmadb:
name: PiroplasmaDB
display_name: PiroplasmaDB (Piroplasma)
base_url: https://beta.piroplasmadb.org/piro.beta/service
project_id: PiroplasmaDB
is_portal: false

# Other protozoan parasites
giardiadb:
name: GiardiaDB
display_name: GiardiaDB (Giardia)
base_url: https://beta.giardiadb.org/giardiadb.beta/service
project_id: GiardiaDB
is_portal: false

amoebadb:
name: AmoebaDB
display_name: AmoebaDB (Amoeba)
base_url: https://beta.amoebadb.org/amoeba.beta/service
project_id: AmoebaDB
is_portal: false

microsporidiadb:
name: MicrosporidiaDB
display_name: MicrosporidiaDB (Microsporidia)
base_url: https://beta.microsporidiadb.org/micro.beta/service
project_id: MicrosporidiaDB
is_portal: false

tritrypdb:
name: TriTrypDB
display_name: TriTrypDB (Kinetoplastids)
base_url: https://beta.tritrypdb.org/tritrypdb.beta/service
project_id: TriTrypDB
is_portal: false

# Fungi
fungidb:
name: FungiDB
display_name: FungiDB (Fungi)
base_url: https://beta.fungidb.org/fungidb.beta/service
project_id: FungiDB
is_portal: false

# Hosts and vectors
hostdb:
name: HostDB
display_name: HostDB (Hosts)
base_url: https://beta.hostdb.org/hostdb.beta/service
project_id: HostDB
is_portal: false

vectorbase:
name: VectorBase
display_name: VectorBase (Vectors)
base_url: https://beta.vectorbase.org/vectorbase.beta/service
project_id: VectorBase
is_portal: false

# Orthology
orthomcl:
name: OrthoMCL
display_name: OrthoMCL (Orthologs)
base_url: https://beta.orthomcl.org/orthomcl.beta/service
project_id: OrthoMCL
is_portal: false

# Default site to use
default_site: veupathdb

# Routing (timeouts for WDK client)
routing:
# Portal timeout (portal can be slow due to fan-out)
portal_timeout: 120
# Component site timeout
component_timeout: 30
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ services:
[
"/bin/sh",
"-lc",
"uv run python -m veupath_chatbot.services.vectorstore.ingest.wdk_catalog --sites all --reset && uv run python -m veupath_chatbot.services.vectorstore.ingest.public_strategies --sites all --reset --report-path /reports/ingest_public_strategies_report.jsonl"
"uv run python -m veupath_chatbot.integrations.vectorstore.ingest.wdk_catalog --sites all --reset && uv run python -m veupath_chatbot.integrations.vectorstore.ingest.public_strategies --sites all --reset --report-path /reports/ingest_public_strategies_report.jsonl"
]
restart: "no"

Expand Down