File size: 1,667 Bytes
e57f45e
89e328e
ea723bf
e57f45e
ea723bf
e57f45e
ea723bf
e57f45e
 
 
86c7a70
e57f45e
89e328e
e57f45e
89e328e
 
 
 
 
 
 
 
e57f45e
89e328e
e57f45e
d819472
1021517
99e1294
89e328e
e57f45e
89e328e
 
 
 
e57f45e
89e328e
 
e57f45e
 
89e328e
75e8c76
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
from flask import Flask, request, jsonify, render_template
from huggingface_hub import InferenceClient
import os

api = os.getenv('api')
app = Flask(__name__)
client = InferenceClient(api_key=api)

@app.route('/')
def index():
    return render_template('index.html')

@app.route("/run", methods=["POST"])
def run_code():
    """Синхронизировано с фронтендом: принимаем 'code', отдаем 'output'"""
    data = request.get_json()
    # Берем содержимое редактора
    user_code = data.get("code", "").strip() 
    
    if not user_code:
        return jsonify({"output": "Error: Empty request"}), 400

    try:
        # Модель лучше указать реальную, например Qwen 2.5 Coder
        response = client.chat.completions.create(
            model="Qwen/Qwen3.5-27B", 
            messages=[{"role": "system", "content": "в твоем ответе только число и ничего более"},{"role": "user", "content": user_code}],
            max_tokens=2000,
            temperature=0.5
        )
        
        answer = response.choices[0].message.content
        return jsonify({"output": answer}) 
            
    except Exception as e:
        # Если API отвалилось — это трында, возвращаем ошибку как вывод терминала
        return jsonify({"output": f"Traceback (most recent call last):\n  File \"main.py\", line 1, in <module>\nRuntimeError: {str(e)}"}), 500

if __name__ == '__main__':
    # Порт 7860 обязателен для Hugging Face Spaces
    app.run(host='0.0.0.0', port=7860)