AI Governance¶
Initialisation¶
- Afin de pouvoir générer un token longue durée donnant les pleins pouvoirs à AI Governance, connectez-vous sur un compte super admin & récupérez votre token JWT dans le cookie
access-token
situé sur le domaine de l’API - Générer un access token via la requête curl suivante
curl 'https://<API_URL>/v2/user/accessTokens' \
-X POST \
-H 'content-type: application/json' \
-H "Authorization: Bearer <YOUR_JWT>" \
--data-raw '{"name":"ai-governance","expiresAt":"2027-01-24T11:53:12.116Z"}'
- Ouvrir AI Governance
- Éditer les secrets, coller l’access token dans le secret
adminAccessToken
- Copier le workspace id indiqué dans la barre d’adresse
- Ajouter la variable d’environnement suivante au service CONSOLE :
WORKSPACE_OPS_MANAGER=https://<API_URL>/v2/workspaces/<WORKSPACE ID>/webhooks/
Si l’installation a été faite par le chart helm prismeai-core, la même valeur peut être passée directement au champs workspace_ops_manager
dans les values du service prismeai-console
Rôles¶
Après le redémarrage de l'API gateway avec la variable WORKSPACE_OPS_MANAGER
bien renseignée, plusieurs produits devraient apparaître à la racine du studio : ouvrir l'AI Governance.
Ouvrir la page Utilisateurs & Permissions puis l'onglet Roles :
- Affiner les permissions des roles existants
- Changer si nécessaire le rôle par défaut
Pour avoir les pleins privilèges sur la plateforme, vous pouvez vous assigner le rôle PlatformAdmin en revenant sur l'onglet Usagers.
Afin de donner plus de privilèges à un autre usager, vous pouvez aussi lui assigner un de ces rôles via cette même page.
Pour qu'un autre usager ait aussi accès à l'AI Governance, il est nécessaire de lui assigner le rôle PlatformManager dans la colonne Manager.
Thème plateforme¶
Il est possible de personaliser l'interface de la plateforme en ouvrant Espace utilisateur dans le menu de gauche.
AI Knowledge¶
Ouvrir le workspace AI Knowledge
Clés d'API¶
Pour renseigner les credentials des providers externes via la plateforme, accéder aux secrets du workspace via le menu 3 petits points à droite du nom du workspace :
1. Renseigner toutes les API keys nécessaires selon les providers LLM / Embeddings voulus
2. Enregistrer
Si ces credentials doivent plutôt être injectés côté infrastructure par des variables d'environnement (éventuellement issus d'un secret manager) :
1. Ouvrir la configuration du workspace via le menu 3 petits points à droite du nom du workspace, puis sur Éditer le code source.
2. Chercher (par un ctrl+f) toutes les occurences du mot {{secret.}}
, et pour chaque occurence :
3. Remplacer secret
par config
: '{{secret.openaiApiKey}}'
devient '{{config.openaiApiKey}}'
.
Ainsi, openaiApiKey
peut être à présent injecté par une variable d'environnement du service prismeai-runtime : WORKSPACE_CONFIG_ai-knowledge_openaiApiKey
Si la plateforme a été déployée via les modules Terraform & Helm Prisme.ai, toutes ces variables d'environnement sont automatiquement injectées depuis le secret manager, ne vous laissant plus qu'à renseigner les bonnes valeurs dans ces secrets.
Vector Store RAG¶
Pour le bon fonctionnement du RAG, il est nécessaire de configurer une base vectorielle.
Pour ce faire, ouvrir la configuration du workspace via le menu 3 petits points à droite du nom du workspace, puis sur Éditer le code source, et configurer la clé vectorStore
selon la base vectorielle voulue :
Redis Search¶
vectorStore:
provider: redisSearch
url: '{{secret.redisUrl}}'
Opensearch¶
vectorStore:
provider: openSearch
url: '{{secret.opensearchUrl}}'
user: '{{secret.opensearchUser}}'
password: '{{secret.opensearchPassword}}'
Comme pour les clés d'API et quelque soit la base configurée, les différents credentials peuvent être renseignés dans des secrets directement sur la plateforme ou via des variables d'environnement du service runtime.
Activation des modèles¶
Ouvrir la configuration brute du workspace via le menu 3 petits points à droite du nom du workspace puis cliquer sur Éditer le code source.
Adapter le champs defaultModels
en corrigeant dans la partie de droite les noms des modèles par défaut utilisés par les projets AI Knowledge. Ces noms de modèles doivent être identiques à ceux configurés ci-dessous pour OpenAI, OpenAI Azure, Becrock, ...
Pour activer ou désactiver des modèles d'un provider :
OpenAI¶
Mettre à jour le champs llm.openai.openai.models
Exemple :
llm:
openai:
...
openai:
api_key: '{{secret.openaiApiKey}}'
models:
- gpt-4
- gpt-4o
- o1-preview
- o1-mini
OpenAI Azure¶
Mettre à jour le champs llm.openai.azure.resources.*.deployments
.
Plusieurs ressources peuvent être utilisées en ajoutant plusieurs entrées au tableau llm.openai.azure.resources
Exemple :
llm:
openai:
azure:
resources:
- resource: "resource name"
api_key: '{{secret.azureOpenaiApiKey}}'
api_version: '2023-05-15'
deployments:
- gpt-4
- embedding-ada
Bedrock¶
Mettre à jour les champs llm.bedrock.*.models
et llm.bedrock.*.region
.
Plusieurs régions peuvent être utilisés en ajoutant plusieurs entrées au tableau llm.bedrock
Exemple :
llm:
...
bedrock:
- credentials:
aws_access_key_id: '{{secret.awsBedrockAccessKey}}'
aws_secret_access_key: '{{secret.awsBedrockSecretAccessKey}}'
models:
- mistral.mistral-large-2402-v1:0
- amazon.titan-embed-image-v1
region: eu-west-3
- credentials:
aws_access_key_id: '{{secret.awsBedrockAccessKey}}'
aws_secret_access_key: '{{secret.awsBedrockSecretAccessKey}}'
models:
- amazon.titan-embed-text-v1
region: us-east-1
Providers OpenAI compatible¶
Mettre à jour le champs llm.openailike
Exemple :
llm:
...
openailike:
- api_key: "{{config.apiKey1}}"
endpoint: "endpoint 1"
models:
- alfred-40b-1123
- api_key: "{{secret.apiKey2}}"
endpoint: "endpoont 2"
provider: lighton
models:
- azure/gpt-4o-mini
- azure/gpt-4o
- vertex_ai/gemini-1.5
options:
excludeParameters:
- presence_penalty
- frequency_penalty
- seed
Optional parameters :
- provider : Provider name used in analytics metrics & dashboards
- options.excludParameters allow excluding some openai generic parameters not supported by the given model
Configuration avancée des modèles¶
Chaque modèle peut être configuré individuellement par l'objet modelsSpecifications
:
Exemple :
modelsSpecifications:
gpt-4:
maxContext: 8192
maxResponseTokens: 2000
subtitle:
fr: Modèle hebergé aux USA.
en: Model hosted in USA.
description:
fr: Le modèle GPT-4 sur OpenAI. Vous pouvez utiliser des documents C1 et C2.
en: The GPT-4 model on OpenAI. You can use documents C1 and C2.
rateLimits:
requestsPerMinute: 1000
tokensPerMinute: 100000
failoverModel: 'gpt-4o'
text-embedding-ada-002:
type: embeddings
maxContext: 2048
subtitle: {}
description: {}
Notes :
- Tous les modèles LLM (qui n'ont pas de
type: embeddings
) apparaissaient automatiquement dans le menu de l'AI Store (sauf si désactivé au niveau de l'agent) avec les titres et descriptions configurées maxContext
permet de spécifier la taille maximum du contexte pouvant être transmis au modèle en tokens (actuellement comptabilisé par le tokenizer openai, sensiblement différent de mistral notamment)maxResponseTokens
configure la taille maximum de la complétion demandée au LLM, peut être surchargé dans les paramètres de chaque agent.
Rate limites¶
Les rate limits de modèles LLM peuvent actuellement être appliquées à 2 moments dans le traitement d'un message :
- Dès la réception d'un message pour les requestsPerMinute de projet ou usager
- Après les étapes de RAG et avant l'appel du LLM pour les tokensPerMinute de projet/usager/modèle ou requestsPerMinute de modèle
Les rate limits de modèles d'embedding sont quant à elles appliquées avant la vectorisation d'un document, par projet ou par modèle.
Par modèle¶
Lorsque modelsSpecifications.*.rateLimits.requestsPerMinute
ou modelsSpecifications.*.rateLimits.tokensPerMinute
sont définis, une erreur (personnalisable via toasts.i18n.*.rateLimit
) est renvoyée à tout usager essayant d'envoyer un message à un modèle dépassant les limites configurées. Ces limites sont propres à chaque modèle et communes à l'ensemble des projets/usagers utilisant les modèles.
Lorsque ces limites sont atteintes et si l'option modelsSpecifications.*.failoverModel
est renseignée, tout projet ayant activé son option failover.enabled
(désactivé par défaut) basculera automatiquement vers le modèle de failover.
Notes :
- Les limites tokensPerMinute s'appliquent sur le prompt complet envoyé au LLM, n'incluant pas seulement la question utilisateur mais aussi le prompt système, prompt projet, et le contexte RAG.
- Le failover et les tokensPerMinute de modèles s'appliquent aussi aux requêtes intermédiaires intervenant pendant la construction d'une réponse (suggestion de question, self query, enhance query, filtrage des sources utilisées ...)
Par projet ou usager¶
Des limites requestsPerMinute et tokensPerMinute peuvent aussi être appliqués par projet et/ou usager via le champs limits
de la configuration du workspace AI Knowledge :
limits:
files_count: 20
llm:
users:
requestsPerMinute: 20
tokensPerMinute: 100000
projects:
requestsPerMinute: 300
tokensPerMinute: 30000
embeddings:
projects:
requestsPerMinute: 200
tokensPerMinute: 1000000
- limits.llm.users indique les limites de message / tokens par minute appliquées par utilisateur, quelque soit les projets utilisés
- limits.llm.projects indique les limites par défaut de message / tokens par minutes pouvant être traités par chaque projet. Ces nombres peuvent être surchargés projet par projet via la page /admin de l'AI Knowledge.
- limits.files_count indique le nombre maximum de documents pouvant être mis en lignes dans les projets AI Knowledge. Ce nombre peut être surchargé projet par projet via la page /admin de l'AI Knowledge.
Notes :
- Les limites tokensPerMinute s'appliquent sur le prompt complet envoyé au LLM, n'incluant pas seulement la question utilisateur mais aussi le prompt système, prompt projet, et le contexte RAG.
Recherche Bing¶
Pour activer la fonctionnalité de recherche internet durant la génération des réponses, renseigner une clé d'api key Bing dans tools.webSearch.apiKey
AI Store¶
Ouvrir le workspace AI Store
Personalisation¶
Pour modifier le message d'accueil apparaissant aux nouveaux arrivants sur l'AI Store :
- Ouvrir la configuration du workspace via le menu 3 petits points à droite du nom du workspace, puis sur Éditer le code source.
- Mettre à jour le contenu html des différentes traductions dans la clé
onBoarding
Pour modifier le message d'avertissement "Cet agent peut faire des erreurs ..." en dessous du chat, mettre à jour les traductions dans inputGuidanceMessage
Pour mettre à jour les pages de CGU & Politique de confidentialité, mettre à jour les URLs dans le champs links
.
Pour personaliser leur contenu depuis la plateforme, il est possible de créer ces pages dans le workspace AI Governance puis de les rendre publique afin d'insérer leur lien dans links
.
AI Insight¶
Initialisation¶
- Ouvrir le workspace AI Store
- Ouvrir la configuration de l'application Conversations Service App et copier son apiKey
- Ouvrir le workspace AI Insight
- Ouvrir la configuration de l'application Conversations Service App et remplacer l'apiKey par celle de l'AI Store
- Enregistrer