Découvrez notre solution SaaS révolutionnaire pour les soins de santé. Nous analysons automatiquement les messages vocaux et écrits des patients, transcrivons les enregistrements audio et générons des fiches patients détaillées et dynamiques. Chaque fiche intègre un suivi continu basé sur l'analyse des appels et des SMS. En cas de besoin, notre système offre des réponses automatiques avec des conseils simples et essentiels pour les patients.
-
Intégration ChatGPT : Intégration de l'API OpenAI dans le but de fournir des conseils de premiers secours et des informations médicales de base. Cela nous sert à alimenter la base de données en fonction des messages des patients et des conversations audio, et également à créer des résumés sur tout le parcours d'un patient
- Auteur : Lucas Ramis 5IW2 / RamisL
-
Chatbot IA : Intégration d'un chatbot utilisant l'API OpenAI pour fournir des conseils de premiers secours et des informations médicales de base avec reconnaissance vocale.
- Auteur : Antoine Chabernaud 5IW2 / senex127
-
Gestion des fiches patient : Création, modification et récupération des fiches patient pré-remplis via l'IA avec gestion des différents types (Historiques médical, traitements, maladies possibles, etc.) ainsi que la récupération des patients enregistrés basé sur les données du patient et de l'IA.
-
Messages Préenregistrés : Ajout d'un menu déroulant de messages préenregistrés pour aider les utilisateurs à poser rapidement des questions courantes.
- Auteur : Antoine Chabernaud 5IW2 / senex127
-
Intégration Speech to Text : Mise en place de la configuration du service Speech to Text de Google Cloud et enregistrement des conversations utilisateurs dans notre base de données.
- Auteur : back: Lucas Ramis 5IW2 / RamisL
-
Intégration d'un player audio : Mise en place d'un player audio pour écouter les messages vocaux des patients, avec intégration de la transcription automatique.
- Auteur : Laila Charaoui 5IW2 / lailacha
-
Upload de fichiers audio : Mise en place de l'upload de fichiers audio pour les patients (pour la simuler des appels vocaux).
- Auteur : Laila Charaoui 5IW2 / lailacha
-
Nom : Antoine Chabernaud 5IW2
- Pseudo : senex127
-
Nom : Laila Charaoui 5IW2
- Pseudo : lailacha
-
Nom : Vivian Ruhlmann 5IW2
- Pseudo : Loviflo
-
Nom : Lucas Ramis 5IW2
- Pseudo : RamisL
- Node.js (version 14 ou supérieure)
- Docker
- Docker Compose
-
Clonez le repository :
git clone https://github.com/js-suck/hackhaton-callmedica cd hackhaton-callmedica -
Installez les dépendances pour le frontend et le backend :
-
Frontend (React) :
cd front yarn -
Backend (Node.js) :
cd ../back yarn
-
-
Backend : Créez un fichier
.envdans le dossierbackavec le contenu suivant :OPENAI_API_KEY= APP_URL="http://localhost:3000" API_PORT=3002
-
Docker Compose : Assurez-vous que votre fichier
docker-compose.ymldans le dossierbackest configuré correctement pour la base de données MySQL.
- Activez le service sur Google Cloud console
- Créez des identifiants de compte de service :
- Allez sur Google Cloud Console.
- Naviguez vers "API & Services" -> "Identifiants".
- Cliquez sur "Créer des identifiants" et sélectionnez "Compte de service".
-
Téléchargez le fichier de clé JSON du nouveau compte de service
process.env.GOOGLE_APPLICATION_CREDENTIALS = "/chemin/vers/votre-fichier-clé.json"; -
Pour les audios de plus de 1 mn, nous avons besoin de créer un bucket
- exemple :
const bucketName = 'testbucket-hackathon';
const remoteFileName = 'extrait.wav';
async function uploadFileToGCS(localFilePath, remoteFileName) {
try {
await storage.bucket(bucketName).upload(localFilePath, {
destination: remoteFileName,
});
return `gs://${bucketName}/${remoteFileName}`;
} catch (err) {
console.error('Erreur lors de l\'upload du fichier sur GCS :', err);
throw err;
}
}
const generateTranscription = async (req, res) => {
const { userId } = req.params;
try {
const gcsUri = await uploadFileToGCS(localAudioPath, remoteFileName);
const audio = {
uri: gcsUri,
};
const config = {
encoding: 'LINEAR16',
sampleRateHertz: 24000,
languageCode: 'fr-FR',
audioChannelCount: 2,
enableSeparateRecognitionPerChannel: true,
model: 'telephony',
diarizationConfig: {
enableSpeakerDiarization: true,
minSpeakerCount: 2,
},
};
const request = {
config: config,
audio: audio,
};
const [operation] = await client.longRunningRecognize(request);
const [response] = await operation.promise();
const transcription = response.results.map(result => ({
person: result.channelTag || 'Unknown',
text: result.alternatives[0].transcript || 'No transcription available',
}));
const transcriptionText = transcription.map(t => `Speaker ${t.person}: ${t.text}`).join('\n');
....... La suite de votre code .............
-
Démarrez la base de données et le backend avec Docker Compose :
cd back docker-compose up -d -
Démarrez le serveur backend :
yarn fixtures yarn start
-
Démarrez le serveur frontend :
cd ../front npm run dev -
Accédez à l'application à l'adresse
http://localhost:5173.
- Assurez-vous que Docker est en cours d'exécution et que les ports nécessaires sont disponibles.
- Vérifiez que la clé API OpenAI est valide et correctement configurée dans le fichier
.env.
Pour toute question ou problème, veuillez contacter l'un des développeurs de l'équipe.
Numéro de la maman d'Antoine pour Baptiste : 01 48 10 31 00