Spaces:
Sleeping
Sleeping
| from flask import Flask, request, abort | |
| import markdown | |
| from bs4 import BeautifulSoup | |
| from linebot.v3 import ( | |
| WebhookHandler | |
| ) | |
| from linebot.v3.exceptions import ( | |
| InvalidSignatureError | |
| ) | |
| from linebot.v3.messaging import ( | |
| Configuration, | |
| ApiClient, | |
| MessagingApi, | |
| ReplyMessageRequest, | |
| TextMessage | |
| ) | |
| from linebot.v3.webhooks import ( | |
| MessageEvent, | |
| TextMessageContent | |
| ) | |
| import os | |
| import requests | |
| HF_TOKEN = os.environ.get('HF_TOKEN') | |
| headers = {"Authorization": f"Bearer {HF_TOKEN}"} | |
| API_URL = "https://api-inference.huggingface.co/models/mistralai/Mixtral-8x7B-Instruct-v0.1" | |
| def query(payload): | |
| response = requests.post(API_URL, headers=headers, json=payload) | |
| return response.json() | |
| app = Flask(__name__) | |
| configuration = Configuration(access_token='YOUR_CHANNEL_ACCESS_TOKEN') | |
| handler = WebhookHandler('YOUR_CHANNEL_SECRET') | |
| def callback(): | |
| # get X-Line-Signature header value | |
| signature = request.headers['X-Line-Signature'] | |
| # get request body as text | |
| body = request.get_data(as_text=True) | |
| app.logger.info("Request body: " + body) | |
| # handle webhook body | |
| try: | |
| handler.handle(body, signature) | |
| except InvalidSignatureError: | |
| app.logger.info("Invalid signature. Please check your channel access token/channel secret.") | |
| abort(400) | |
| return 'OK' | |
| def handle_message(event): | |
| with ApiClient(configuration) as api_client: | |
| line_bot_api = MessagingApi(api_client) | |
| response = query({"inputs": input, "parameters":{"return_full_text":False, "max_length":1024}}) | |
| html_msg = markdown.markdown(response) | |
| soup = BeautifulSoup(html_msg, 'html.parser') | |
| line_bot_api.reply_message( | |
| ReplyMessageRequest( | |
| reply_token=event.reply_token, | |
| messages=[TextMessage(text=soup.get_text())] | |
| ) | |
| ) | |
| if __name__ == "__main__": | |
| app.run() |