FabioSantos commited on
Commit
287f7aa
1 Parent(s): 97c6cce

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -13
app.py CHANGED
@@ -4,6 +4,7 @@ from llama_cpp import Llama
4
  from huggingface_hub import hf_hub_download
5
  import csv
6
  import os
 
7
 
8
  # Configurações iniciais
9
  repo_id = "xtuner/llava-llama-3-8b-v1_1-gguf"
@@ -34,15 +35,21 @@ def save_to_csv(name, age, support_level, stimulus_type, file_path):
34
  writer.writerow(["Nome", "Idade", "Nível de Suporte", "Tipo de Estímulo"])
35
  writer.writerow([name, age, support_level, stimulus_type])
36
 
37
- # Função para converter a imagem em uma representação textual (base64 ou descrição simulada)
38
- import base64
39
-
40
- def process_image_to_text(image_path):
41
- # Converte a imagem em uma string base64
42
- with open(image_path, "rb") as image_file:
43
- base64_string = base64.b64encode(image_file.read()).decode('utf-8')
44
  return base64_string
45
 
 
 
 
 
 
 
 
 
 
46
  # Frontend usando Streamlit
47
  st.title("Sugestão de Brincadeiras para Crianças Autistas")
48
 
@@ -61,14 +68,14 @@ if uploaded_file is not None:
61
  # Exibe a imagem enviada
62
  raw_image = Image.open(uploaded_file)
63
  st.image(raw_image, caption='Imagem enviada', use_column_width=False)
64
-
65
- # Processa a imagem para ser incluída no prompt
66
- image_text = process_image_to_text(uploaded_file)
67
 
68
  # Botão para gerar a resposta
69
  if st.button("Gerar Sugestão de Brincadeira"):
70
  with st.spinner("Processando..."):
71
- prompt = f"<|start_header_id|>user<|end_header_id|>\n\n<image>\n{image_text}\nQual brincadeira segura você sugere e explica em forma de uma receita passo a passo que utiliza o objeto dessa imagem para {name}, uma criança de {age} anos com autismo de nível {support_level} que responde bem a estímulos {stimulus_type}?<|eot_id|>\n<|start_header_id|>assistant<|end_header_id|>\n\n"
72
 
73
  # Gera a sugestão de brincadeira
74
  response = model(
@@ -87,5 +94,4 @@ if uploaded_file is not None:
87
  save_to_csv(name, age, support_level, stimulus_type, csv_file)
88
 
89
  st.success("Sugestão de Brincadeira:")
90
- st.write(suggestion)
91
-
 
4
  from huggingface_hub import hf_hub_download
5
  import csv
6
  import os
7
+ import base64
8
 
9
  # Configurações iniciais
10
  repo_id = "xtuner/llava-llama-3-8b-v1_1-gguf"
 
35
  writer.writerow(["Nome", "Idade", "Nível de Suporte", "Tipo de Estímulo"])
36
  writer.writerow([name, age, support_level, stimulus_type])
37
 
38
+ # Função para converter a imagem em uma string base64
39
+ def process_image_to_text(uploaded_file):
40
+ # Converte o arquivo UploadedFile em uma string base64
41
+ base64_string = base64.b64encode(uploaded_file.read()).decode('utf-8')
 
 
 
42
  return base64_string
43
 
44
+ # Função para salvar os dados em um CSV com codificação UTF-8
45
+ def save_to_csv(name, age, support_level, stimulus_type, file_path):
46
+ file_exists = os.path.isfile(file_path)
47
+ with open(file_path, mode='a', newline='', encoding='utf-8') as file:
48
+ writer = csv.writer(file)
49
+ if not file_exists:
50
+ writer.writerow(["Nome", "Idade", "Nível de Suporte", "Tipo de Estímulo"])
51
+ writer.writerow([name, age, support_level, stimulus_type])
52
+
53
  # Frontend usando Streamlit
54
  st.title("Sugestão de Brincadeiras para Crianças Autistas")
55
 
 
68
  # Exibe a imagem enviada
69
  raw_image = Image.open(uploaded_file)
70
  st.image(raw_image, caption='Imagem enviada', use_column_width=False)
71
+
72
+ # Converte a imagem em base64
73
+ image_base64 = process_image_to_text(uploaded_file)
74
 
75
  # Botão para gerar a resposta
76
  if st.button("Gerar Sugestão de Brincadeira"):
77
  with st.spinner("Processando..."):
78
+ prompt = f"Qual brincadeira segura você sugere e explica em forma de uma receita passo a passo que utiliza o objeto dessa imagem (base64: {image_base64}) para {name}, uma criança de {age} anos com autismo de nível {support_level} que responde bem a estímulos {stimulus_type}?"
79
 
80
  # Gera a sugestão de brincadeira
81
  response = model(
 
94
  save_to_csv(name, age, support_level, stimulus_type, csv_file)
95
 
96
  st.success("Sugestão de Brincadeira:")
97
+ st.write(suggestion)