Fournisseurs de LLM et d'embeddings
Les fonctionnalités Gen AI de Tock s'appuient sur deux types de modèles :
- un LLM (grand modèle de langage), qui génère les réponses (RAG), condense les questions, génère des phrases d'entraînement ou répond dans le playground,
- un modèle d'embeddings, qui transforme les textes en vecteurs pour chercher dans la base vectorielle. Il doit être le même que celui utilisé pour indexer les documents.
Ils se configurent dans Tock Studio, dans les écrans de réglages Gen AI. Voici les fournisseurs pris en charge :
| Fournisseur | Valeur de provider |
LLM | Embeddings |
|---|---|---|---|
| OpenAI (ou toute API compatible OpenAI) | OpenAI |
✅ | ✅ |
| Azure OpenAI | AzureOpenAIService |
✅ | ✅ |
| Ollama | Ollama |
✅ | ✅ |
| AWS Bedrock | AwsBedrock |
✅ | ✅ |
| Bloomz (service d'embeddings auto-hébergé) | Bloomz |
✅ (orchestrateur uniquement) |
Réglages communs des LLM
temperature: plus elle est élevée, plus les réponses sont créatives.reasoning_effort(facultatif) : pour les modèles de raisonnement, l'effort de raisonnement :minimal,low,mediumouhigh. Laissez-le vide pour les modèles qui ne le prennent pas en charge.
OpenAI
Le réglage base_url peut cibler n'importe quelle API compatible OpenAI (par défaut : https://api.openai.com/v1).
LLM :
{
"provider": "OpenAI",
"api_key": {
"type": "Raw",
"secret": "ab7-************-A1IV4B"
},
"model": "gpt-4o",
"base_url": "https://api.openai.com/v1",
"temperature": 0.7
}
Embeddings :
{
"provider": "OpenAI",
"api_key": {
"type": "Raw",
"secret": "ab7-************-A1IV4B"
},
"model": "text-embedding-3-small",
"base_url": "https://api.openai.com/v1"
}
Azure OpenAI
LLM (pour les embeddings, les mêmes réglages sans temperature) :
{
"provider": "AzureOpenAIService",
"api_key": {
"type": "Raw",
"secret": "ab7-************-A1IV4B"
},
"api_base": "https://custom-api-name.openai.azure.com",
"deployment_name": "custom-deployment-name",
"model": "gpt-4o",
"api_version": "2024-10-21",
"temperature": 0.7
}
Ollama
Ollama fait tourner des modèles ouverts en local ou sur vos propres serveurs. Aucune clé d'API n'est nécessaire.
LLM (pour les embeddings, les mêmes réglages sans temperature, avec un modèle d'embeddings) :
{
"provider": "Ollama",
"model": "llama3.1:8b",
"base_url": "http://localhost:11434",
"temperature": 0.7
}
AWS Bedrock
AWS Bedrock donne accès à des modèles hébergés par AWS (Amazon Nova, Anthropic Claude, Mistral, embeddings Titan...). Aucune clé d'API n'est stockée : l'orchestrateur utilise les identifiants AWS de son environnement, et la région est celle du profil AWS sélectionné. Définissez l'une de ces variables d'environnement sur l'orchestrateur :
tock_gen_ai_orchestrator_aws_bedrock_credentials_profile_name: le profil AWS à utiliser,tock_gen_ai_orchestrator_aws_bedrock_credentials_allow_default_profile=true: utilise la chaîne d'identifiants AWS par défaut (rôle IAM, IRSA, variables d'environnement). Sans l'une des deux, les appels échouent.
L'accès aux modèles doit être accordé dans la console Bedrock, pour le compte et la région.
LLM :
{
"provider": "AwsBedrock",
"model": "amazon.nova-lite-v1:0",
"temperature": 0.7,
"guardrail_id": "arn:aws:bedrock:eu-west-3:123456789012:guardrail/my-guardrail",
"guardrail_version": "1",
"guardrail_trace": false
}
Les réglages guardrail_* (facultatifs) appliquent un Bedrock Guardrail
aux appels du LLM : guardrail_id et guardrail_version se renseignent ensemble, et guardrail_trace journalise
le détail des interventions du guardrail.
Embeddings :
{
"provider": "AwsBedrock",
"model": "amazon.titan-embed-text-v2:0"
}
Voir RAG sur AWS pour un déploiement complet avec Bedrock et Amazon OpenSearch.
Bloomz
Bloomz est un modèle d'embeddings exposé par un service HTTP auto-hébergé. Il est pris en charge par l'orchestrateur Gen AI (par exemple avec les outils d'indexation), mais ne peut pas être sélectionné dans Tock Studio.
{
"provider": "Bloomz",
"api_base": "http://bloomz-embedding:8080",
"pooling": "mean"
}
pooling (facultatif) est la méthode de pooling du modèle : mean ou last.
Clés d'API et gestionnaires de secrets
Une clé d'API (api_key) peut être :
- une valeur en clair :
{"type": "Raw", "secret": "..."}, - le nom d'un secret dans AWS Secrets Manager :
{"type": "AwsSecretsManager", "secret_name": "..."}, - le nom d'un secret dans GCP Secret Manager :
{"type": "GcpSecretManager", "secret_name": "..."}.
Par défaut, les clés d'API saisies dans Tock Studio sont stockées en clair dans la base Tock.
Pour les stocker plutôt dans un gestionnaire de secrets, définissez les variables d'environnement suivantes sur le backend de
Tock Studio (tock/bot_admin) et sur le bot :
| Variable d'environnement | Description |
|---|---|
tock_gen_ai_secret_manager_provider |
AWS_SECRETS_MANAGER ou GCP_SECRET_MANAGER |
tock_gen_ai_secret_prefix |
Préfixe des noms de secrets (par défaut : LOCAL/TOCK) |
Les secrets sont alors créés sous la forme <préfixe>/<namespace>/<bot>/<fonctionnalité>, et Tock n'en stocke que le nom.
L'orchestrateur Gen AI les lit dans le même gestionnaire de secrets.