Spaces:
Runtime error
Runtime error
File size: 3,179 Bytes
bbd5c76 06323bb 8735569 06323bb bbd5c76 8735569 bbd5c76 15e4873 bbd5c76 8a1e454 bbd5c76 5d46e47 8735569 06323bb bbd5c76 45b07b2 53b4ef0 45b07b2 53b4ef0 bbd5c76 fdefcb0 f82f6a1 fdefcb0 bbd5c76 24377b9 4f3359c bbd5c76 06323bb bbd5c76 f82f6a1 bbd5c76 |
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
import gradio as gr
from huggingface_hub import InferenceClient
import requests
from bs4 import BeautifulSoup
from bs4.element import Comment
def get_text_from_url(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
texts = soup.find_all(text=True)
visible_texts = filter(tag_visible, texts)
return u"\n".join(t.strip() for t in visible_texts)
def tag_visible(element):
if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']:
return False
if isinstance(element, Comment):
return False
return True
text_list = []
homepage_url = "https://sites.google.com/view/abhilashnandy/home/"
extensions = ["", "pmrf-profile-page"]
for ext in extensions:
url_text = get_text_from_url(homepage_url+ext)
text_list.append(url_text)
# Repeat for sub-links if necessary
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
client = InferenceClient("stabilityai/stablelm-2-1_6b-chat")#("stabilityai/stablelm-2-1_6b-chat")#("TheBloke/TinyLlama-1.1B-Chat-v1.0-GPTQ")#("TheBloke/TinyLlama-1.1B-Chat-v1.0-GGUF")#("QuantFactory/Meta-Llama-3-8B-Instruct-GGUF")#("HuggingFaceH4/zephyr-7b-beta")
SYSTEM_MESSAGE = "You are a QA chatbot to answer queries (in less than 30 words) on my homepage that has the following information -\n\n" + "\n\n".join(text_list) + "\n\n"
def respond(
message,
history: list[tuple[str, str]],
system_message=SYSTEM_MESSAGE,
max_tokens=80,
temperature=0.7,
top_p=0.95,
):
messages = [{"role": "system", "content": system_message}]
for val in history:
# if val[0]:
if len(val)>=1:
messages.append({"role": "user", "content": "Question: "+val[0]})
# if val[1]:
if len(val)>=2:
messages.append({"role": "assistant", "content": "Answer: "+val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
response += token
yield response
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
# initial_message = [("user", "Yo who dis Abhilash?")]
demo = gr.ChatInterface(
respond,
examples = ["Yo who dis Abhilash?"],
# message=initial_message,
additional_inputs=[
# gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
# gr.Slider(minimum=1, maximum=8192, value=512, step=1, label="Max new tokens"),
# gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
# gr.Slider(
# minimum=0.1,
# maximum=1.0,
# value=0.95,
# step=0.05,
# label="Top-p (nucleus sampling)",
# ),
],
# value=initial_message
)
if __name__ == "__main__":
demo.launch() |