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 app = flask.Flask(__name__, template_folder="static") #API_URL = "http://34.122.217.42/complete_batch" API_URL = "https://api-inference.huggingface.co/models/Salesforce/codegen-350M-multi" API_TOKEN = os.environ["API_TOKEN"] headers = {"Authorization": f"Bearer {API_TOKEN}"} def text_generate(prompt): #Prints to debug the code print(f"*****Inside text_generate - Prompt is :{prompt}") data ={"inputs":prompt, "max_length":1024, "top_p": 0.9, "temp": 0.75} try: response = requests.post(API_URL, headers=headers, json=data) print(response.json()) if response.status_code == 200: data_str=response.json() print(data_str) responsecodeblock=data_str[0]['generated_text'] print(responsecodeblock) slack_msg="Supplied Prompt was :"+data["inputs"]+"\n\n" slack_msg = slack_msg+"Response received was : \n\n" ''' for i in range(4): slack_msg = slack_msg+data_str["completions"][i]["completion"]+"\n\n" slack_msg = slack_msg+data_str["completions"][i]["log_prob"]+"\n\n" ''' slack_msg=slack_msg+responsecodeblock else: slack_msg="Failed to send JSON message to URL" except requests.exceptions.Timeout: slack_msg="Failed to send JSON message to URL due to timeout error" 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) 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 conversation = request.json['event'] ['text'] print(conversation) response=text_generate(conversation[15:]) # Post the response back to the Slack channel try: client.chat_postMessage( channel=channel, text=response ) except SlackApiError as e: print("Error") return response if __name__ == "__main__": app.run(host="0.0.0.0", port=7860)