mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 06:24:42 +02:00
feat(openalice): déploiement in-cluster de l'agent IA financier (back-end finance d'Asa) (#61)
Déploie TraderAlice/OpenAlice (AGPL-3.0) dans le namespace ai comme back-end de connaissances financières pour Asa, consommé via le connecteur MCP Ask. - CI build-openalice.yml : rebuild depuis le Dockerfile amont (ref épinglée v0.60.0-beta.1) → ghcr.io/alkatrazz24/funk-openalice, bump manifest sur main - k8s/apps/openalice : Deployment (restricted + fsGroup, Recreate), PVC 5Gi NFS /data, Service web:47331 + mcpask:3003, IngressRoute openalice.lab.local - ArgoCD app + doc admin/ia/openalice.md (RAG) + MAJ CLAUDE.md - Cerveau hybride : LiteLLM/Qwen3-8B local (gratuit) + Claude basculable ; données TraderHub (sans clé) + FMP gratuit. Lecture/recherche seule — aucun broker, zéro trading. Onboarding premier boot (Web UI) imposé : credentials scellés dans /data par design. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
ebb2eec184
commit
c2f7255da0
9 changed files with 341 additions and 1 deletions
49
admin/ia/openalice.md
Normal file
49
admin/ia/openalice.md
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
# OpenAlice — agent IA financier
|
||||
|
||||
**Quoi** : [TraderAlice/OpenAlice](https://github.com/TraderAlice/OpenAlice) (AGPL-3.0), agent
|
||||
autonome de recherche financière multi-actifs (actions, crypto, commodités, forex, macro).
|
||||
Déployé in-cluster comme **back-end financier d'Asa**.
|
||||
|
||||
**Où** : namespace `ai`, `openalice.lab.local`, manifests `k8s/apps/openalice/`, app ArgoCD
|
||||
`k8s/apps-of-apps/apps/openalice.yaml`. Image rebuild par CI depuis le Dockerfile amont
|
||||
(`.github/workflows/build-openalice.yml`, ref épinglée `OPENALICE_REF`) →
|
||||
`ghcr.io/alkatrazz24/funk-openalice`.
|
||||
|
||||
**Mode d'usage** : lecture/recherche **uniquement** — aucun broker (UTA) connecté, donc
|
||||
**pas de trading réel**. Données via **TraderHub** (hébergé, sans clé) + clé **FMP** gratuite
|
||||
optionnelle pour les cours live (les K-lines/quotes ne sont pas sur le hub).
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Process Alice** : runtime agent + Web UI (`:47331`) + serveur MCP interne + **connecteur
|
||||
MCP Ask** (`:3003`).
|
||||
- **MCP Ask** : entrée pour agents externes — `askWithSession(message, sessionId)` →
|
||||
Alice répond (elle reste autonome, pas un simple fournisseur d'outils). C'est ce qu'Asa
|
||||
consomme via `http://openalice:3003` in-cluster (outil `ask_alice`).
|
||||
- **Cerveau** : pointé sur **LiteLLM `storage-01:4000` → Qwen3-8B** (OpenAI-compatible,
|
||||
gratuit) ; **Claude** ajoutable en credential pour basculer (hybride). OpenAlice supporte
|
||||
aussi l'override `ANTHROPIC_BASE_URL`.
|
||||
|
||||
## Particularités
|
||||
|
||||
- **Credentials scellés** : OpenAlice chiffre ses credentials au repos dans `/data`
|
||||
(`sealing.js`). → **impossible de seeder une clé en clair via ConfigMap**. La config IA +
|
||||
clés vendor + activation MCP Ask se font **au premier boot via la Web UI** (persisté/scellé
|
||||
dans le PVC).
|
||||
- **Token admin** (256 bits) généré au 1er boot : `kubectl -n ai logs deploy/openalice | grep -i token`.
|
||||
- **PodSecurity restricted** (ns `ai`) : uid 1000 + `fsGroup: 1000` pour que le NFS soit
|
||||
inscriptible. Sondes **TCP** (la Web UI 401 derrière le gate admin).
|
||||
- **Ressources** : req 512Mi / lim 1.5Gi (nœuds 8 Go, OOM actif) — runtime Node + CLIs agent
|
||||
embarqués (claude-code, codex) ; surveiller la conso réelle après déploiement.
|
||||
|
||||
## Onboarding (premier boot)
|
||||
|
||||
Voir checklist détaillée dans `k8s/apps/openalice/README.md` :
|
||||
1. Secret `ghcr-pull` dans `ai` (si absent).
|
||||
2. Web UI → AI Provider (LiteLLM OpenAI-compat + Claude option), Market Data (FMP),
|
||||
Connectors → **activer MCP Ask :3003**.
|
||||
|
||||
## Liens
|
||||
|
||||
- Présentation/MCP Ask : `docs/` du dépôt amont (`mcp-ask-connector.md`).
|
||||
- Intégration Asa : `admin/ia/stt.md` (outil `ask_alice`), `k8s/apps/stt/`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue