File size: 3,571 Bytes
64e7c03
 
 
 
 
 
 
 
 
191db0a
64e7c03
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191db0a
 
 
 
 
 
8b76ba9
 
 
 
 
 
 
 
 
 
 
 
191db0a
 
64e7c03
 
 
191db0a
 
64e7c03
 
 
 
 
 
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
from flask import Flask, request, jsonify
from transformers import pipeline
from simple_salesforce import Salesforce

app = Flask(__name__)

# Load the Hugging Face model for Question Answering (FAQ-based)
faq_model = pipeline("question-answering", model="distilbert-base-uncased-distilled-squad")

# Salesforce connection (replace with your credentials)
sf = Salesforce(username='your_username', password='your_password', security_token='your_security_token')

# Function to get the answer from the model
def get_answer(question, context):
    result = faq_model(question=question, context=context)
    return result['answer']

# Function to create a case in Salesforce if the chatbot requires more assistance
def create_case(subject, description):
    case = sf.Case.create({
        'Subject': subject,
        'Description': description,
        'Status': 'New',
        'Priority': 'Medium'
    })
    return case

# Route to handle the user’s question
@app.route('/ask', methods=['POST'])
def ask_question():
    data = request.get_json()
    question = data.get('question')

    # Define the FAQ context (static or dynamic data can be used here)
    faq_context = """
    Here are some frequently asked questions and answers about our services.
    1. How do I contact customer support? - You can email us at support@company.com.
    2. What are your business hours? - We are open from 9 AM to 6 PM, Monday to Friday.
    3. How do I reset my password? - Click on 'Forgot Password' on the login page.
    4. What payment methods do you accept? - We accept credit cards, debit cards, PayPal, and bank transfers.
    5. How can I track my order? - You can track your order using the tracking number provided in your confirmation email.
    6. Do you offer international shipping? - Yes, we offer international shipping to most countries.
    7. Can I change my order after placing it? - Once an order is placed, it cannot be changed. Please contact customer support for assistance.
    8. How do I cancel my subscription? - You can cancel your subscription by visiting the 'Account Settings' page and selecting 'Cancel Subscription'.
    9. Are there any discounts available? - We offer seasonal discounts and promotions. Keep an eye on our website or subscribe to our newsletter for updates.
    10. What should I do if my order is damaged or defective? - Please contact customer support within 7 days of receiving the item, and we will assist you with a replacement or refund.
    11. How do I create a new account? - Click on 'Sign Up' at the top of the homepage and follow the steps to create your account.
    12. How do I update my personal information? - Go to the 'Account Settings' page to update your contact information, address, or payment details.
    13. Do you offer gift cards? - Yes, we offer gift cards which can be purchased directly from our website.
    14. Can I return an item I bought? - Yes, we accept returns within 30 days of purchase. Please review our return policy for full details.
    15. How can I provide feedback about your services? - You can send your feedback through the 'Contact Us' page or by emailing feedback@company.com.
    """
    
    # Get the answer to the question
    answer = get_answer(question, faq_context)

    # If the answer suggests further help, create a case in Salesforce
    if "contact us" in answer or "need help" in answer:
        create_case('Customer Support Needed', answer)

    return jsonify({"answer": answer})

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)