############################################################################# # Title: Gradio Interface to AI hosted by Huggingface # Author: Andreas Fischer # Date: October 7th, 2023 # Last update: December 19th, 2023 ############################################################################# import gradio as gr import requests import time import json def response(message, history, model): if(model=="Default"): model = "mistralai/Mixtral-8x7B-Instruct-v0.1" model_id = model params={"max_length":500, "return_full_text":False} #, "stream":True url = f"https://api-inference.huggingface.co/models/{model_id}" correction=1 prompt=f"[INST] {message} [/INST]" print("URL: "+url) print(params) print("User: "+message+"\nAI: ") response="" for text in requests.post(url, json={"inputs":prompt, "parameters":params}, stream=True): text=text.decode('UTF-8') print(text) if(correction==3): text='"}]'+text correction=2 if(correction==1): text=text.lstrip('[{"generated_text":"') correction=2 if(text.endswith('"}]')): text=text.rstrip('"}]') correction=3 response=response+text print(response) time.sleep(0.2) yield response x=requests.get(f"https://api-inference.huggingface.co/framework/text-generation-inference") x=[i["model_id"] for i in x.json()] x.insert(0,"Default") print(x) x=[s for s in x if s.startswith("mistral")] print(x) gr.ChatInterface( response, additional_inputs=[gr.Dropdown(x,value="Default",label="Model")]).queue().launch(share=True) #False, server_name="0.0.0.0", server_port=7864)