Spaces:
Sleeping
Sleeping
| import os | |
| os.environ["OPENAI_API_KEY"] = "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" | |
| import openai | |
| import gradio as gr | |
| from PyPDF2 import PdfReader | |
| from math import * | |
| from dotenv import load_dotenv, find_dotenv | |
| _ = load_dotenv(find_dotenv()) | |
| openai.api_key = os.getenv('OPENAI_API_KEY') | |
| def get_text_from_file(file): | |
| reader = PdfReader(file) | |
| pages = reader.pages | |
| document="" | |
| for page in pages: | |
| document = document+page.extract_text() | |
| return document | |
| def get_prompt_1_shot(document): | |
| prompt = """ Extraire du document suivant une liste hiérarchique des rôles professionnels avec les compétences, les exigences et les responsabilités qui y sont associées. | |
| Document : """+ document +""" | |
| Voici un exemple de résultat attendu : | |
| 1. Programmeur .Net : | |
| a. Compétences : | |
| - Maitrise de la programmation .Net | |
| - Maitrise de HTLM | |
| - Maitrise de CSS ou Bootstrap | |
| - Expérience en JQuery | |
| - Expérience en Java Script | |
| - Expérience en Visual Studio 2015 ou une version ultérieure | |
| - Expérience en SQL Server 2008 ou une version ultérieure | |
| - Expérience en SQL Server Reporting Services 2008 ou une version ultérieure | |
| - Expérience en Entity Framework | |
| b. Exigences : | |
| - Détenir un diplôme d'études collégiales en informatique. | |
| - Posséder quatre (4) années d'expérience en développement Web.NET | |
| - Avoir participé à deux (2) mandats dans lesquelles ont été appliqués les principes de la méthodologie de réalisation Agile. | |
| - Posséder trois (3) années d'expérience avec chacun des outils suivants : | |
| c. Responsabilités : | |
| - Conseiller les architectes, les analystes et le chargé de projet dans les différentes phases d'analyse des systèmes | |
| - Participer à l’élaboration des solutions | |
| - Réaliser toute documentation pertinente, propre à son domaine d'expertise, selon les normes et standards du Ministère | |
| - Participer à la validation de certains livrables d'architecture détaillée et d’analyse si requis | |
| - Effectuer le développement nécessaire pour l'adaptation des modules identifiés par les architectes et/ou analystes | |
| - Participer à l’analyse des problèmes de production et à leur résolution | |
| - Programmer et effectuer les essais unitaires | |
| """ | |
| return prompt | |
| def get_prompt(file, text) : | |
| document = get_text_from_file(file) | |
| prompt = text+" "+document | |
| return prompt | |
| def get_response(prompt): | |
| response = openai.ChatCompletion.create( | |
| model="gpt-3.5-turbo-16k", | |
| temperature = 0.8, | |
| messages=[ | |
| { | |
| "role": "system", | |
| "content": "You are a helpful assistant." | |
| }, | |
| { | |
| "role": "user", | |
| "content": prompt | |
| } | |
| ] | |
| ) | |
| return response.choices[0].message['content'] | |
| def extract(file, prompt_text): | |
| if file is None: | |
| return "Please upload a file." | |
| prompt = get_prompt(file.name, prompt_text) | |
| return get_response(prompt) | |
| gr.close_all() | |
| demo = gr.Interface( | |
| fn=extract, | |
| inputs=[ | |
| gr.components.File(label="Importez votre document en format PDF ici"), | |
| gr.components.Textbox(label="Prompt Text") | |
| ], | |
| outputs=gr.components.Textbox(label="Voici le résultat"), | |
| title="Téléchargement de CV\n(version français)", | |
| description="Outil d’importation de CV", | |
| examples=[ | |
| [None, "Extraire du document suivant une liste hiérarchique des rôles professionnels avec les compétences, les exigences et les responsabilités qui y sont associées."] | |
| ] | |
| ) | |
| demo.launch() #debug=True) | |