DHEIVER commited on
Commit
bd448aa
·
verified ·
1 Parent(s): b26f8f8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -23
app.py CHANGED
@@ -2,7 +2,7 @@ import gradio as gr
2
  import pandas as pd
3
  import matplotlib.pyplot as plt
4
  import seaborn as sns
5
- from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer
6
  import json
7
  import os
8
 
@@ -28,17 +28,14 @@ def increment_counter():
28
 
29
  # Configuração do modelo local
30
  def load_model():
31
- model_name = "TheBloke/Mistral-7B-Instruct-v0.1-GGUF"
32
- model = AutoModelForCausalLM.from_quantized(
33
- model_name,
34
- model_file="mistral-7b-instruct-v0.1.Q4_K_M.gguf",
35
- device="cpu",
36
- trust_remote_code=True
37
  )
38
- tokenizer = AutoTokenizer.from_pretrained(model_name)
39
- return pipeline('text-generation', model=model, tokenizer=tokenizer)
40
 
41
- # Questões DISC (mantido igual...)
42
  perguntas = {
43
  'D': [
44
  "Eu sou direto e vou direto ao ponto",
@@ -66,7 +63,6 @@ perguntas = {
66
  ]
67
  }
68
 
69
- # Funções existentes mantidas iguais...
70
  def calcular_disc(respostas):
71
  resultados = {'D': 0, 'I': 0, 'S': 0, 'C': 0}
72
 
@@ -92,7 +88,7 @@ def criar_grafico(resultados):
92
 
93
  return plt
94
 
95
- def gerar_analise_llm(pipe, resultados, respostas_brutas):
96
  prompt = f"""<s>[INST] Como um especialista em análise comportamental DISC, faça uma análise detalhada do seguinte perfil:
97
 
98
  Resultados percentuais:
@@ -120,19 +116,11 @@ Forneça:
120
  5. Ambientes de trabalho mais adequados
121
  [/INST]"""
122
 
123
- resposta = pipe(
124
- prompt,
125
- max_new_tokens=1024,
126
- temperature=0.7,
127
- top_p=0.95,
128
- repetition_penalty=1.15
129
- )[0]['generated_text']
130
-
131
- return resposta.split("[/INST]")[1].strip()
132
 
133
  class DiscAnalyzer:
134
  def __init__(self):
135
- self.pipe = load_model()
136
 
137
  def avaliar_disc(self, values):
138
  # Incrementa o contador
@@ -146,7 +134,7 @@ class DiscAnalyzer:
146
 
147
  resultados = calcular_disc(respostas)
148
  fig = criar_grafico(resultados)
149
- analise = gerar_analise_llm(self.pipe, resultados, respostas)
150
 
151
  return fig, analise, counter_text
152
 
 
2
  import pandas as pd
3
  import matplotlib.pyplot as plt
4
  import seaborn as sns
5
+ from ctransformers import AutoModelForCausalLM
6
  import json
7
  import os
8
 
 
28
 
29
  # Configuração do modelo local
30
  def load_model():
31
+ return AutoModelForCausalLM.from_pretrained(
32
+ 'TheBloke/Mistral-7B-Instruct-v0.1-GGUF',
33
+ model_file='mistral-7b-instruct-v0.1.Q4_K_M.gguf',
34
+ model_type='mistral',
35
+ gpu_layers=0 # CPU only
 
36
  )
 
 
37
 
38
+ # Questões DISC
39
  perguntas = {
40
  'D': [
41
  "Eu sou direto e vou direto ao ponto",
 
63
  ]
64
  }
65
 
 
66
  def calcular_disc(respostas):
67
  resultados = {'D': 0, 'I': 0, 'S': 0, 'C': 0}
68
 
 
88
 
89
  return plt
90
 
91
+ def gerar_analise_llm(llm, resultados, respostas_brutas):
92
  prompt = f"""<s>[INST] Como um especialista em análise comportamental DISC, faça uma análise detalhada do seguinte perfil:
93
 
94
  Resultados percentuais:
 
116
  5. Ambientes de trabalho mais adequados
117
  [/INST]"""
118
 
119
+ return llm(prompt, max_new_tokens=1024, temperature=0.7)
 
 
 
 
 
 
 
 
120
 
121
  class DiscAnalyzer:
122
  def __init__(self):
123
+ self.llm = load_model()
124
 
125
  def avaliar_disc(self, values):
126
  # Incrementa o contador
 
134
 
135
  resultados = calcular_disc(respostas)
136
  fig = criar_grafico(resultados)
137
+ analise = gerar_analise_llm(self.llm, resultados, respostas)
138
 
139
  return fig, analise, counter_text
140