|
|
|
from ctransformers import AutoModelForCausalLM |
|
import gradio as gr |
|
|
|
greety = """ |
|
This is streamed version of [bineric/NorskGPT-Mistral-7b-GGUF](https://huggingface.co/bineric/NorskGPT-Mistral-7b-GGUF)\n |
|
This space is running on CPU, so inference will be slow! |
|
""" |
|
|
|
llm = AutoModelForCausalLM.from_pretrained("bineric/NorskGPT-Mistral-7b-GGUF", model_file="NorskGPT-Mistral-7b-q4_K_M.gguf", |
|
model_type='mistral', |
|
max_new_tokens = 1024, |
|
threads = 3, |
|
stop=['</s>'] |
|
) |
|
|
|
def stream(prompt, UL): |
|
system_prompt = 'Du er NorskGPT - En hjelpsom norsk AI-assistent utviklet av Bineric AI. Besvar spørsmålene under så godt du kan. Bruk god tid på gramatikken. Svar med maks 1 paragraf.' |
|
E_INST = " " |
|
system, user, assistant = "###Instruction", "###Input", "###Response" |
|
prompt = f"{system}\n{system_prompt}{E_INST}\n{user}\n{prompt.strip()}{E_INST}\n{assistant}\n" |
|
|
|
output = "" |
|
for response in llm(prompt, stream=True): |
|
output += response |
|
yield output |
|
return output |
|
|
|
|
|
|
|
chat_interface = gr.ChatInterface( |
|
fn=stream, |
|
|
|
|
|
|
|
|
|
|
|
stop_btn=None, |
|
examples=[ |
|
["Hva er sentimentet i denne meldingen, svar kun med ett av disse ordene [Positivt, Negativt, Nøytralt]? 'Jeg hadde en fantastisk dag på Hovedøya'."], |
|
["Skriv en kort tweet om NorskGPT"] |
|
], |
|
) |
|
|
|
with gr.Blocks() as demo: |
|
gr.HTML("<h1><center>🇳🇴NorskGPT-Mistral-7b-GGUF🇳🇴<h1><center>") |
|
gr.DuplicateButton(value="Duplicate Space for private use", elem_id="duplicate-button") |
|
chat_interface.render() |
|
gr.Markdown(greety) |
|
|
|
if __name__ == "__main__": |
|
demo.queue(max_size=10).launch() |