DeMaking's picture
Rename app.py to _app.py
df6ff1e verified
raw
history blame
1.99 kB
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)