django-lucy-assist 1.1.1__tar.gz → 1.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/PKG-INFO +39 -26
  2. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/README.md +36 -23
  3. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/django_lucy_assist.egg-info/PKG-INFO +39 -26
  4. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/django_lucy_assist.egg-info/SOURCES.txt +2 -1
  5. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/django_lucy_assist.egg-info/requires.txt +1 -1
  6. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/__init__.py +2 -2
  7. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/conf.py +22 -18
  8. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/constantes.py +7 -31
  9. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/context_processors.py +2 -2
  10. django_lucy_assist-1.2.1/lucy_assist/migrations/0004_configurationlucyassist_system_prompt.py +22 -0
  11. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/configuration.py +93 -2
  12. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/__init__.py +3 -2
  13. django_lucy_assist-1.2.1/lucy_assist/services/mistral_service.py +491 -0
  14. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/project_context_service.py +32 -15
  15. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/tool_executor_service.py +10 -10
  16. django_lucy_assist-1.2.1/lucy_assist/services/tools_definition.py +288 -0
  17. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/signals.py +17 -0
  18. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/views/api_views.py +7 -7
  19. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/pyproject.toml +3 -4
  20. django_lucy_assist-1.1.1/lucy_assist/services/claude_service.py +0 -423
  21. django_lucy_assist-1.1.1/lucy_assist/services/tools_definition.py +0 -258
  22. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/MANIFEST.in +0 -0
  23. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/django_lucy_assist.egg-info/dependency_links.txt +0 -0
  24. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/django_lucy_assist.egg-info/top_level.txt +0 -0
  25. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/admin.py +0 -0
  26. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/apps.py +0 -0
  27. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/migrations/0001_initial.py +0 -0
  28. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/migrations/0002_configurationlucyassist_prompt_complementaire.py +0 -0
  29. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/migrations/0003_configurationlucyassist_crud_views_mapping.py +0 -0
  30. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/migrations/__init__.py +0 -0
  31. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/__init__.py +0 -0
  32. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/base.py +0 -0
  33. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/conversation.py +0 -0
  34. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/message.py +0 -0
  35. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/models/project_context_cache.py +0 -0
  36. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/bug_notification_service.py +0 -0
  37. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/context_service.py +0 -0
  38. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/crud_service.py +0 -0
  39. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/gitlab_service.py +0 -0
  40. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/services/view_discovery_service.py +0 -0
  41. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/static/lucy_assist/css/lucy-assist.css +0 -0
  42. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/static/lucy_assist/image/icon-lucy.png +0 -0
  43. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/static/lucy_assist/js/lucy-assist.js +0 -0
  44. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/templates/lucy_assist/chatbot_sidebar.html +0 -0
  45. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/templates/lucy_assist/partials/documentation_content.html +0 -0
  46. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/tests/__init__.py +0 -0
  47. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/tests/factories/__init__.py +0 -0
  48. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/tests/factories/lucy_assist_factories.py +0 -0
  49. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/tests/test_lucy_assist.py +0 -0
  50. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/urls.py +0 -0
  51. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/utils/__init__.py +0 -0
  52. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/utils/log_utils.py +0 -0
  53. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/utils/message_utils.py +0 -0
  54. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/utils/token_utils.py +0 -0
  55. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/lucy_assist/views/__init__.py +0 -0
  56. {django_lucy_assist-1.1.1 → django_lucy_assist-1.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-lucy-assist
3
- Version: 1.1.1
3
+ Version: 1.2.1
4
4
  Summary: Assistant IA intelligent Revolucy pour outil métier
5
5
  Author-email: Revolucy <hello@revolucy.fr>
6
6
  Maintainer-email: Maxence <hello@revolucy.fr>
@@ -9,7 +9,7 @@ Project-URL: Homepage, https://github.com/revolucy/django-lucy-assist
9
9
  Project-URL: Documentation, https://github.com/revolucy/django-lucy-assist#readme
10
10
  Project-URL: Repository, https://github.com/revolucy/django-lucy-assist.git
11
11
  Project-URL: Issues, https://github.com/revolucy/django-lucy-assist/issues
12
- Keywords: django,chatbot,ai,claude,anthropic,assistant,crm
12
+ Keywords: django,chatbot,ai,mistral,assistant,crm
13
13
  Classifier: Development Status :: 4 - Beta
14
14
  Classifier: Environment :: Web Environment
15
15
  Classifier: Framework :: Django
@@ -30,7 +30,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
30
30
  Requires-Python: >=3.9
31
31
  Description-Content-Type: text/markdown
32
32
  Requires-Dist: Django>=4.0
33
- Requires-Dist: anthropic>=0.20.0
33
+ Requires-Dist: mistralai>=1.0.0
34
34
  Requires-Dist: requests>=2.28.0
35
35
  Provides-Extra: dev
36
36
  Requires-Dist: pytest>=7.0.0; extra == "dev"
@@ -44,7 +44,7 @@ Requires-Dist: python-gitlab>=3.15.0; extra == "gitlab"
44
44
 
45
45
  # Django Lucy Assist
46
46
 
47
- Assistant IA intelligent basé sur Claude d'Anthropic, intégrable dans n'importe quelle application Django.
47
+ Assistant IA intelligent base sur Mistral AI, integrable dans n'importe quelle application Django.
48
48
 
49
49
  ## Installation
50
50
 
@@ -54,7 +54,7 @@ pip install django-lucy-assist
54
54
 
55
55
  ## Configuration
56
56
 
57
- ### 1. Ajouter l'application à INSTALLED_APPS
57
+ ### 1. Ajouter l'application a INSTALLED_APPS
58
58
 
59
59
  ```python
60
60
  INSTALLED_APPS = [
@@ -69,11 +69,11 @@ Ajouter dans votre fichier `.env` :
69
69
 
70
70
  ```bash
71
71
  # ======================================== LUCY ASSIST ========================================
72
- CLAUDE_LUCY_ASSIST_API_KEY=sk-ant-...
72
+ MISTRAL_LUCY_API_KEY=votre-cle-api-mistral
73
73
  GITLAB_TOKEN=glpat-...
74
74
  GITLAB_PROJECT_ID=123
75
75
 
76
- # SIREN client pour l'API Lucy CRM (Si non présent via le module de retour)
76
+ # SIREN client pour l'API Lucy CRM (Si non present via le module de retour)
77
77
  SIREN_CLIENT=123456789
78
78
  ```
79
79
 
@@ -84,11 +84,14 @@ import os
84
84
 
85
85
  #############################################################################################################
86
86
  # Lucy Assist
87
- CLAUDE_LUCY_ASSIST_API_KEY = env('CLAUDE_LUCY_ASSIST_API_KEY', default=None)
87
+ MISTRAL_LUCY_API_KEY = env('MISTRAL_LUCY_API_KEY', default=None)
88
88
  GITLAB_URL = env('GITLAB_URL', default=None)
89
89
  GITLAB_TOKEN = env('GITLAB_TOKEN', default=None)
90
90
  GITLAB_PROJECT_ID = env('GITLAB_PROJECT_ID', default=None)
91
- LUCY_ASSIST = {'PROJECT_APPS_PREFIX': 'apps.'}
91
+ LUCY_ASSIST = {
92
+ 'PROJECT_APPS_PREFIX': 'apps.',
93
+ # 'MISTRAL_MODEL': 'mistral-large-latest', # Modele par defaut (le plus performant)
94
+ }
92
95
  ```
93
96
 
94
97
  ### 3. Ajouter les URLs
@@ -127,7 +130,7 @@ TEMPLATES = [
127
130
  {% include 'lucy_assist/chatbot_sidebar.html' %}
128
131
  ```
129
132
 
130
- ### 6. Exécuter les migrations
133
+ ### 6. Executer les migrations
131
134
 
132
135
  ```bash
133
136
  python manage.py migrate lucy_assist
@@ -135,21 +138,21 @@ python manage.py migrate lucy_assist
135
138
 
136
139
  ## Utilisation
137
140
 
138
- Une fois installé et configuré, Lucy Assist apparaîtra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas à droite.
141
+ Une fois installe et configure, Lucy Assist apparaitra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas a droite.
139
142
 
140
- ### Fonctionnalités
143
+ ### Fonctionnalites
141
144
 
142
145
  - **Chat IA contextuel** : Lucy comprend le contexte de la page actuelle
143
- - **Actions CRUD** : Lucy peut créer, modifier, rechercher et supprimer des objets
144
- - **Analyse de bugs** : Connexion à GitLab pour analyser les problèmes signalés
146
+ - **Actions CRUD** : Lucy peut creer, modifier, rechercher et supprimer des objets
147
+ - **Analyse de bugs** : Connexion a GitLab pour analyser les problemes signales
145
148
  - **Historique des conversations** : Sauvegarde automatique des conversations
146
- - **Gestion des tokens** : Suivi de la consommation des tokens Claude
149
+ - **Gestion des tokens** : Suivi de la consommation des tokens Mistral
147
150
 
148
- ## Configuration avancée
151
+ ## Configuration avancee
149
152
 
150
- ### Modèle de base personnalisé
153
+ ### Modele de base personnalise
151
154
 
152
- Si vous utilisez un modèle de base personnalisé avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
155
+ Si vous utilisez un modele de base personnalise avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
153
156
 
154
157
  ```python
155
158
  LUCY_ASSIST = {
@@ -157,14 +160,24 @@ LUCY_ASSIST = {
157
160
  }
158
161
  ```
159
162
 
160
- ### Personnalisation des questions fréquentes
163
+ ### Modele Mistral
164
+
165
+ Par defaut, Lucy Assist utilise `mistral-large-latest` (le modele le plus performant). Vous pouvez changer le modele :
166
+
167
+ ```python
168
+ LUCY_ASSIST = {
169
+ 'MISTRAL_MODEL': 'mistral-large-latest', # Ou 'mistral-medium', 'mistral-small', etc.
170
+ }
171
+ ```
172
+
173
+ ### Personnalisation des questions frequentes
161
174
 
162
175
  ```python
163
176
  LUCY_ASSIST = {
164
177
  'QUESTIONS_FREQUENTES_DEFAULT': [
165
- "Comment créer un nouveau membre ?",
178
+ "Comment creer un nouveau membre ?",
166
179
  "Comment effectuer un paiement ?",
167
- "Comment exporter des données ?",
180
+ "Comment exporter des donnees ?",
168
181
  ],
169
182
  }
170
183
  ```
@@ -174,19 +187,19 @@ LUCY_ASSIST = {
174
187
  Lucy Assist expose plusieurs endpoints API :
175
188
 
176
189
  - `GET /lucy-assist/api/conversations/` - Liste des conversations
177
- - `POST /lucy-assist/api/conversations/` - Créer une conversation
178
- - `GET /lucy-assist/api/conversations/<id>/` - Détail d'une conversation
190
+ - `POST /lucy-assist/api/conversations/` - Creer une conversation
191
+ - `GET /lucy-assist/api/conversations/<id>/` - Detail d'une conversation
179
192
  - `POST /lucy-assist/api/conversations/<id>/messages/` - Ajouter un message
180
- - `POST /lucy-assist/api/convers2ations/<id>/completion/` - Générer une réponse (streaming)
193
+ - `POST /lucy-assist/api/conversations/<id>/completion/` - Generer une reponse (streaming)
181
194
  - `GET /lucy-assist/api/tokens/status/` - Statut des tokens
182
195
 
183
196
  ## Licence
184
197
 
185
198
  [Revolucy](https://www.revolucy.fr)
186
199
 
187
- ## Déploiement Pypi
200
+ ## Deploiement Pypi
188
201
 
189
202
  1. `docker-compose exec django pip install build twine`
190
203
  2. `python -m build`
191
204
  3. `python -m twine upload dist/*`
192
- 4. Indiquer le token présent dans 1Password
205
+ 4. Indiquer le token present dans 1Password
@@ -1,6 +1,6 @@
1
1
  # Django Lucy Assist
2
2
 
3
- Assistant IA intelligent basé sur Claude d'Anthropic, intégrable dans n'importe quelle application Django.
3
+ Assistant IA intelligent base sur Mistral AI, integrable dans n'importe quelle application Django.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,7 +10,7 @@ pip install django-lucy-assist
10
10
 
11
11
  ## Configuration
12
12
 
13
- ### 1. Ajouter l'application à INSTALLED_APPS
13
+ ### 1. Ajouter l'application a INSTALLED_APPS
14
14
 
15
15
  ```python
16
16
  INSTALLED_APPS = [
@@ -25,11 +25,11 @@ Ajouter dans votre fichier `.env` :
25
25
 
26
26
  ```bash
27
27
  # ======================================== LUCY ASSIST ========================================
28
- CLAUDE_LUCY_ASSIST_API_KEY=sk-ant-...
28
+ MISTRAL_LUCY_API_KEY=votre-cle-api-mistral
29
29
  GITLAB_TOKEN=glpat-...
30
30
  GITLAB_PROJECT_ID=123
31
31
 
32
- # SIREN client pour l'API Lucy CRM (Si non présent via le module de retour)
32
+ # SIREN client pour l'API Lucy CRM (Si non present via le module de retour)
33
33
  SIREN_CLIENT=123456789
34
34
  ```
35
35
 
@@ -40,11 +40,14 @@ import os
40
40
 
41
41
  #############################################################################################################
42
42
  # Lucy Assist
43
- CLAUDE_LUCY_ASSIST_API_KEY = env('CLAUDE_LUCY_ASSIST_API_KEY', default=None)
43
+ MISTRAL_LUCY_API_KEY = env('MISTRAL_LUCY_API_KEY', default=None)
44
44
  GITLAB_URL = env('GITLAB_URL', default=None)
45
45
  GITLAB_TOKEN = env('GITLAB_TOKEN', default=None)
46
46
  GITLAB_PROJECT_ID = env('GITLAB_PROJECT_ID', default=None)
47
- LUCY_ASSIST = {'PROJECT_APPS_PREFIX': 'apps.'}
47
+ LUCY_ASSIST = {
48
+ 'PROJECT_APPS_PREFIX': 'apps.',
49
+ # 'MISTRAL_MODEL': 'mistral-large-latest', # Modele par defaut (le plus performant)
50
+ }
48
51
  ```
49
52
 
50
53
  ### 3. Ajouter les URLs
@@ -83,7 +86,7 @@ TEMPLATES = [
83
86
  {% include 'lucy_assist/chatbot_sidebar.html' %}
84
87
  ```
85
88
 
86
- ### 6. Exécuter les migrations
89
+ ### 6. Executer les migrations
87
90
 
88
91
  ```bash
89
92
  python manage.py migrate lucy_assist
@@ -91,21 +94,21 @@ python manage.py migrate lucy_assist
91
94
 
92
95
  ## Utilisation
93
96
 
94
- Une fois installé et configuré, Lucy Assist apparaîtra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas à droite.
97
+ Une fois installe et configure, Lucy Assist apparaitra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas a droite.
95
98
 
96
- ### Fonctionnalités
99
+ ### Fonctionnalites
97
100
 
98
101
  - **Chat IA contextuel** : Lucy comprend le contexte de la page actuelle
99
- - **Actions CRUD** : Lucy peut créer, modifier, rechercher et supprimer des objets
100
- - **Analyse de bugs** : Connexion à GitLab pour analyser les problèmes signalés
102
+ - **Actions CRUD** : Lucy peut creer, modifier, rechercher et supprimer des objets
103
+ - **Analyse de bugs** : Connexion a GitLab pour analyser les problemes signales
101
104
  - **Historique des conversations** : Sauvegarde automatique des conversations
102
- - **Gestion des tokens** : Suivi de la consommation des tokens Claude
105
+ - **Gestion des tokens** : Suivi de la consommation des tokens Mistral
103
106
 
104
- ## Configuration avancée
107
+ ## Configuration avancee
105
108
 
106
- ### Modèle de base personnalisé
109
+ ### Modele de base personnalise
107
110
 
108
- Si vous utilisez un modèle de base personnalisé avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
111
+ Si vous utilisez un modele de base personnalise avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
109
112
 
110
113
  ```python
111
114
  LUCY_ASSIST = {
@@ -113,14 +116,24 @@ LUCY_ASSIST = {
113
116
  }
114
117
  ```
115
118
 
116
- ### Personnalisation des questions fréquentes
119
+ ### Modele Mistral
120
+
121
+ Par defaut, Lucy Assist utilise `mistral-large-latest` (le modele le plus performant). Vous pouvez changer le modele :
122
+
123
+ ```python
124
+ LUCY_ASSIST = {
125
+ 'MISTRAL_MODEL': 'mistral-large-latest', # Ou 'mistral-medium', 'mistral-small', etc.
126
+ }
127
+ ```
128
+
129
+ ### Personnalisation des questions frequentes
117
130
 
118
131
  ```python
119
132
  LUCY_ASSIST = {
120
133
  'QUESTIONS_FREQUENTES_DEFAULT': [
121
- "Comment créer un nouveau membre ?",
134
+ "Comment creer un nouveau membre ?",
122
135
  "Comment effectuer un paiement ?",
123
- "Comment exporter des données ?",
136
+ "Comment exporter des donnees ?",
124
137
  ],
125
138
  }
126
139
  ```
@@ -130,19 +143,19 @@ LUCY_ASSIST = {
130
143
  Lucy Assist expose plusieurs endpoints API :
131
144
 
132
145
  - `GET /lucy-assist/api/conversations/` - Liste des conversations
133
- - `POST /lucy-assist/api/conversations/` - Créer une conversation
134
- - `GET /lucy-assist/api/conversations/<id>/` - Détail d'une conversation
146
+ - `POST /lucy-assist/api/conversations/` - Creer une conversation
147
+ - `GET /lucy-assist/api/conversations/<id>/` - Detail d'une conversation
135
148
  - `POST /lucy-assist/api/conversations/<id>/messages/` - Ajouter un message
136
- - `POST /lucy-assist/api/convers2ations/<id>/completion/` - Générer une réponse (streaming)
149
+ - `POST /lucy-assist/api/conversations/<id>/completion/` - Generer une reponse (streaming)
137
150
  - `GET /lucy-assist/api/tokens/status/` - Statut des tokens
138
151
 
139
152
  ## Licence
140
153
 
141
154
  [Revolucy](https://www.revolucy.fr)
142
155
 
143
- ## Déploiement Pypi
156
+ ## Deploiement Pypi
144
157
 
145
158
  1. `docker-compose exec django pip install build twine`
146
159
  2. `python -m build`
147
160
  3. `python -m twine upload dist/*`
148
- 4. Indiquer le token présent dans 1Password
161
+ 4. Indiquer le token present dans 1Password
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-lucy-assist
3
- Version: 1.1.1
3
+ Version: 1.2.1
4
4
  Summary: Assistant IA intelligent Revolucy pour outil métier
5
5
  Author-email: Revolucy <hello@revolucy.fr>
6
6
  Maintainer-email: Maxence <hello@revolucy.fr>
@@ -9,7 +9,7 @@ Project-URL: Homepage, https://github.com/revolucy/django-lucy-assist
9
9
  Project-URL: Documentation, https://github.com/revolucy/django-lucy-assist#readme
10
10
  Project-URL: Repository, https://github.com/revolucy/django-lucy-assist.git
11
11
  Project-URL: Issues, https://github.com/revolucy/django-lucy-assist/issues
12
- Keywords: django,chatbot,ai,claude,anthropic,assistant,crm
12
+ Keywords: django,chatbot,ai,mistral,assistant,crm
13
13
  Classifier: Development Status :: 4 - Beta
14
14
  Classifier: Environment :: Web Environment
15
15
  Classifier: Framework :: Django
@@ -30,7 +30,7 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
30
30
  Requires-Python: >=3.9
31
31
  Description-Content-Type: text/markdown
32
32
  Requires-Dist: Django>=4.0
33
- Requires-Dist: anthropic>=0.20.0
33
+ Requires-Dist: mistralai>=1.0.0
34
34
  Requires-Dist: requests>=2.28.0
35
35
  Provides-Extra: dev
36
36
  Requires-Dist: pytest>=7.0.0; extra == "dev"
@@ -44,7 +44,7 @@ Requires-Dist: python-gitlab>=3.15.0; extra == "gitlab"
44
44
 
45
45
  # Django Lucy Assist
46
46
 
47
- Assistant IA intelligent basé sur Claude d'Anthropic, intégrable dans n'importe quelle application Django.
47
+ Assistant IA intelligent base sur Mistral AI, integrable dans n'importe quelle application Django.
48
48
 
49
49
  ## Installation
50
50
 
@@ -54,7 +54,7 @@ pip install django-lucy-assist
54
54
 
55
55
  ## Configuration
56
56
 
57
- ### 1. Ajouter l'application à INSTALLED_APPS
57
+ ### 1. Ajouter l'application a INSTALLED_APPS
58
58
 
59
59
  ```python
60
60
  INSTALLED_APPS = [
@@ -69,11 +69,11 @@ Ajouter dans votre fichier `.env` :
69
69
 
70
70
  ```bash
71
71
  # ======================================== LUCY ASSIST ========================================
72
- CLAUDE_LUCY_ASSIST_API_KEY=sk-ant-...
72
+ MISTRAL_LUCY_API_KEY=votre-cle-api-mistral
73
73
  GITLAB_TOKEN=glpat-...
74
74
  GITLAB_PROJECT_ID=123
75
75
 
76
- # SIREN client pour l'API Lucy CRM (Si non présent via le module de retour)
76
+ # SIREN client pour l'API Lucy CRM (Si non present via le module de retour)
77
77
  SIREN_CLIENT=123456789
78
78
  ```
79
79
 
@@ -84,11 +84,14 @@ import os
84
84
 
85
85
  #############################################################################################################
86
86
  # Lucy Assist
87
- CLAUDE_LUCY_ASSIST_API_KEY = env('CLAUDE_LUCY_ASSIST_API_KEY', default=None)
87
+ MISTRAL_LUCY_API_KEY = env('MISTRAL_LUCY_API_KEY', default=None)
88
88
  GITLAB_URL = env('GITLAB_URL', default=None)
89
89
  GITLAB_TOKEN = env('GITLAB_TOKEN', default=None)
90
90
  GITLAB_PROJECT_ID = env('GITLAB_PROJECT_ID', default=None)
91
- LUCY_ASSIST = {'PROJECT_APPS_PREFIX': 'apps.'}
91
+ LUCY_ASSIST = {
92
+ 'PROJECT_APPS_PREFIX': 'apps.',
93
+ # 'MISTRAL_MODEL': 'mistral-large-latest', # Modele par defaut (le plus performant)
94
+ }
92
95
  ```
93
96
 
94
97
  ### 3. Ajouter les URLs
@@ -127,7 +130,7 @@ TEMPLATES = [
127
130
  {% include 'lucy_assist/chatbot_sidebar.html' %}
128
131
  ```
129
132
 
130
- ### 6. Exécuter les migrations
133
+ ### 6. Executer les migrations
131
134
 
132
135
  ```bash
133
136
  python manage.py migrate lucy_assist
@@ -135,21 +138,21 @@ python manage.py migrate lucy_assist
135
138
 
136
139
  ## Utilisation
137
140
 
138
- Une fois installé et configuré, Lucy Assist apparaîtra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas à droite.
141
+ Une fois installe et configure, Lucy Assist apparaitra automatiquement sur toutes les pages de votre application avec un bouton flottant en bas a droite.
139
142
 
140
- ### Fonctionnalités
143
+ ### Fonctionnalites
141
144
 
142
145
  - **Chat IA contextuel** : Lucy comprend le contexte de la page actuelle
143
- - **Actions CRUD** : Lucy peut créer, modifier, rechercher et supprimer des objets
144
- - **Analyse de bugs** : Connexion à GitLab pour analyser les problèmes signalés
146
+ - **Actions CRUD** : Lucy peut creer, modifier, rechercher et supprimer des objets
147
+ - **Analyse de bugs** : Connexion a GitLab pour analyser les problemes signales
145
148
  - **Historique des conversations** : Sauvegarde automatique des conversations
146
- - **Gestion des tokens** : Suivi de la consommation des tokens Claude
149
+ - **Gestion des tokens** : Suivi de la consommation des tokens Mistral
147
150
 
148
- ## Configuration avancée
151
+ ## Configuration avancee
149
152
 
150
- ### Modèle de base personnalisé
153
+ ### Modele de base personnalise
151
154
 
152
- Si vous utilisez un modèle de base personnalisé avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
155
+ Si vous utilisez un modele de base personnalise avec des champs d'audit (created_date, updated_date, etc.), vous pouvez le configurer :
153
156
 
154
157
  ```python
155
158
  LUCY_ASSIST = {
@@ -157,14 +160,24 @@ LUCY_ASSIST = {
157
160
  }
158
161
  ```
159
162
 
160
- ### Personnalisation des questions fréquentes
163
+ ### Modele Mistral
164
+
165
+ Par defaut, Lucy Assist utilise `mistral-large-latest` (le modele le plus performant). Vous pouvez changer le modele :
166
+
167
+ ```python
168
+ LUCY_ASSIST = {
169
+ 'MISTRAL_MODEL': 'mistral-large-latest', # Ou 'mistral-medium', 'mistral-small', etc.
170
+ }
171
+ ```
172
+
173
+ ### Personnalisation des questions frequentes
161
174
 
162
175
  ```python
163
176
  LUCY_ASSIST = {
164
177
  'QUESTIONS_FREQUENTES_DEFAULT': [
165
- "Comment créer un nouveau membre ?",
178
+ "Comment creer un nouveau membre ?",
166
179
  "Comment effectuer un paiement ?",
167
- "Comment exporter des données ?",
180
+ "Comment exporter des donnees ?",
168
181
  ],
169
182
  }
170
183
  ```
@@ -174,19 +187,19 @@ LUCY_ASSIST = {
174
187
  Lucy Assist expose plusieurs endpoints API :
175
188
 
176
189
  - `GET /lucy-assist/api/conversations/` - Liste des conversations
177
- - `POST /lucy-assist/api/conversations/` - Créer une conversation
178
- - `GET /lucy-assist/api/conversations/<id>/` - Détail d'une conversation
190
+ - `POST /lucy-assist/api/conversations/` - Creer une conversation
191
+ - `GET /lucy-assist/api/conversations/<id>/` - Detail d'une conversation
179
192
  - `POST /lucy-assist/api/conversations/<id>/messages/` - Ajouter un message
180
- - `POST /lucy-assist/api/convers2ations/<id>/completion/` - Générer une réponse (streaming)
193
+ - `POST /lucy-assist/api/conversations/<id>/completion/` - Generer une reponse (streaming)
181
194
  - `GET /lucy-assist/api/tokens/status/` - Statut des tokens
182
195
 
183
196
  ## Licence
184
197
 
185
198
  [Revolucy](https://www.revolucy.fr)
186
199
 
187
- ## Déploiement Pypi
200
+ ## Deploiement Pypi
188
201
 
189
202
  1. `docker-compose exec django pip install build twine`
190
203
  2. `python -m build`
191
204
  3. `python -m twine upload dist/*`
192
- 4. Indiquer le token présent dans 1Password
205
+ 4. Indiquer le token present dans 1Password
@@ -17,6 +17,7 @@ lucy_assist/urls.py
17
17
  lucy_assist/migrations/0001_initial.py
18
18
  lucy_assist/migrations/0002_configurationlucyassist_prompt_complementaire.py
19
19
  lucy_assist/migrations/0003_configurationlucyassist_crud_views_mapping.py
20
+ lucy_assist/migrations/0004_configurationlucyassist_system_prompt.py
20
21
  lucy_assist/migrations/__init__.py
21
22
  lucy_assist/models/__init__.py
22
23
  lucy_assist/models/base.py
@@ -26,10 +27,10 @@ lucy_assist/models/message.py
26
27
  lucy_assist/models/project_context_cache.py
27
28
  lucy_assist/services/__init__.py
28
29
  lucy_assist/services/bug_notification_service.py
29
- lucy_assist/services/claude_service.py
30
30
  lucy_assist/services/context_service.py
31
31
  lucy_assist/services/crud_service.py
32
32
  lucy_assist/services/gitlab_service.py
33
+ lucy_assist/services/mistral_service.py
33
34
  lucy_assist/services/project_context_service.py
34
35
  lucy_assist/services/tool_executor_service.py
35
36
  lucy_assist/services/tools_definition.py
@@ -1,5 +1,5 @@
1
1
  Django>=4.0
2
- anthropic>=0.20.0
2
+ mistralai>=1.0.0
3
3
  requests>=2.28.0
4
4
 
5
5
  [dev]
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Lucy Assist - Assistant IA intelligent pour applications Django.
3
3
 
4
- Un chatbot IA basé sur Claude d'Anthropic, intégrable dans n'importe quelle
4
+ Un chatbot IA base sur Mistral AI, integrable dans n'importe quelle
5
5
  application Django pour fournir une assistance contextuelle aux utilisateurs.
6
6
  """
7
7
 
8
- __version__ = '1.1.1'
8
+ __version__ = '1.2.1'
9
9
  __author__ = 'Revolucy'
10
10
 
11
11
  default_app_config = 'lucy_assist.apps.LucyAssistConfig'
@@ -11,17 +11,21 @@ class LucyAssistSettings:
11
11
  Lit les settings depuis LUCY_ASSIST dans settings.py.
12
12
  """
13
13
 
14
- # Valeurs par défaut
14
+ # Valeurs par defaut
15
15
  DEFAULTS = {
16
- # Modèle de base pour les modèles Lucy Assist (None = utilise le modèle par défaut)
17
- # Peut être une string "mon_app.models.MonModele" ou une classe directement
16
+ # Modele de base pour les modeles Lucy Assist (None = utilise le modele par defaut)
17
+ # Peut etre une string "mon_app.models.MonModele" ou une classe directement
18
18
  'BASE_MODEL': None,
19
19
 
20
- # Clé API Claude (peut aussi être définie via CLAUDE_LUCY_ASSIST_API_KEY)
21
- 'CLAUDE_LUCY_ASSIST_API_KEY': None,
20
+ # Nom de l'application (affiche dans le prompt systeme)
21
+ # Ex: 'Mon Application'
22
+ 'APPLICATION_NAME': 'cette application',
22
23
 
23
- # Modèle Claude à utiliser
24
- 'CLAUDE_MODEL': 'claude-sonnet-4-20250514',
24
+ # Cle API Mistral (peut aussi etre definie via MISTRAL_LUCY_API_KEY)
25
+ 'MISTRAL_LUCY_API_KEY': None,
26
+
27
+ # Modele Mistral a utiliser (mistral-large-latest = le plus performant)
28
+ 'MISTRAL_MODEL': 'mistral-large-latest',
25
29
 
26
30
  # Configuration GitLab pour l'analyse de bugs
27
31
  'GITLAB_URL': None,
@@ -34,8 +38,8 @@ class LucyAssistSettings:
34
38
  # Email de fallback pour les feedbacks
35
39
  'FEEDBACK_EMAIL': 'support@revolucy.fr',
36
40
 
37
- # Préfixe des apps du projet pour le mapping modèle -> app
38
- # Ex: 'apps.' pour filtrer les apps commençant par 'apps.'
41
+ # Prefixe des apps du projet pour le mapping modele -> app
42
+ # Ex: 'apps.' pour filtrer les apps commencant par 'apps.'
39
43
  'PROJECT_APPS_PREFIX': None,
40
44
 
41
45
  # URL de base de l'API Lucy CRM
@@ -47,20 +51,20 @@ class LucyAssistSettings:
47
51
  # Nombre moyen de tokens par conversation
48
52
  'TOKENS_MOYENS_PAR_CONVERSATION': 2000,
49
53
 
50
- # Questions fréquentes par défaut (génériques)
54
+ # Questions frequentes par defaut (generiques)
51
55
  'QUESTIONS_FREQUENTES_DEFAULT': [
52
- "Comment créer un nouveau client ?",
56
+ "Comment creer un nouveau client ?",
53
57
  "Comment effectuer une recherche ?",
54
- "Comment exporter des données ?",
58
+ "Comment exporter des donnees ?",
55
59
  "Comment modifier mon profil ?",
56
- " trouver la liste des réservations ?",
60
+ "Ou trouver la liste des reservations ?",
57
61
  ],
58
62
 
59
63
  # Chemin vers le module contenant set_current_user pour le ThreadLocal
60
64
  # Ex: 'alyse.middleware.middleware' pour le projet Alyse
61
65
  'THREAD_LOCAL_MODULE': None,
62
66
 
63
- # Attributs de l'utilisateur à copier vers la requête
67
+ # Attributs de l'utilisateur a copier vers la requete
64
68
  # Ex: ['franchise', 'tenant', 'organization']
65
69
  'REQUEST_USER_ATTRS': [],
66
70
  }
@@ -70,15 +74,15 @@ class LucyAssistSettings:
70
74
 
71
75
  def __getattr__(self, name):
72
76
  if name in self.DEFAULTS:
73
- # Vérifier d'abord dans LUCY_ASSIST settings
77
+ # Verifier d'abord dans LUCY_ASSIST settings
74
78
  if name in self._settings:
75
79
  return self._settings[name]
76
80
 
77
- # Cas spéciaux pour les settings qui peuvent être définis au niveau global
78
- if name == 'CLAUDE_LUCY_ASSIST_API_KEY':
81
+ # Cas speciaux pour les settings qui peuvent etre definis au niveau global
82
+ if name == 'MISTRAL_LUCY_API_KEY':
79
83
  # Chercher dans plusieurs variables possibles
80
84
  return (
81
- getattr(settings, 'CLAUDE_LUCY_ASSIST_API_KEY', None) or
85
+ getattr(settings, 'MISTRAL_LUCY_API_KEY', None) or
82
86
  self.DEFAULTS[name]
83
87
  )
84
88