Spaces:
Runtime error
Runtime error
File size: 1,975 Bytes
948ccfc 647a8de 7123e1b be5f34e e9b2e7f 64b6a3a be5f34e 64b6a3a be5f34e 64b6a3a be5f34e 64b6a3a 948ccfc 64b6a3a 647a8de 7123e1b 647a8de 7123e1b 647a8de 948ccfc 7123e1b 64b6a3a 948ccfc 647a8de 7123e1b 647a8de 7123e1b 647a8de 948ccfc 647a8de 7123e1b 647a8de 7123e1b 647a8de 7123e1b 948ccfc 7123e1b |
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 |
import json
import os
from flask import Flask, request, jsonify
from transformers import pipeline
from huggingface_hub import login
# Retrieve Hugging Face token securely
hf_token = os.getenv("chatbot")
if hf_token is None:
raise ValueError("Hugging Face token is missing! Set HF_TOKEN in your environment variables or Secrets.")
# Log in with Hugging Face token
login(token=hf_token)
# Load the model (Falcon-1B)
try:
llm = pipeline("text-generation", model="tiiuae/falcon-1b-instruct", token=hf_token)
except Exception as e:
raise RuntimeError(f"Error loading model: {str(e)}")
# Load the schemes data from JSON file
SCHEMES_FILE = "schemes.json"
if os.path.exists(SCHEMES_FILE):
with open(SCHEMES_FILE, "r", encoding="utf-8") as f:
schemes_data = json.load(f)
else:
schemes_data = {"schemes": []} # Default to empty if file is missing
app = Flask(__name__)
# Function to search for relevant scheme information
def find_scheme_info(query):
for scheme in schemes_data.get("schemes", []):
if query.lower() in scheme["name"].lower() or query.lower() in scheme["description"].lower():
return scheme["description"]
return None
# Function to generate chatbot response
def chatbot_response(query):
scheme_info = find_scheme_info(query)
if scheme_info:
return scheme_info # Return scheme info if found
try:
response = llm(query, max_length=200, do_sample=True)
return response[0]['generated_text']
except Exception as e:
return f"Error generating response: {str(e)}"
# API route for chatbot
@app.route("/chat", methods=["POST"])
def chat():
user_input = request.json.get("query", "").strip()
if not user_input:
return jsonify({"error": "No query provided"}), 400
response = chatbot_response(user_input)
return jsonify({"response": response})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860, debug=True)
|