-
Créez un fichier config.yml à la racine du dépot sur la base du fichier d'exemple config.example.yml Voir la section Configuration pour plus d'informations.
-
Déployez l'API avec Docker à l'aide du fichier compose.yml à la racine du dépot.
docker compose up -d
Les variables d'environnements sont celles propres à FastAPI.
Variable | Description |
---|---|
APP_CONTACT_URL | URL pour les informations de contact de l'application (par défaut : None) |
APP_CONTACT_EMAIL | Email de contact pour l'application (par défaut : None) |
APP_VERSION | Version de l'application (par défaut : "0.0.0") |
APP_DESCRIPTION | Description de l'application (par défaut : None) |
CONFIG_FILE | Chemin vers le fichier de configuration (par défaut : "config.yml") |
LOG_LEVEL | Niveau de journalisation (par défaut : DEBUG) |
Pour fonctionner, l'API Albert nécessite configurer le fichier de configuration (config.yml). Celui-ci définit les clients tiers et des paramètres de configuration.
Voici les clients tiers nécessaires :
- Auth (optionnel) : Grist*
- Cache : Redis
- Internet : DuckDuckGo ou Brave
- Vectors : Qdrant ou Elasticsearch
- Models** :
- text-generation: vLLM
- text-embeddings-inference: HuggingFace Text Embeddings Inference
- automatic-speech-recognition: Whisper OpenAI API
- text-classification: HuggingFace Text Embeddings Inference
Vous devez à minima à disposer d'un modèle language (text-generation) et d'un modèle d'embeddings (text-embeddings-inference).
* Pour plus d'information sur l'authentification Grist, voir la documentation.
** Pour plus d'information sur le déploiement des modèles, voir la documentation.
Ces clients sont déclarés dans un fichier de configuration qui doit respecter les spécifications suivantes (voir config.example.yml pour un exemple) :
rate_limit:
by_ip: [optional]
by_key: [optional]
internet:
default_language_model: [required] # alias not allowed
default_embeddings_model: [required] # alias not allowed
models:
aliases: [optional]
- [model_name]: [[value, ...]] # duplicate alias not allowed or model_id not allowed
...
clients:
auth: [optional]
type: grist
args: [optional]
[arg_name]: [value]
...
internet:
type: duckduckgo|brave
args:
default_language_model: [required]
default_embeddings_model: [required]
[arg_name]: [value]
...
models:
- url: text-generation|text-embeddings-inference|automatic-speech-recognition|text-classification
key: [optional]
type: [required]
...
databases:
cache: [required]
type: redis
args: [required]
[arg_name]: [value]
...
search: [required]
type: elastic|qdrant
args: [required]
[arg_name]: [value]
...
Pour avoir un détail des arguments de configuration, vous pouvez consulter le schéma Pydantic de la configuration ici.