import os import logging from flask import Flask, request, jsonify from transformers import pipeline from langdetect import detect from huggingface_hub import login # Initialize Flask app app = Flask(__name__) # Gets the Token from secrects and Login if exists 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) # Load Hebrew text generation model hebrew_generator = pipeline("text-generation", model="Norod78/hebrew-gpt_neo-small") # Load English text generation model english_generator = pipeline("text-generation", model="distilgpt2") # Function to detect language 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" # Function to generate response based on language 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 # Flask endpoint for processing text input @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}) # Root endpoint @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)