Spaces:
Sleeping
Sleeping
File size: 2,398 Bytes
754cbca f012af7 298c638 f012af7 754cbca f012af7 1f616bf 754cbca 1f616bf 8365410 1f616bf b206414 1f616bf 23b8f96 1f616bf 754cbca 8365410 754cbca 4562c6c 754cbca bd87440 754cbca |
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 |
from flask import Flask, jsonify, render_template, request, send_file
from slack_sdk import WebClient
from slack_sdk.errors import SlackApiError
import os
from slack_bolt import App
import flask
import requests
import json
from simple_salesforce import Salesforce
import pandas as pd
app = flask.Flask(__name__, template_folder="static")
username=os.environ.get('SF_UserName')
password=os.environ.get('SF_password')
security_token=os.environ.get('security_token')
domain=os.environ.get('domain')
sf = Salesforce(username=username, password=password, security_token=security_token, domain=domain)
def search_knowledge(prompt):
slack_msg= "Here are knowledge articles related to "+prompt
try:
searchstring="Find {"+prompt+"}"
print(searchstring)
information = sf.search(searchstring)
df = pd.DataFrame(information['searchRecords'])
print(df)
for i in (df.index):
slack_msg=slack_msg+df['Id'][i]
except requests.exceptions.RequestException as e:
raise SystemExit(e)
pass
return slack_msg
@app.route("/")
def index():
return 'Hello'
@app.route("/events", methods=["POST"])
def handle_event():
# Handle the event here
event=request.json['type']
print("event is"+event)
print("request is"+ request.json['event'] ['text'])
if event=='url_verification':
# Respond to the challenge request with a 200 OK HTTP status code
# and the value of the challenge parameter in the response body
challenge = request.json['challenge']
return (
challenge
)
if event=='event_callback':
API_KEY=os.environ.get('SLACK_APP_TOKEN')
SLACK_CHANNEL=os.environ.get('SLACK_APP_CHANNEL')
# Set up the Slack client
YOUR_BOT_TOKEN=API_KEY
client = WebClient(token=YOUR_BOT_TOKEN)
channel= SLACK_CHANNEL
print(channel)
conversation = request.json['event'] ['text']
print(conversation)
response=search_knowledge(conversation[15:])
# Post the response back to the Slack channel
try:
client.chat_postMessage(
channel=channel,
text=response
)
except SlackApiError as e:
response="Error"
return response
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860) |