Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dvizioon/sistema-imc
SISTEMA 📦 PARA CALCULAR IMC NOS MEUS ESTUDO DE FLASK API, E AI GENERATIVA 👽
https://github.com/dvizioon/sistema-imc
api api-python flask generative-language-models ia imc imc-calculator imc-python python
Last synced: about 2 months ago
JSON representation
SISTEMA 📦 PARA CALCULAR IMC NOS MEUS ESTUDO DE FLASK API, E AI GENERATIVA 👽
- Host: GitHub
- URL: https://github.com/dvizioon/sistema-imc
- Owner: dvizioon
- License: apache-2.0
- Created: 2024-06-07T02:03:55.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-13T19:40:48.000Z (7 months ago)
- Last Synced: 2024-06-14T01:46:07.616Z (7 months ago)
- Topics: api, api-python, flask, generative-language-models, ia, imc, imc-calculator, imc-python, python
- Language: HTML
- Homepage:
- Size: 2.38 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Body-health
![PYTHON](https://img.shields.io/badge/PYTHON-yellow?style=for-the-badge&logo=python&logoColor=blue)
![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white)
![TAILWINDCSS](https://img.shields.io/badge/TailwindCss-1572B6?style=for-the-badge&logo=Tailwindcss3&logoColor=white)
![JQUERY](https://img.shields.io/badge/Jquery-blue?style=for-the-badge&logo=jquery&logoColor=black)
![FLASK](https://img.shields.io/badge/Flask-F7DF1E?style=for-the-badge&logo=flask&logoColor=black)
![SQLITE](https://img.shields.io/badge/SQLITE-blue?style=for-the-badge&logo=sqlite&logoColor=yellow)Este projeto é uma aplicação web desenvolvida em Python utilizando o framework Flask para calcular o Índice de Massa Corporal (IMC) 🍃. A aplicação possui componentes customizados e inclui uma IA 🤖 criada por você para calcular o IMC de forma inteligente. Além disso, utilizamos um banco de dados SQLite com estrutura em JSON para armazenar os dados dos usuários.
## Funcionalidades
- **Cálculo de IMC:** Permite aos usuários inserir seus dados (altura e peso) para calcular o IMC.
- **Interface Customizada:** Componentes da interface do usuário personalizados para melhorar a experiência do usuário.
- **Metodo e Escolhas:** Com Base na Escolha é possivel definir o tipo de processamento do servidor.
- **IA para Cálculo de IMC:** Utiliza uma IA desenvolvida para calcular o IMC de forma precisa e fornecer recomendações personalizadas.
- **Roteamento:** Implementação de roteamento no Flask para gerenciar as diferentes páginas da aplicação.
- **Banco de Dados SQLite:** Armazenamento de dados dos usuários utilizando SQLite com estrutura em JSON.## Tecnologias Utilizadas
- **Python:** Linguagem de programação principal utilizada no projeto.
- **Flask:** Framework web utilizado para construir a aplicação.
- **HTML/CSS/JavaScript/Jquery:** Tecnologias front-end para criar a interface do usuário.
- **SQLite:** Banco de dados utilizado para armazenar informações dos usuários.
- **JSON:** Formato de armazenamento de dados no banco de dados.
- **OPENIV (Engenharia Social):** Implementação de uma IA para cálculos e recomendações de Atividades fisicas e Alimentação.
> [!IMPORTANT]
>Observação o PHI-3 é um novo modelo generativo de IA, então será necessário 🫵 baixar: https://ollama.com/library/phi3> - **IA (PHI-3):** Implementação de uma IA para dar recomendações.
> [!CAUTION]
> Uma "(IA - Inteligência Artificial)" Não substitui a orientação de um profissional real.## Estrutura do Projeto
```bash
SISTEMA-IMC/
│
├── main.py
│
├── templates/
│ ├── ...
├── configuration/
│ ├── ...
├── Assets/
│ ├── ...
├── custom/
│ ├── ...
├── Components/
│ ├── ...
├── Router/
│ ├── ...
├── auth/
│ ├── ...
├── database/
│ ├── ...
├── Modules/
│ ├── ...
├── Plugins/
│ ├── ...
├── Router/
│ ├── ...
│
└── README.md```
## Configuração de AI:
```python
def modelAI():
Ai = LerYaml(".Yaml","openAI",index=0)
if Ai == "OpenIV":
return openVision()
elif Ai == "PHI3":
return jsonify({
"Model => PHI-3":"404" ,
"Disponiveis":"*OpenAi",
"Instalar":"https://ollama.com/library/phi3"
})```
- Para Você implementar um nova AI com mais otimização você pode usar essa funçao para retonar as infomações coletadas nos componentes> [!NOTE]
> Observer que o Modelo principal é o Arquivo `Components/OpenIV/index.py`## Usando Micro Serviço API
```bash-> `Usando o (ask)`
{
"altura": 170,
"peso": 70,
"imc": 24.2,
"tipo": "ask",
"question": "Oq é IMC?"
}-> `Usando o (refeicao)`
{
"altura": 170,
"peso": 70,
"imc": 24.2,
"tipo": "refeicao",
}-> `Usando o (atividadeFisica)`
{
"altura": 170,
"peso": 70,
"imc": 24.2,
"tipo": "atividadeFisica",
}```
## Sistema de Roteamento
```python
import sys
sys.path.append(".")def RouterLink( url , method , function=False):
'''
@url = equivale ao path da metaLink ex: /home
@method = equivale ao tipo de processamento ex: [get,post,delete,patch,put]
@function = função que a rota recebe ex: rende_home
isso Sera o Equivalente há:
@app.route(, methods=[ metodos />])
def :
...
'''
routes = [
{'url': url, 'method': method, 'function': function},
]
return routes
#Exemplo de uso do retorno
# def Home():
# print("Bem Vindo Rota /Home")
# RotaHome = RouterLink("/",["GET"],Home)
# print(RotaHome)```
## GTTS
```python
def create_sound_api(texts):
url_audio = f"{LerYaml('.Yaml','server',index=0)}://{LerYaml('.Yaml','configuration',index=0)}:{LerYaml('.Yaml','configuration',index=1)}/api/audios"
data = {'texts': texts}
headers = {'Content-Type': 'application/json'}try:
response = requests.post(url_audio, data=json.dumps(data), headers=headers)
response.raise_for_status()audio_data = response.json()
return audio_dataexcept requests.exceptions.RequestException as e:
print("Erro ao fazer a solicitação:", e)
return None
--------------------------------------------------------------
audio_files = {}
def createSound():
data = request.get_json()
texts = data.get('texts', [])if not texts:
return jsonify({"error": "No texts provided"}), 400for i, text in enumerate(texts):
audio_fp = create_sound(text)
key = f"audio_{i + 1}"
audio_files[key] = audio_fpresponse = {key: f"/api/audio/{key}" for key in audio_files.keys()}
return jsonify(response)
---------------------------------------------------------------
def getSound(audio_key):
audio_fp = audio_files.get(audio_key)
if audio_fp:
audio_fp.seek(0)
return send_file(audio_fp, mimetype="audio/mpeg")
else:
return jsonify({"error": "Audio not found"}), 404
```
## Usando Micro Serviço Som
```bash
`Request`
{
"texts": [
"Dvizioon","Olá Tudo bem?"
]
}`Response`
{
"audio_1": "/api/audio/audio_1",
"audio_2": "/api/audio/audio_2"
}```
> [!WARNING]
>Observação: /roteamento {"url": f"/api/audio/", "method": ["GET"], "function":getSound} => MimeType:audio/mpeg## Instalação do Projeto
1. **Clone o repositório:**
```bash
git clone https://github.com/dvizioon/SISTEMA-IMC
cd SISTEMA-IMC2. **Crie um ambiente virtual e ative-o:**
```shell
-------------------
> Linux:
python -m venv venv
source venv/bin/activate-------------------
> Windows:
python -m venv venv
source imc/Scripts/activate```
### Acões para API
```mermaid
graph TD
A[Componente Select IMC - Abstraction] --> B[Normal]
B --> C[Simples Response]
C --> D[altura: 1.8, peso: 89, metodo: Normal]
A --> E[Diferencial]
E --> F["Calc Response 18 < || > 24"]
F --> G[categoria: Sobrepeso, imc: 27.47, peso_ideal: 77.76, categoria_ideal: acima do ideal, imc_atual: 27.47, peso_a_ajustar: 11.24, peso_atual: 89.0, porcentagem_ajuste: 12.63]
A --> H[Robusto]
H --> I[Voce pode Experimentar]```
## Instale as dependências:
> [!CAUTION]
> Os Pacotes Necessarios ficam no Caminho
> `plugins/requirements.txt````shell
pip install -r requirements.txt
```
## Licença
![Composer](https://img.shields.io/badge/License-GPL-yellow)