Download _app.py from DeMaking/decision-helper-bot: direct link, hf CLI and curl.
- Browser
- Download file 1.99 kB
-
https://huggingface.co/spaces/DeMaking/decision-helper-bot/resolve/f83b63817d90dcafe111f72cea7e8c4e2fe71f2e/_app.py
- Command line
-
hf download hf://spaces/DeMaking/decision-helper-bot@f83b63817d90dcafe111f72cea7e8c4e2fe71f2e/_app.py
-
curl -L -o _app.py https://huggingface.co/spaces/DeMaking/decision-helper-bot/resolve/f83b63817d90dcafe111f72cea7e8c4e2fe71f2e/_app.py
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 | |
| 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 | |
| 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) | |