gpo.zugaina.org

Search Portage & Overlays:

sci-ml/amd-gaia

Lightweight agent framework for the edge and AMD Ryzen AI PCs

Screenshots

  • amd-gaia-0.24.1
    ~amd64
    +api audio +mcp eval image talk ui python_single_target_python3_12 python_single_target_python3_13 python_single_target_python3_14

    View      Download      Browse     License: MIT   
    Overlay: stuff
  • amd-gaia-0.24.1
    ~amd64 ~arm64
    api +python_single_target_python3_14

    View      Download      Browse     License: MIT   
    Overlay: bentoo
  • amd-gaia-0.23.0
    ~amd64
    +api audio +mcp eval image talk ui python_single_target_python3_12 python_single_target_python3_13 python_single_target_python3_14

    View      Download      Browse     License: MIT   
    Overlay: stuff
  • amd-gaia-0.22.0
    ~amd64
    +api audio +mcp eval image talk ui python_single_target_python3_12 python_single_target_python3_13 python_single_target_python3_14

    View      Download      Browse     License: MIT   
    Overlay: stuff

ChangeLog

commit 3f26411eb29fe6d5b13ab53c2d6539349cc04f03
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Wed Sep 16 13:42:58 2026 +0200

sci-ml/amd-gaia: add 0.24.1

Upstream withdrew the 0.24.0 tag, so this follows 0.23.0 directly.

It raises its floors for openai to 1.58.0, for the Realtime API, and
for requests to 2.32.3, whose connection-pool hook the pinned-IP
adapter overrides. python-multipart moves out of the core requirements
into an extra, but the packaged upload routes still declare FastAPI
UploadFile parameters, which need it, so it stays in RDEPEND.

commit c51d6803e097a570bb2c8c938e4eaef90ae869a1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 09:24:14 2026 +0200

sci-ml/amd-gaia: condense 0.23.0 dependency rationale

commit 782a18041db852d943e2ff17d1e46f7add8ca1f4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 09:24:14 2026 +0200

sci-ml/amd-gaia: condense 0.22.0 dependency rationale

commit f5cb6a0543fd030e220bc62650b8603bb33d06d9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 00:56:59 2026 +0200

sci-ml/amd-gaia: trim 0.22.0 comment prose

commit 90045903634f49a563f76fc2ba68e3651d573876
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Sep 10 00:56:02 2026 +0200

sci-ml/amd-gaia: trim 0.23.0 comment prose

commit 442dfbbaebe97f74c94d8a465a56a566f95a8282
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Aug 16 15:41:32 2026 +0200

sci-ml/amd-gaia: add tavily client dependency

Both retained GAIA releases declare tavily-python 0.5.0 or newer as an unconditional
runtime dependency.

commit 457791366fdcae5021cfdddcdf5348fa363ae78d
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Aug 14 15:23:17 2026 +0200

sci-ml/amd-gaia: drop 0.21.2-r1

commit ba507149b4dd8c79dee05f0019dcf365f26f08b7
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Aug 14 15:23:12 2026 +0200

sci-ml/amd-gaia: add 0.23.0

commit 1883170ebf0b0161cbd901859f641e56e94a31d1
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Aug 8 09:52:29 2026 +0200

sci-ml/amd-gaia: cap mcp below 2.0

mcp 2.0 is a breaking rework (httpx2 transport, mcp-types split); keep
amd-gaia on the 1.x line it targets (>=1.1.0) until its MCP agent code is
verified against 2.0.

commit e45de710e2f296d87f62c5a242516608ad859923
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 17 16:28:23 2026 +0200

sci-ml/amd-gaia: revbump 0.21.2-r1 to pin faiss to the single Python target

Same fix as 0.22.0: sci-libs/faiss is python-single-r1, so the bare
faiss[python] left its PYTHON_SINGLE_TARGET unpinned against amd-gaia's own
single impl (aligned only by profile-default coincidence). Carry the
$ constraint on the retained rollback version too.

commit a366ce79e7666d307d10c7d819c6e27d8838d64e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 17 16:13:44 2026 +0200

sci-ml/amd-gaia: drop 0.21.1

commit 26670be3949d9b83cfff2683e7567eb5442592bf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jul 17 16:13:44 2026 +0200

sci-ml/amd-gaia: add 0.22.0

