RAG-Interface / run.py
AFischer1985's picture
Update run.py
b91d77f
raw
history blame
1.6 kB
import gradio as gr
import requests
import random
import json
def response(message, history,prompt_type):
url="https://afischer1985-OpenHermes-2-GGUF-API.hf.space/v1/completions"
#prompt_type="ChatML"
if(prompt_type=="Alpaca"):
body={"prompt":"###Frage: "+message+" ###Antwort:","max_tokens":1000,"stop":"###","stream":True} #128
if(prompt_type!="Alpaca"):
body={"prompt":"""<|im_start|>system
Du bist OpenHermes2 ein deutschsprachiger KI-basierter Assistent.<|im_end|>
<|im_start|>user
"""+message+"""<|im_end|>
<|im_start|>assistant
""","max_tokens":1000,"stop":"<|im_end|>","stream":True}
response=""
buffer=""
print("User: "+message+"\nAI: ")
for text in requests.post(url, json=body, stream=True):
#print("*** Raw String: "+str(text)+"\n***\n")
text=text.decode('utf-8')
if(text.startswith(": ping -")==False):buffer=str(buffer)+str(text)
#if(text.startswith(": ping -")): print("\n*** PING!\n***\n")
#print("\n*** Buffer: "+str(buffer)+"\n***\n")
buffer=buffer.split('"finish_reason"')
if(len(buffer)==1):
buffer="".join(buffer)
pass
if(len(buffer)==2):
part=buffer[0]+'"finish_reason": null}]}'
if(part.startswith("data: ")):part=part.replace("data: ", "")
try:
part = str(json.loads(part)["choices"][0]["text"])
print(part, end="", flush=True)
response=response+part
buffer="" # reset buffer
except:
pass
yield response
gr.ChatInterface(response,additional_inputs=[gr.Dropdown(["Alpaca", "ChatML"],value="ChatML")]).queue().launch(share=True)