Comwork AI
Traductions
Ce tutoriel est également disponible dans les langues suivantes :
Objectif
Cette fonctionalité a pour but d'exposer des modèle d'IA1 comme des NLP2 ou LLM3 afin d'être exposé sous forme d'API.
Activer cette API
Dans la version SaaS, vous pouvez demander d'accéder à cette API en utilisant le système de support.
Si vous êtes administrateur de cette instance, vous pouvez autoriser les utilisateurs comme ceci :
Chat
Une fois que vous êtes activé, vous pouvez utiliser l'API au travers de cette interface de chat :
Utiliser l'API
Bien entendu, l'intérêt principal reste de pouvoir interagir avec ces modèles en utilisant un endpoint http très simple :
Voici comment lister tous les modèles disponibles :
curl -X 'GET' 'https://api.cwcloud.tech/v1/ai/models' -H 'accept: application/json' -H 'X-Auth-Token: XXXXXX'
Résultat :
{
"models": [
"gpt2",
"nlptownsentiment",
"mock"
],
"status": "ok"
}
Vous pouvez ensuite envoyer des prompts sur les modèles disponibles comme ceci :
curl -X 'POST' \
'https://api.cwcloud.tech/v1/ai/prompt' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-Auth-Token: XXXXXX' \
-d '{
"model": "nlptownsentiment",
"message": "This is bad !",
"settings": {}
}'
La réponse devrait ressembler à :
{
"response": [
"The predicted emotion is: Anger"
],
"score": 1,
"status": "ok"
}
Notes :
- vous devez remplacer la valeur
XXXXXX
avec votre propre token généré via cette procédure. - vous pouvez remplacer l'URL
https://api.cwcloud.tech
avec celle que vous utilisez dans la variable d'environnementCWAI_API_URL
. Pour la version tunisienne par exemple, la valeur seraithttps://api.cwcloud.tn
.
Utiliser la CLI
Vous pouvez utiliser la CLI cwc
qui propose une commande ai
:
cwc ai
This command lets you call the CWAI endpoints
Usage:
cwc ai
cwc ai [command]
Available Commands:
models Get the available models
prompt Send a prompt
Flags:
-h, --help help for ai
Use "cwc ai [command] --help" for more information about a command.
Lister les modèles disponibles
cwc ai models
Models
[gpt2 nlptownsentiment nltksentiment textblobsentiment mock]
Envoyer un prompt à un des modèles
cwc ai prompt
Error: required flag(s) "message", "model" not set
Usage:
cwc ai prompt [flags]
Flags:
-h, --help help for prompt
-m, --message string The message input
-t, --model string The chosen model
cwc ai prompt --model nltksentiment --message "This is bad"
Status Response Score
ok [The predicted sentiment is: negative, score: -0.5423] -0.5423
Charger un modèle en asynchrone
cwc ai load [model]
Error: accepts 1 arg(s), received 0
Usage:
cwc ai load [model] [flags]
Flags:
-h, --help help for load
exit status 1
Interface de driver
Cette section concerne les contributeurs qui souhaitent ajouter des nouveaux modèles.
Vous pourrez implémenter vos propres drivers pour vos propres modèles et générer vos réponses en implémentant cette abstract1 :
class ModelAdapter(ABC):
@abstractmethod
def load_model(self):
pass
@abstractmethod
def generate_response(self, prompt: Prompt):
pass
Ensuite il faut enrichir cette liste2 :
_default_models = [
'gpt2',
'nlptownsentiment',
'nltksentiment',
'textblobsentiment',
'robertaemotion',
'log'
]