New base deps apscheduler + tomli-w (upstream #892 cron scheduler). The
ui? extra now carries python-docx + python-pptx (both newly packaged in
this overlay) for DOCX/PPTX RAG ingestion. The audio extra's torch cap
follows upstream to <2.14 (still shipped uncapped, per the stale-cap note).

commit f9605143424e5ead93ce0086c7db20ade12b8833
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun Jul 5 14:30:48 2026 +0200

sci-ml/amd-gaia: condense the dependency-annotation comments

commit 291c8788ea63bedaf196b3c96083976cb20d0725
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 20 11:32:59 2026 +0200

sci-ml/amd-gaia: document accepted httpx deprecation

commit 1a390b1e91319dea2ee10e859bfa1ded93584ea6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 20 11:16:09 2026 +0200

sci-ml/amd-gaia: drop 0.21.0

commit 467b2a8862b138066c12d86386abc00c68bd58c8
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Fri Jun 19 12:23:57 2026 +0200

sci-ml/amd-gaia: add 0.21.2

Re-audited the dependency mapping against the v0.21.2 sdist:

- tavily-python is new in base install_requires (>=0.5.0) but is a soft
dependency: gaia/web/tavily.py guards the import and falls back to
DuckDuckGo when the SDK is absent. It is not packaged, so it stays out
of RDEPEND; web search degrades gracefully without it.
- tiktoken (>=0.7.0) is new in the eval extra (lazy import in token-cost
accounting, char-count fallback when absent); added to eval? since it
is packaged. Upstream's numpy<2.3 cap on eval is left off to keep the
USE flag solvable against ::gentoo's default numpy.

Rationale comments refreshed to reflect the v0.21.2 re-verification.

commit 32a385e17e9f473636ac3387842c229fd72df449
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 15:00:11 2026 +0200

sci-ml/amd-gaia: drop 0.19.0, 0.20.0, 0.20.1

commit 60eee24714c78302ee8f4f15620e1d320d0622ba
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Tue Jun 16 11:44:14 2026 +0200

sci-ml/amd-gaia: add 0.21.1

commit 5569e0c0c42c34a58c5336a637291a9deb07df2c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 13 13:24:31 2026 +0200

sci-ml/amd-gaia: add 0.21.0

0.21.0 promotes keyring from the ui/api extras into the base
install_requires (#1621): gaia.connectors.{store,mcp_server} import it at
module load and `gaia connectors` is a base CLI command. Move keyring
(>=24,<26, upstream's supply-chain pin) to base RDEPEND, drop the
now-redundant ui? copy. The talk extra gains pip (runtime spaCy model
download), added under talk?.

audio? rechecked against 0.21.0: still torch-only (no torchvision/
torchaudio), so the pytorch-alone RDEPEND stands. Left out: eval's new
tiktoken (guarded optional, unpackaged) and its numpy<2.3 cap (won't
solve against our 2.4 tree); ui? python-pptx still unpackaged.

commit 7a258e5b584a939696c53e8375d1c3e5896e85c6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 11 00:41:27 2026 +0200

sci-ml/amd-gaia: add 0.20.1

Upstream 0.20.1 moves python-multipart from the api/ui extras into the

base install_requires: the base gaia-mcp console_script imports

python_multipart at module load to parse multipart uploads, so a bare

install needs it even without USE=api. 0.20.0 already exposed gaia-mcp

as a base console_script while keeping the dep extras-only, so that

entry point was unusable on a default install; add python-multipart to

the base RDEPEND and drop the now-redundant api? copy.

audio? rechecked against v0.20.1: whisper_asr.py imports torch only and

src/ carries no torchvision/torchaudio, so the pytorch-alone RDEPEND

stands. The ui? python-pptx gap is unchanged (still unpackaged).

commit 5b265ce852792eee44428b68045f853302aef4ab
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat Jun 6 20:52:28 2026 +0200

sci-ml/amd-gaia: drop 0.17.6, 0.18.1

commit 2c7c53793af385ec6a93424a87aba9ac7238d61e
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Thu Jun 4 02:37:03 2026 +0200

sci-ml/amd-gaia: add 0.20.0

Pillow gets a >=9.0.0 floor matching upstream's new install_requires.
The ui extra also added python-pptx>=0.6.21; the calls are lazy
imports, so the omission only surfaces if a user actually feeds gaia
a .pptx for RAG. Comment in-tree pointing at the gap.

commit 99891f0ef157725854537af66a5ad2d5d0341c43
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 23 00:40:49 2026 +0200

sci-ml/amd-gaia: add 0.19.0

commit f6390e22e155d1825c1c21092085482500ffc8a9
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 12:23:16 2026 +0200

sci-ml/amd-gaia: backfill talk? group with soundfile + psutil

Upstream's talk extra lists sounddevice, openai-whisper, kokoro, soundfile, psutil (+
pip — venv-only, skipped here as Gentoo's system Python always has it). This ebuild
only declared sounddevice, openai-whisper, kokoro — a pre-existing gap inherited from
0.17.6. Add soundfile and psutil to the multi-impl talk? group so USE=talk installs
actually have the full upstream stack. Build-checked USE=talk via FEATURES=-xattr
ebuild ... merge.

commit 00604808c7f08b90f2c215b47ed2cde9706b22bf
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 16 11:14:54 2026 +0200

sci-ml/amd-gaia: add 0.18.1

Upstream setup.py diff (0.17.6 -> 0.18.1): - beautifulsoup4 graduates from
\"eval\" extra to install_requires. Move it to the unconditional common cond-dep
block; drop from the eval? group (still pulled transitively, no functional
regression). - New \"telegram\" extra (python-telegram-bot) — not wired up here;
no IUSE bit yet. - Internal modules gaia.filesystem / gaia.scratchpad / gaia.web
added upstream; no packaging side-effects. Build-verified via FEATURES=-xattr
ebuild ... merge. Pre-existing gaps in the talk? group (soundfile, psutil, pip)
still present at 0.18.1 — same upstream-vs-ebuild delta as 0.17.6, deferred.

commit a2cca24ceeec10b385e980e793907fcdad9a46db
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sun May 10 15:28:37 2026 +0200

sci-ml/amd-gaia: switch to DISTUTILS_SINGLE_IMPL

The pytorch+HF stack here (sci-ml/{accelerate,pytorch,transformers}
and the now-single-impl dev-python/{kokoro,openai-whisper} plus
sci-ml/sentence-transformers) is SINGLE_IMPL. Multi-impl consumer with
bare $ on them produces python_targets_python3_*(-)?
that the single-impl children can't expose. Single-impl deps split out
to bare $; remaining multi-impl deps wrapped in
python_gen_cond_dep.

--scan=n: pre-existing httpx DeprecatedDep is upstream-side (httpx is
deprecated in ::gentoo); cap-relax/replacement is out of scope here.

commit 50dbe85d9e0415f13f3f58135aa410eb6591c83c
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 20:19:09 2026 +0200

sci-ml/amd-gaia: drop talk → python3_12 REQUIRED_USE constraint

dev-python/{kokoro,misaki} just had their python3_13 cap-relaxed,
making them multi-impl py3.12+13. The carve-out forced by talk's
single-impl py3.12 deps is no longer needed.

Cleanup: REQUIRED_USE drops down to just `ui? ( api )`.
talk?-conditional drops the python_gen_cond_dep wrapper around
kokoro — plain dev-python/kokoro[$] resolves.
pkg_postinst no longer mentions the py3.12 force.

commit 5ca791f074a908704af1ca0f1212f81e0a9e67e4
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 19:41:14 2026 +0200

sci-ml/amd-gaia: wire kokoro into +talk; closes the talk extra fully

dev-python/kokoro lands the TTS half of gaia.talk that we deferred
all session. +talk now pulls openai-whisper + sounddevice + kokoro —
full upstream parity for the talk extra.

REQUIRED_USE adds talk? ( python_targets_python3_12 ): kokoro and
misaki are both single-impl py3.12 (upstream caps requires-python<3.13).
Pulling +talk forces a py3.12 carve-out at build time, since the
multi-impl ASR side can run on 3.12-3.14 but kokoro can't.

Build-tested via pkgcheck only — host doesn't have py3_12 installed.
Trust pkgcheck dep-graph + upstream metadata rather than rebuilding
the python stack.

gaia[extras] coverage now: ✅ api audio eval image mcp talk ui
❌ blender (bpy still parked indefinitely)

commit 03e22a259ebc00c19f9ff5a8d41c8d51a90f916f
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 15:08:00 2026 +0200

sci-ml/amd-gaia: wire +ui — last consumer of the PyMuPDF chain fork

dev-python/PyMuPDF (5e1a3817) closes the only remaining gap in
gaia[ui]. With faiss (912b494e) + sentence-transformers (8c267c26)
already landed, +ui can pull the full RAG-over-PDFs web frontend.

REQUIRED_USE="ui? ( api )" — upstream's ui extra restates fastapi/
uvicorn/python-multipart on top of its own RAG deps; saving the
duplicate by routing through +api.

Verified: USE="ui api" merges cleanly with both flags active in
installed pkg db; USE="ui -api" correctly rejected at setup phase
by REQUIRED_USE.

Accepted DeprecatedDep on dev-python/httpx — gentoo flagged the
package on 2026-04-01 because upstream stopped accepting bug
reports (encode/httpx#3784). Still installable, still functional;
no replacement candidate. Acceptance via pkgdev commit --scan=n,
documented here so future audits don't re-investigate.

Final state of gaia[extras] in this overlay:
✅ api audio eval image mcp talk (2/3, kokoro-half pending) ui
❌ blender (bpy — Blender Python module, parked indefinitely)

commit f024c91c2d6d60bd207f2d8211df1c467eab8bb6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:51:36 2026 +0200

sci-ml/amd-gaia: wire +image and +talk now their deps land

dev-python/term-image (9b205a2e) unblocks the image extra; openai-
whisper (17511e20) + sounddevice (9878c3bb) unblock the talk extra
2-of-3 (kokoro chain still parked as the heaviest remaining work).

USE=image pulls term-image only (it's the entire upstream image extra).
USE=talk pulls openai-whisper + sounddevice; gaia.talk's Kokoro TTS
half raises ModuleNotFoundError at runtime until kokoro+misaki+spacy+
phonemizer-fork+num2words+espeakng-loader land. Documented in
metadata.xml use-flag table and pkg_postinst.

ui (PyMuPDF 4-ebuild fork) and blender (bpy) remain the only extras
without all-deps-in-tree.

commit 5ce379e284788a39b103ec4c2988c9f27f4050ad
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 13:35:56 2026 +0200

sci-ml/amd-gaia: add USE=audio with cap-relaxed pytorch dep

Upstream's audio extra pins torch<2.4 / torchvision<0.19 because of
old-era openai-whisper transitive deps. Verified 2026-05-09 the cap is
stale — gaia code only `import torch`s (gaia/audio/whisper_asr.py:19);
torchvision and torchaudio are never imported, and current openai-
whisper (v20250625) has unbounded torch + no torchvision dep.

USE=audio pulls sci-ml/pytorch alone (no torchvision, no torchaudio),
without the upstream cap. Verified end-to-end against in-tree
torch-2.11.0a0:
- the exact torch APIs gaia.audio uses (cuda.is_available, device,
set_float32_matmul_precision, compile, inference_mode) all work
- upstream's torch<2.4 cap would reject 2.11.0a0; our relaxed dep
accepts it

USE=audio alone gives access to the gaia.audio module surface but
WhisperASR instantiation still needs openai-whisper from talk extra
(packaged separately in 17511e20). pkg_postinst documents which
extras still aren't built.

Updated metadata.xml use-flag table to match.

commit b27de716cc7f92fd750ed10b02110c8935e0a1d6
Author: Ivan S. Titov <iohann.s.titov@gmail.com>
Date: Sat May 9 09:54:36 2026 +0200

sci-ml/amd-gaia: add 0.17.6

AMD's open-source agent framework for local AI on Ryzen AI hardware
(NPU + iGPU). GAIA orchestrates LLM-driven workflows over any
OpenAI-compatible inference endpoint; the AMD-recommended local
backend is Lemonade Server (sci-ml/lemonade in this overlay), but
gaia is hardware-agnostic so long as the upstream API is OpenAI-
compatible.

IUSE flags map to the upstream extras_require groups whose deps are
already in tree: api (FastAPI/uvicorn HTTP server), mcp (Model
Context Protocol), eval (anthropic/scikit-learn/reportlab benchmark
harness). The 5 omitted extras (ui, audio, talk, image, blender)
need 9+ new ebuilds (faiss-cpu, sentence-transformers, pymupdf,
openai-whisper, kokoro Python pkg, sounddevice, term-image, bpy,
torchvision<0.19) which is a separate scope.

Tests need a live Lemonade server, Docker, and the Gmail API per
upstream pytest config; RESTRICT until someone wants a unit-only
subset.

Cross-checked RDEPEND against upstream setup.py install_requires
and the api/mcp/eval extras_require entries on 2026-05-09.