Install this version:
emerge -a =sci-ml/amd-gaia-0.23.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =sci-ml/amd-gaia-0.23.0
Or alternatively:
emerge --autounmask-write -a =sci-ml/amd-gaia-0.23.0
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Upstream keeps its metadata in setup.py (name, deps, entry points); the
# pyproject.toml here only carries black/isort/mypy/bandit/pytest/uv config and
# has no [project] table, so the backend is plain setuptools.
DISTUTILS_USE_PEP517=setuptools
# Narrowed to 3.14 by USE=api, not by upstream: dev-python/fastapi is
# PYTHON_COMPAT=( python3_{14..15} ), so on 3.12/3.13 that flag has no
# solution and pkgcheck reports it as a nonsolvable depset on every profile.
# Widen this again once fastapi supports the older interpreters.
PYTHON_COMPAT=( python3_14 )
# sci-ml/transformers and sci-ml/accelerate are DISTUTILS_SINGLE_IMPL (they sit
# on top of sci-ml/pytorch, which is built for one interpreter), and GAIA
# imports both from its core. A multi-impl build here cannot satisfy them:
# they expose PYTHON_SINGLE_TARGET, not PYTHON_TARGETS.
DISTUTILS_SINGLE_IMPL=1
# The pypi eclass normalizes ${PN} to the sdist name (amd-gaia -> amd_gaia) and
# sets both SRC_URI and S from it, so neither is declared here.
inherit distutils-r1 pypi
DESCRIPTION="Agent framework that runs locally against an OpenAI-compatible LLM server"
HOMEPAGE="https://github.com/amd/gaia https://pypi.org/project/amd-gaia/"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
# Pure Python (py3-none-any wheel) and the model backend is reached over HTTP,
# so nothing here is architecture specific — hence ~arm64 alongside ~amd64.
#
# pkgcheck reports NonsolvableDeps on every arm64 profile, and that report is
# EXPECTED — do not "fix" it by dropping the keyword. Nothing in GAIA is
# amd64-only; the gap is one level down, in ::gentoo, where sci-ml/transformers
# and sci-ml/accelerate are still ~amd64 (sci-ml/pytorch beneath them already
# carries ~arm64), and dev-python/fastapi likewise. Keeping ~arm64 here means
# the package starts working on arm64 the day those three are keyworded,
# without this ebuild being touched.
#
# IUSE maps upstream extras_require, but only the extras whose every dependency
# already exists in ::gentoo or ::bentoo. The rest are deliberately absent:
#
# image -> dev-python/term-image missing
# litellm -> dev-python/litellm missing
# mcp -> dev-python/mcp missing (starlette and uvicorn are present)
# telegram -> dev-python/python-telegram-bot missing
# blender -> the standalone `bpy` module is missing (media-gfx/blender does
# not install an importable bpy for the system interpreter)
# audio -> torchaudio missing (sci-ml/pytorch and sci-ml/torchvision exist)
# rag -> faiss-cpu, pymupdf, python-pptx and python-docx all missing
# ui -> the rag set above plus sentence-transformers, all missing
# eval -> dev-python/anthropic and dev-python/tiktoken missing
# talk -> sounddevice, openai-whisper and kokoro missing
# youtube -> llama-index-readers-youtube-transcript missing
#
# dev / lint / publish are upstream's own toolchains (pytest, black, mypy,
# build, twine) and are not runtime features, so they are not USE flags.
IUSE="api"
# transformers and accelerate live in sci-ml/, not dev-python/.
# pywin32 from install_requires is dropped: its marker is sys_platform=="win32".
RDEPEND="
sci-ml/accelerate[${PYTHON_SINGLE_USEDEP}]
sci-ml/transformers[${PYTHON_SINGLE_USEDEP}]
$(python_gen_cond_dep '
dev-python/aiohttp[${PYTHON_USEDEP}]
dev-python/beautifulsoup4[${PYTHON_USEDEP}]
dev-python/openai[${PYTHON_USEDEP}]
dev-python/python-dotenv[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/rich[${PYTHON_USEDEP}]
>=dev-python/apscheduler-3.10.0[${PYTHON_USEDEP}]
>=dev-python/cryptography-42.0.0[${PYTHON_USEDEP}]
>=dev-python/keyring-24.0.0[${PYTHON_USEDEP}]
<dev-python/keyring-26[${PYTHON_USEDEP}]
>=dev-python/pillow-9.0.0[${PYTHON_USEDEP}]
>=dev-python/pydantic-2.9.2[${PYTHON_USEDEP}]
>=dev-python/python-multipart-0.0.9[${PYTHON_USEDEP}]
>=dev-python/tavily-python-0.5.0[${PYTHON_USEDEP}]
>=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
>=dev-python/watchdog-2.1.0[${PYTHON_USEDEP}]
')
api? (
$(python_gen_cond_dep '
>=dev-python/fastapi-0.115.0[${PYTHON_USEDEP}]
>=dev-python/httpx-0.27.0[${PYTHON_USEDEP}]
>=dev-python/uvicorn-0.32.0[${PYTHON_USEDEP}]
')
)
"
# dev-python/tomli is deliberately absent from RDEPEND. Upstream guards it with
# python_version < '3.11' because from 3.11 on the same parser is tomllib in the
# stdlib, and this tree's live implementations start at 3.12 — so no interpreter
# we build for can ever need it. Restore the dep only if PYTHON_COMPAT is ever
# widened below 3.11.
# The whole tests/ directory in the sdist talks to a live Lemonade server:
# 15 of the 16 files reference a lemonade endpoint, localhost or an API key
# (tests/test_lemonade_health.py drives requests against the running server's
# /health), and pyproject.toml marks the rest as integration / real_model /
# network. None of that is reachable from the build sandbox.
RESTRICT="test"
# src/gaia/apps/webui/dist/ is shipped pre-bundled in the sdist (minified JS/CSS
# plus woff2 fonts) and is installed as package_data. There is no npm/node step
# to run and no sources to rebuild it from — do NOT add a nodejs build phase.
pkg_postinst() {
elog "GAIA does not serve models itself: it drives an OpenAI-compatible"
elog "server. The backend packaged in this overlay is sci-ml/lemonade;"
elog "point GAIA at it with GAIA_BASE_URL or gaia's own configuration."
if ! use api; then
elog
elog "USE=api adds fastapi/uvicorn/httpx, needed by the local REST"
elog "server (gaia api) and by the browser UI it serves."
fi
}
Manage flags for this package:
euse -i <flag> -p sci-ml/amd-gaia |
euse -E <flag> -p sci-ml/amd-gaia |
euse -D <flag> -p sci-ml/amd-gaia
sci-ml/accelerate[${PYTHON_SINGLE_USEDEP}] sci-ml/transformers[${PYTHON_SINGLE_USEDEP}] $(python_gen_cond_dep ' dev-python/aiohttp[${PYTHON_USEDEP}] dev-python/beautifulsoup4[${PYTHON_USEDEP}] dev-python/openai[${PYTHON_USEDEP}] dev-python/python-dotenv[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] dev-python/rich[${PYTHON_USEDEP}] >=dev-python/apscheduler-3.10.0[${PYTHON_USEDEP}] >=dev-python/cryptography-42.0.0[${PYTHON_USEDEP}] >=dev-python/keyring-24.0.0[${PYTHON_USEDEP}] <dev-python/keyring-26[${PYTHON_USEDEP}] >=dev-python/pillow-9.0.0[${PYTHON_USEDEP}] >=dev-python/pydantic-2.9.2[${PYTHON_USEDEP}] >=dev-python/python-multipart-0.0.9[${PYTHON_USEDEP}] >=dev-python/tavily-python-0.5.0[${PYTHON_USEDEP}] >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}] >=dev-python/watchdog-2.1.0[${PYTHON_USEDEP}] ') api? ( $(python_gen_cond_dep ' >=dev-python/fastapi-0.115.0[${PYTHON_USEDEP}] >=dev-python/httpx-0.27.0[${PYTHON_USEDEP}] >=dev-python/uvicorn-0.32.0[${PYTHON_USEDEP}] ') )