# app_select_ai.py # --------------------------------------------------------- # Chat + Dashboard (histórico) para SELECT AI no Autonomous Database # --------------------------------------------------------- from flask import Flask, request, render_template_string, session import oracledb, os, json from flask import send_file, jsonify from io import BytesIO import base64 from openpyxl import Workbook from openpyxl.utils import get_column_letter from openpyxl.drawing.image import Image as XLImage from PIL import Image as PILImage # ====================== # CONFIGURAÇÕES DO BANCO # ====================== with open("./config", "r") as f: config_data = json.load(f) WALLET_PATH = config_data["WALLET_PATH"] DB_ALIAS = config_data["DB_ALIAS"] USERNAME = config_data["USERNAME"] PASSWORD = config_data["PASSWORD"] os.environ["TNS_ADMIN"] = WALLET_PATH PROFILE_NAME = "OCI_GENERATIVE_AI_PROFILE" def set_select_ai_profile(conn, requested_tag): # Ativa o profile em cada sessão do pool with conn.cursor() as cur: cur.execute("BEGIN DBMS_CLOUD_AI.SET_PROFILE(:p); END;", p=PROFILE_NAME) pool = oracledb.create_pool( user=USERNAME, password=PASSWORD, dsn=DB_ALIAS, config_dir=WALLET_PATH, wallet_location=WALLET_PATH, wallet_password=PASSWORD, min=1, max=5, increment=1, session_callback=set_select_ai_profile ) # ====================== # APP FLASK # ====================== app = Flask(__name__) app.secret_key = "troque-esta-chave" # necessário p/ sessão (histórico) PAGE = """
| {{ h }} | {% endfor %}
|---|
| {{ c }} | {% endfor %}