renommage lassistanoque
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# Application CONCIERGE
|
||||
|
||||
## Généralités
|
||||
|
||||
Nom d'application: lassistanoque
|
||||
|
||||
Objectif :
|
||||
Le but de l'application est d'être à la fois un outil de chat, mais surtout un lieu ou l'utilisateur peut créer des agents autonomes, à la fois dans un contexte professionnel et personnel.
|
||||
Fonctionnalité :
|
||||
- Espace de chat
|
||||
- Espace de visualisation/gestion des tâches (tâches longues ou tâches récurrente)
|
||||
- Paramétrage :
|
||||
- Sélection et paramétrage du/des modèles de LLM
|
||||
- Outils et serveurs MCP
|
||||
- Canaux de communication (en lecture et écriture)
|
||||
- Paramétrage de la mémoire
|
||||
|
||||
Cibles :
|
||||
- Petite entreprise
|
||||
- Particulier (en selfhosting)
|
||||
Il doit permettre parexemple à une PME d'automatiser les réponse à son adresse de contact, faire des études de marché, sourcer des produits, codes des applications, ...
|
||||
|
||||
## Technologies
|
||||
|
||||
Composants
|
||||
- backend : Go avec le framework Echo
|
||||
- Base de données : turso
|
||||
- frontend web : pure HTML 5 + tailwind + Typescript
|
||||
- frontend desktop : Wails
|
||||
|
||||
Style :
|
||||
- Style épuré, minimaliste
|
||||
- 2 thèmes fournis : light et dark
|
||||
- Tailwind
|
||||
|
||||
Authentification :
|
||||
- multi-utilisateur
|
||||
- connexion en Openid Connect ou bien par utilisateur/mot de passe
|
||||
|
||||
Développe :
|
||||
- le squelette du backend + app web
|
||||
- le squelette de l'application Wail
|
||||
- la gestion des utilisateurs
|
||||
- les thèmes
|
||||
|
||||
Ne développe pas tout de suite :
|
||||
- L'accès aux LLM
|
||||
|
||||
Simule :
|
||||
- L'accès au LLM
|
||||
- La création des tâches
|
||||
|
||||
Le projet doit être structuré selon les règles de l'art.
|
||||
Le code doit être maintenable par un développeur moyen.
|
||||
|
||||
Privilégie la création d'un seul exécutable pour le serveur (avec go embed pour embarquer l'app web), et un executable pour l'app desktop.
|
||||
Un mode d'installation docker-compose doit être proposée.
|
||||
|
||||
## Mode Web et mode Desktop
|
||||
|
||||
Le mode web et le mode desktop utilisent la même authentification.
|
||||
Le mode Desktop est juste la même applicatoin que l'application web, mais davantage intégrée à l'OS (system tray, notifications, accès par touche de raccourci, ...).
|
||||
Le mode Desktop se connecte soit à un serveur distant, soit lance lui-même un serveur lorsqu'aucun serveur distant n'est configuré. Dans le dernier cas, le serveur doit être tué à la fermeture de l'application.
|
||||
|
||||
## Tâches
|
||||
|
||||
les tâches sont créer lors de conversation de Chat.
|
||||
Par exemple si l'utilisateur demande : "Regarde tous les jours sur ebay si tu trouve des timbres rares, et enregistre les annonces intéressantes dans ma base Grist (table Timbres). Envoie-moi un email de compte-rendu de tes recherches"
|
||||
Les tâches peuvent aussi être modifié par Chat.
|
||||
Les tâche peuvent être répétitives ou ponctuelles, longues avec Harness ou non.
|
||||
|
||||
## Base de données
|
||||
|
||||
Table provider : Fournisseurs de LLM
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- provider -> string
|
||||
- key -> string
|
||||
- url -> string
|
||||
|
||||
Table models : Modèles LLM
|
||||
- id -> uuid
|
||||
- provider_uuid -> uuid
|
||||
- name -> string
|
||||
- modelname -> string
|
||||
- configuration -> json
|
||||
|
||||
Table system : Configuration system
|
||||
- chat_model_uuid -> uuid
|
||||
- default_lang -> string
|
||||
- port -> string
|
||||
- register_enabled -> bool
|
||||
- password_enabled -> bool
|
||||
- oidc_wellknown_url -> string
|
||||
- oidc_client_id -> string
|
||||
- oidc_client_secret -> string
|
||||
|
||||
Table users : Utilisateur
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- picture -> blob
|
||||
- ...
|
||||
|
||||
Table user_adresses : Adresse de contact de l'utilisateur
|
||||
- id -> uuid
|
||||
- user_uuid : uuid
|
||||
- type (email, telegram, whatsapp, ...) -> string
|
||||
|
||||
Table channels : Canaux de communication utilisés par l'agent
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- enabled -> boolean
|
||||
- type (email, telegram, whatsapp, ...) -> string
|
||||
- configuration -> json
|
||||
|
||||
Table tools : Paramétrage des outils
|
||||
- id -> uuid
|
||||
- name -> string
|
||||
- enabled -> boolean
|
||||
- configuration -> json
|
||||
|
||||
Table tasks : Tâches
|
||||
- id -> uuid
|
||||
- owner_uuid -> uuid
|
||||
- model_uuid -> uuid
|
||||
- name -> string
|
||||
- prompt -> string
|
||||
- cron -> string
|
||||
- status (scheduled, done, paused, error) -> string
|
||||
- next_datetime -> datetime
|
||||
|
||||
Table task_history : Historique de tâche
|
||||
- id -> uuid
|
||||
- task_uuid -> uuid
|
||||
- start_datetime -> datetime
|
||||
- enb_datetime -> datetime
|
||||
- prompt -> string
|
||||
- log -> string
|
||||
- response -> string
|
||||
Reference in New Issue
Block a user