|
import os |
|
import logging |
|
from flask import Flask, request, jsonify |
|
from transformers import pipeline |
|
from langdetect import detect |
|
from huggingface_hub import login |
|
|
|
|
|
app = Flask(__name__) |
|
|
|
|
|
hf_hub_token = os.getenv("HUGGINGFACEHUB_API_TOKEN") |
|
if not hf_hub_token: |
|
raise ValueError("Missing Hugging Face API token. Please set HUGGINGFACEHUB_API_TOKEN in environment variables.") |
|
login(token=hf_hub_token) |
|
|
|
|
|
|
|
hebrew_generator = pipeline("text-generation", model="Norod78/hebrew-gpt_neo-small") |
|
|
|
|
|
english_generator = pipeline("text-generation", model="distilgpt2") |
|
|
|
|
|
def detect_language(user_input): |
|
try: |
|
lang = detect(user_input) |
|
if lang == "he": |
|
return "hebrew" |
|
elif lang == "en": |
|
return "english" |
|
else: |
|
return "unsupported" |
|
except: |
|
return "unsupported" |
|
|
|
|
|
|
|
|
|
def generate_response(text): |
|
language = detect_language(text) |
|
|
|
if language == "hebrew": |
|
response = hebrew_generator(text, max_length=100)[0]["generated_text"] |
|
elif language == "english": |
|
response = english_generator(text, max_length=100)[0]["generated_text"] |
|
else: |
|
response = "Sorry, I only support Hebrew and English." |
|
|
|
return response |
|
|
|
|
|
|
|
@app.route("/ask", methods=["POST"]) |
|
def ask(): |
|
data = request.json |
|
user_input = data.get("text", "") |
|
|
|
if not user_input: |
|
return jsonify({"error": "No text provided"}), 400 |
|
|
|
response = generate_response(user_input) |
|
return jsonify({"response": response}) |
|
|
|
|
|
|
|
@app.route("/") |
|
def home(): |
|
return "Decision Making Helper Bot API is running!" |
|
|
|
if __name__ == "__main__": |
|
logging.basicConfig(level=logging.INFO) |
|
app.run(host="0.0.0.0", port=7860) |
|
|