iShare's picture
Update app.py
f77b98a
raw
history blame
4.02 kB
import flask
from flask import Flask, request, jsonify
#import streamlit as st
from langchain.chat_models import ChatOpenAI
from langchain.document_loaders import WebBaseLoader
from langchain.chains.summarize import load_summarize_chain
from bs4 import BeautifulSoup
import os
from dotenv import load_dotenv
load_dotenv()
from langchain import HuggingFaceHub
from huggingface_hub import InferenceClient
import requests
import sys
#OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY')
hf_token = os.environ.get('HUGGINGFACEHUB_API_TOKEN')
#starchat_repo_id = os.environ.get('starchat_repo_id')
repo_id=os.environ.get('repo_id')
#port = os.getenv('port')
llm = HuggingFaceHub(repo_id=repo_id, #for Llama2
#repo_id=starchat_repo_id, #for StarChat
huggingfacehub_api_token=hf_token,
model_kwargs={#"min_length":512, #for StarChat
"min_length":1024, #for Llama2
"max_new_tokens":3072, "do_sample":True, #for StarChat
#"max_new_tokens":5632, "do_sample":True, #for Llama2
"temperature":0.1,
"top_k":50,
"top_p":0.95, "eos_token_id":49155})
#llm = ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo-16k")
chain = load_summarize_chain(llm, chain_type="stuff")
app = Flask(__name__)
@app.route('/', methods=['POST'])
def home_api():
data = request.get_json()
user_query = data['user_question']
print(user_query)
return {"Message":"Flask Home API Deploy Success on HF"}
@app.route('/api/chat', methods=['POST'])
def chat():
#async def chat(): #Failed - Flask API 不支持async???
data = request.get_json()
user_query = data['user_question']
if user_query !="" and not user_query.strip().isspace() and not user_query == "" and not user_query.strip() == "" and not user_query.isspace():
try:
loader = WebBaseLoader(user_query)
with st.spinner("AI Thinking...Please wait a while to Cheers!"):
docs = loader.load()
result=chain.run(docs)
print(user_query)
print("AI Summarization: "+result)
#st.write("AI Summarization:")
#st.write(result)
return jsonify({'response': result})
except Exception as e:
#st.write("Wrong URL or URL not parsable.")
err_msg="Wrong URL or URL not parsable."
return jsonify({'response': err_msg})
#initial_response = llm_chain.run(user_query)
#return jsonify({'response': initial_response})
#找到问题了:jsonify在Huggingface不支持;在Github然后部署到Render是可以的!---NO No No, it's supported
#return {'response': initial_response}
#return jsonify({'response': initial_response}) #tried and OKed!
#url=st.text_input("Enter webiste URL to summarize (format: https://www.usinoip.com):")
#loader = WebBaseLoader("https://www.usinoip.com/")
#if url !="" and not url.strip().isspace() and not url == "" and not url.strip() == "" and not url.isspace():
# try:
# loader = WebBaseLoader(url)
# with st.spinner("AI Thinking...Please wait a while to Cheers!"):
# docs = loader.load()
# result=chain.run(docs)
# print(url)
# print("AI Summarization: "+result)
# st.write("AI Summarization:")
# st.write(result)
# except Exception as e:
# st.write("Wrong URL or URL not parsable.")
#**************************************************************#
#try:
# loader = WebBaseLoader(url)
# with st.spinner("AI Thinking...Please wait a while to Cheers!"):
# docs = loader.load()
# result=chain.run(docs)
# print(result)
# st.write("AI Summarization:")
# st.write(result)
#except Exception as e:
# st.write("Wrong URL")