File size: 1,992 Bytes
bd8871f
e5d152a
e12cd77
 
 
bd8871f
e12cd77
e5d152a
e12cd77
 
489d405
bd8871f
489d405
 
bd8871f
 
e12cd77
489d405
73bc039
489d405
 
 
e5d152a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489d405
e5d152a
 
 
 
 
56d2e38
 
e12cd77
56d2e38
e12cd77
e5d152a
 
e12cd77
e5d152a
 
e12cd77
e5d152a
 
 
 
489d405
e12cd77
 
e5d152a
e12cd77
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
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)