Spaces:
Sleeping
Sleeping
File size: 2,617 Bytes
7df99d8 4043b0f 8191a3f 4043b0f 7df99d8 4043b0f 9eeda0c 3a27847 4043b0f 9eeda0c 4043b0f 7df99d8 4043b0f 7df99d8 a5ac299 4c798e0 770f7e9 9e99164 4043b0f 7da5893 4043b0f e40d690 7df99d8 4043b0f 11f2b0f 4043b0f f54e5c5 4043b0f 11f2b0f 4043b0f 11f2b0f 4043b0f 7df99d8 4043b0f 7df99d8 4043b0f f54e5c5 |
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 99 |
# Think Paraguayo
import os
import random
import time
os.system("wget https://huggingface.co/thinkPy/gua-a_v0.2-dpo_mistral-7b_GGUF/resolve/main/gua-a_v0.2-dpo_mistral-7b_q4_K_M.gguf -O model.gguf")
from llama_cpp import Llama
import gradio as gr
from ragatouille import RAGPretrainedModel
from llama_index.core import Document, SimpleDirectoryReader
from llama_index.core.node_parser import SentenceSplitter
max_seq_length = 256
prompt = """Responde a preguntas de forma clara, amable, concisa y solamente en el lenguaje español, utiliza el siguiente contexto.
Contexto
-------------------------
Eres gua-a un modelo de lenguaje entrenado para responder preguntas sobre la cultura guaraní.
{}
-------------------------
### Pregunta:
{}
### Respuesta:
{}"""
llm = Llama(model_path="model.gguf",
n_ctx=max_seq_length,
n_threads=2)
DOC_PATH = "/home/user/app/index"
RAG = RAGPretrainedModel.from_pretrained("AdrienB134/ColBERTv2.0-spanish-mmarcoES")
RAG = RAG.from_index(DOC_PATH, n_gpu=None)
RAG.search("init", None, k=1)
def reformat_rag(results_rag):
if results_rag is not None:
return [result["content"] for result in results_rag]
else:
return [""]
def chat_stream_completion(message, history):
context = reformat_rag(RAG.search(message, None, k=1))
context = " \n ".join(context)
full_prompt = prompt.format(context,message,"")
print(full_prompt)
response = llm.create_completion(
prompt=full_prompt,
temperature=0.5,
max_tokens=max_seq_length,
stream=True
)
message_repl = ""
for chunk in response:
if len(chunk['choices'][0]["text"]) != 0:
message_repl = message_repl + chunk['choices'][0]["text"]
yield message_repl
css = """
h1 {
font-size: 32px;
text-align: center;
}
h2 {
text-align: center;
}
img {
height: 750px; /* Reducing the image height */
}
"""
def launcher():
with gr.Blocks(css=css) as demo:
gr.Markdown("# Think Paraguayo")
gr.Markdown("## Conoce la cultura guaraní.")
with gr.Row(variant='panel'):
with gr.Column(scale=1):
gr.Image(value="think_paraguayo.jpeg", type="filepath", label="")
with gr.Column(scale=1):
chatbot = gr.ChatInterface(
fn=chat_stream_completion,
retry_btn = None,
stop_btn = None,
undo_btn = None
).queue()
demo.launch()
if __name__ == "__main__":
launcher() |