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)
|