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 #WebBaseLoader会需要 用到? from langchain import HuggingFaceHub import requests import sys from huggingface_hub import InferenceClient import os from dotenv import load_dotenv load_dotenv() hf_token = os.environ.get('HUGGINGFACEHUB_API_TOKEN') repo_id=os.environ.get('repo_id') #port = os.getenv('port') #OPENAI_API_KEY = os.environ.get('OPENAI_API_KEY') llm = HuggingFaceHub(repo_id=repo_id, # for StarChat huggingfacehub_api_token=hf_token, #这个变量huggingfacehub_api_token名称似乎没有问题! model_kwargs={"min_length": 512, # for StarChat "max_new_tokens": 1024, "do_sample": True, # for StarChat "temperature": 0.01, "top_k": 50, "top_p": 0.95, "eos_token_id": 49155}) #chain = load_summarize_chain(llm, chain_type="stuff") #stuff模式容易导致出错:估计是超LLM的token限制所致 chain = load_summarize_chain(llm, chain_type="refine") #llm = ChatOpenAI(temperature=0, model_name="gpt-3.5-turbo-16k") url=st.text_input("Enter webiste URL to summarize (format: 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("https://www.usinoip.com/") with st.spinner("AI Thinking...Please wait a while to Cheers!"): print("1") loader = WebBaseLoader(url) print("2") docs = loader.load() print("3") result=chain.run(docs) #这个result的格式比较特殊,可以直接print,但不可以和其他字符串联合print输出 print("4") print(url) ai_response=str(result) #print("AI Summarization: "+result) #这个会出错,原因见上方 print("AI Summarization:") #print(result) print(ai_response) st.write("AI Summarization:") #st.write(result) st.write(ai_response) except Exception as e: st.write("Wrong URL or URL not parsable.")