File size: 2,879 Bytes
c3883a9 612150f c3883a9 612150f c3883a9 612150f c3883a9 612150f 3ea476a 612150f 3ea476a 612150f 3ea476a 612150f e6b37d1 612150f c3883a9 612150f c3883a9 612150f 3ea476a 612150f 3ea476a c3883a9 612150f c3883a9 612150f c3883a9 612150f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
from flask import Flask, request, render_template, jsonify
import PIL.Image
import google.generativeai as genai
import os
from tempfile import NamedTemporaryFile
from gradio_client import Client, handle_file # Importez gradio_client
app = Flask(__name__)
# Configuration de Gemini
generation_config = {
"temperature": 1,
"max_output_tokens": 8192,
}
safety_settings = [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
]
GOOGLE_API_KEY = os.environ.get("TOKEN")
genai.configure(api_key=GOOGLE_API_KEY)
# Fonction pour interroger Gemini
def query_gemini(image_path,prompt_gemini):
img = PIL.Image.open(image_path)
model = genai.GenerativeModel(
model_name="gemini-1.5-pro-002",
generation_config=generation_config,
safety_settings=safety_settings
)
try:
response = model.generate_content([prompt_gemini, img], request_options={"timeout": 600})
return response.text
except Exception as e:
return str(e)
# Fonction pour interroger Qwen2
def query_qwen2(image_path, question):
try:
client = Client("Qwen/Qwen2.5-Math-Demo")
result = client.predict(
image=handle_file(image_path),
sketchpad=None,
question=question,
api_name="/math_chat_bot"
)
return result
except Exception as e:
return str(e)
@app.route('/')
def index():
return render_template('math.html')
@app.route('/upload', methods=['POST'])
def upload_image():
if 'image' not in request.files:
return jsonify({'error': 'Aucune image fournie'}), 400
file = request.files['image']
model_choice = request.form.get('model_choice', 'gemini') # Obtient le choix du modèle
custom_instruction = request.form.get('custom_instruction')
prompt_gemini = f"Résous ce problème mathématiques. Je veux qu'en réponse tu me donnes un rendu complet en utilisant du Latex. {custom}"
question = f"Donne la réponse en français et en utilisant LaTeX.{custom_instruction}"
if file.filename == '':
return jsonify({'error': 'Aucun fichier sélectionné'}), 400
with NamedTemporaryFile(delete=False) as temp_file:
file.save(temp_file.name)
try:
if model_choice == "mariam's":
result = query_gemini(temp_file.name)
else:
result = query_qwen2(temp_file.name)
os.unlink(temp_file.name)
return jsonify({'result': result, 'model': model_choice})
except Exception as e:
return jsonify({'error': str(e)}), 500
|