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 basé sur ce projet open source.
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://cloud-api.comwork.io/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://cloud-api.comwork.io/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://cloud-api.comwork.io
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
Interface de driver
Si vous forkez le projet de l'API cwai, vous pourrez implémenter vos propres drivers pour vos propres modèles et générer vos réponses en implémentant cette abstract :
class ModelDriver(ABC):
@abstractmethod
def load_model(self):
pass
@abstractmethod
def generate_response(self, prompt: Prompt):
pass
Ensuite ajoute vos modèles en utilisant la variable d'environnement ENABLED_MODELS
.
Dans le future, nous envisageons de proposer une interface graphique pour facilement déployer vos propres drivers comme des fonctions serverless. En attendant vous pouvez demander l'ajout de drivers via le système de support.