Spaces:
Sleeping
Sleeping
| import os | |
| import gradio as gr | |
| import copy | |
| import time | |
| import llama_cpp | |
| from llama_cpp import Llama | |
| from huggingface_hub import hf_hub_download | |
| saiga = Llama( | |
| model_path=hf_hub_download( | |
| repo_id="FinancialSupport/saiga-7b-gguf", | |
| filename="saiga-7b.Q4_K_M.gguf", | |
| ), | |
| n_ctx=4086, | |
| ) | |
| dante = Llama( | |
| model_path=hf_hub_download( | |
| repo_id="FinancialSupport/saiga-7b-gguf", | |
| filename="saiga-7b-dante-qlora.Q4_K_M.gguf", | |
| ), | |
| n_ctx=4086, | |
| ) | |
| history = [] | |
| def generate_text(message, history): | |
| temp = "" | |
| input_prompt = "Conversazione tra umano ed un assistente AI di nome saiga-7b\n" | |
| for interaction in history: | |
| input_prompt += "[|Umano|] " + interaction[0] + "\n" | |
| input_prompt += "[|Assistente|]" + interaction[1] | |
| input_prompt += "[|Umano|] " + message + "\n[|Assistente|]" | |
| print(input_prompt) | |
| output = saiga(input_prompt, | |
| temperature= 0.15, | |
| top_p= 0.1, | |
| top_k= 40, | |
| repeat_penalty= 1.1, | |
| max_tokens= 1024, | |
| stop= [ | |
| "[|Umano|]", | |
| "[|Assistente|]", | |
| ], | |
| stream= True) | |
| for out in output: | |
| stream = copy.deepcopy(out) | |
| temp += stream["choices"][0]["text"] | |
| yield temp | |
| history = ["init", input_prompt] | |
| def generate_text_Dante(message, history): | |
| temp = "" | |
| input_prompt = "" | |
| for interaction in history: | |
| input_prompt += "[|Umano|] " + interaction[0] + "\n" | |
| input_prompt += "[|Assistente|]" + interaction[1] | |
| input_prompt += "[|Umano|] " + message + "\n[|Assistente|]" | |
| print(input_prompt) | |
| output = dante(input_prompt, | |
| temperature= 0.15, | |
| top_p= 0.1, | |
| top_k= 40, | |
| repeat_penalty= 1.1, | |
| max_tokens= 1024, | |
| stop= [ | |
| "[|Umano|]", | |
| "[|Assistente|]", | |
| ], | |
| stream= True) | |
| for out in output: | |
| stream = copy.deepcopy(out) | |
| temp += stream["choices"][0]["text"] | |
| yield temp | |
| history = ["init", input_prompt] | |
| with gr.Blocks() as demo: | |
| # with gr.Tab('saiga'): | |
| # gr.ChatInterface( | |
| # generate_text, | |
| # title="saiga-7b running on CPU (quantized Q4_K)", | |
| # description="This is a quantized version of saiga-7b running on CPU (very slow). It is less powerful than the original version, but it can even run on the free tier of huggingface.", | |
| # examples=[ | |
| # "Dammi 3 idee di ricette che posso fare con i pistacchi", | |
| # "Prepara un piano di esercizi da poter fare a casa", | |
| # "Scrivi una poesia sulla nuova AI chiamata cerbero-7b" | |
| # ], | |
| # cache_examples=False, | |
| # retry_btn=None, | |
| # undo_btn="Delete Previous", | |
| # clear_btn="Clear", | |
| # ) | |
| with gr.Tab('Dante'): | |
| gr.ChatInterface( | |
| generate_text_Dante, | |
| title="saigaDante-7b running on CPU (quantized Q4_K)", | |
| description="This is a quantized version of saiga-7b with Dante LoRA attached running on CPU (very slow).", | |
| examples=[ | |
| "Traduci in volgare fiorentino: tanto va la gatta al lardo che ci lascia lo zampino", | |
| "Traduci in volgare fiorentino: narrami come cucinare la pasta alla carbonara vegana.", | |
| "Traduci in volgare fiorentino: raccontami una fiaba su Firenze" | |
| ], | |
| cache_examples=False, | |
| retry_btn=None, | |
| undo_btn="Delete Previous", | |
| clear_btn="Clear", | |
| ) | |
| demo.queue(concurrency_count=1, max_size=5) | |
| demo.launch() |