RGPD / test.py
jmainformatique's picture
Upload folder using huggingface_hub
87f6db4 verified
# app.py
from flask import Flask, render_template, request, jsonify
import os
import google.generativeai as genai
import subprocess
from datetime import datetime
app = Flask(__name__)
# Configuration de l'API Gemini
genai.configure(api_key="AIzaSyD1TJ82gJaI9fL239kdsk6d4t-oLL3G2PE")
def initialize_chat():
model = genai.GenerativeModel(
model_name='gemini-1.5-pro',
system_instruction="tu es un générateur de code python. Tu peux utiliser seulement les librairie scapy,nmap,pyshark,loguru,pandas,psutil,celery,ldap3 si besoin.l'interface réseau de ma machine est 'eno1';mon adresse ip est '192.168.251.249'. tu dois générer le code complet pour qu'il puisse être exécuté; rajouter les commandes 'verbose' lors de l'utilisation des outils;ne génère pas de commentaires, de fichiers logs, ni d'explications"
)
return model.start_chat(history=[
{"role": "user", "parts": "Bonjour"},
{"role": "model", "parts": "Bonjour, je suis un générateur de code python et je ne génère que du code python"},
])
def execute_code(code):
filename = f"generated_code_{datetime.now().strftime('%Y%m%d_%H%M%S')}.py"
with open(filename, "w") as f:
f.write(code)
try:
result = subprocess.run(["python3", filename], capture_output=True, text=True, check=True)
output = result.stdout
except subprocess.CalledProcessError as e:
output = f"Erreur d'exécution:\n{e.stderr}"
#finally:
# Nettoyer le fichier temporaire
#if os.path.exists(filename):
#os.remove(filename)
return output
@app.route('/')
def home():
return render_template('index.html')
@app.route('/generate', methods=['POST'])
def generate():
prompt = request.json.get('prompt')
if not prompt:
return jsonify({'error': 'Prompt manquant'}), 400
try:
chat = initialize_chat()
response = chat.send_message(prompt)
# Nettoyer le code généré
code = response.text.replace("```python\n", "").replace("```", "")
# Exécuter le code
output = execute_code(code)
return jsonify({
'code': code,
'output': output
})
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0")