File size: 5,373 Bytes
4e6d9da
 
 
 
 
 
 
 
 
 
 
59ba192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e3d4358
59ba192
e3d4358
59ba192
e3d4358
59ba192
e3d4358
59ba192
e3d4358
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59ba192
 
 
 
 
 
e3d4358
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59ba192
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
title: Common
emoji: 🏢
colorFrom: purple
colorTo: indigo
sdk: streamlit
sdk_version: 1.39.0
app_file: app.py
pinned: false
---

<!-- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference -->

# Application Template - README

## Introduction

Cette application sert de base/template pour en déployer d'autres sur le même modèle via Huggingface. Elle est facilement duplicable en dupliquant l'espace. Elle est décomposée en plusieurs sections pour offrir une gestion complète des documents et des dialogues avec une Intelligence Artificielle (IA).

### Structure de l'application

L'application est structurée en trois parties principales :

- **Documents**
  - *Communs*
  - *Vos Documents*
- **Configurations**
  - *Prompt système*
  - *Paramètres*
- **Dialogue**
  - *Chatbot*

### Fonctionnement des sections

#### 1. Documents

- **Documents Communs** : 
  Cette section permet de déposer des documents accessibles à tous les utilisateurs de l'application. Ces documents sont vectorisés et stockés dans une base de données vectorielle (voir section dédiée). Ils seront explorés lors des interactions avec l'IA.

- **Vos Documents** : 
  Chaque utilisateur peut uploader ses propres documents, qui seront pris en compte pendant sa session. Ces documents sont temporaires et ne sont accessibles que durant la session active de l'utilisateur.

#### 2. Configurations

- **Prompt système** :
  Cette section permet de configurer le *prompt système* utilisé lors des conversations avec l'IA. Ce prompt influence le comportement de l'IA pendant le dialogue.

- **Paramètres** :
  Ici, vous pouvez ajuster les paramètres dynamiques de l'application, tels que les préférences utilisateurs ou les options spécifiques à votre usage.

#### 3. Dialogue

- **Chatbot** :
  Une interface de discussion avec l'IA, où il est possible de choisir le modèle d'IA avec lequel interagir. Vous pouvez aussi commencer la conversation à partir d'un *prompt* pré-défini.

## Base de Données Vectorielle

La base de données vectorielle permet de stocker de manière permanente les différents vecteurs de documents, afin de faciliter leur recherche et leur utilisation dans les conversations avec l'IA.

### Pinecone

L'application utilise **Pinecone**, une solution cloud pour la gestion de bases de données vectorielles. Pinecone simplifie la gestion des vecteurs et permet une intégration efficace avec l'application.

Pour que l'intégration fonctionne correctement, vous devez renseigner les variables d'environnement suivantes :

- **PINECONE_API_KEY** : Clé d'API fournie par Pinecone pour l'accès à votre compte.
- **PINECONE_INDEX_NAME** : Le nom de l'index Pinecone dans lequel les vecteurs seront stockés.
- **PINECONE_NAMESPACE** : Un namespace unique propre à chaque application, utilisé pour organiser les vecteurs.

Ces informations sont disponibles directement dans votre compte Pinecone, et doivent être correctement configurées pour permettre le fonctionnement de la base de données vectorielle.


## Configuration de l'application

Vous pouvez configurer votre application plus finement en la personalisant en fonction de vos besoins. Ces configurations se font dans le fichier *config.yaml* accessible dans la partie *Files* de votre espace Huggingface. La modification se fait ensuite via le bouton *'edit'*. 
Une fois, vos modifications effectuées, cliquez sur *'Commit changes to main'* pour les enregistrer et relancer automatiquement l'application.

#### Paramètres Dynamiques

Les paramètres peuvent être ajustés dans la section **variables**, en mettant la liste des variables souhaitées.
Pour chacune d'entre elles, un *label*, une *key* et optionnelement une valeur par défaut *value* sont nécessaires.
Pour être prise en compte, ces variables doivent être implémenté dans le prompt template via leur *'key'* sous la forme **{ma_variable}**

#### Prompt template

Vous pouvez directement spécifier votre prompt template dans la section **prompt_template** du fichier de configuration

#### Prompts par Défaut

Des *prompts* par défaut peuvent être définis pour démarrer les conversations avec l'IA. Ces *prompts* sont personnalisables dans la section **prompts**.
La première tabulation correspond à une catégorie, permettant de faire des regroupements.
Chaque '-' représente ensuite un prompt qui sera proposé.

## Déploiement

Pour déployer cette application sur Huggingface :

1. Dupliquez l'espace Huggingface existant.
2. Renseignez les variables d'environnements. Il vous sera demandé de rentrer toutes les variables d'environnements. Vous les variables qui seront propres à votre application : 
 - **APP_NAME** : Nom de votre application
 - **PINECONE_NAMESPACE** : Espace de stockage permanent de votre application
3. Ajustez votre configuration dans le fichier *config.yaml* (voir section **Configuration de l'application**)


## Variables d'environnements
| Variable | Description 
|----------|----------
**APP_NAME**|Nom de l'application
**ANTHROPIC_API_KEY**| Clé API Anthropic
**MISTRAL_API_KEY**|Clé API Mistral
**OPENAI_API_KEY**|Clé API OpenAI
**LLAMA_API_KEY**|Clé Llama API
**PINECONE_API_KEY**|Clé API Pinecone
**PINECONE_INDEX_NAME**|Index/BDD Pinecone
**PINECONE_NAMESPACE**|Espace de stockage propre à l'application