File size: 3,135 Bytes
dc54faf
c34df49
 
 
 
 
 
 
56abc69
70b610d
 
 
c34df49
 
 
 
 
 
 
 
 
 
 
 
 
 
69c15f2
c34df49
 
6e9cf31
c34df49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70b610d
dc54faf
c34df49
 
 
 
 
 
 
 
 
 
 
 
d061b72
c673c9d
 
c34df49
 
 
 
 
c673c9d
c34df49
ebaf7f4
70b610d
9838c31
 
 
 
 
70b610d
c34df49
 
 
9838c31
c34df49
9838c31
c34df49
9838c31
dc54faf
c34df49
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
import gradio as gr
from gpt4all import GPT4All
from huggingface_hub import hf_hub_download
import faiss
#from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_huggingface import HuggingFaceEmbeddings
import numpy as np
from pypdf import PdfReader
from gradio_pdf import PDF
from pdf2image import convert_from_path
from transformers import pipeline
from pathlib import Path
from langchain_chroma import Chroma

title = "Mistral-7B-Instruct-GGUF Run On CPU-Basic Free Hardware"

description = """
🔎 [Mistral AI's Mistral 7B Instruct v0.1](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1) [GGUF format model](https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF) , 4-bit quantization balanced quality gguf version, running on CPU. English Only (Also support other languages but the quality's not good). Using [GitHub - llama.cpp](https://github.com/ggerganov/llama.cpp) [GitHub - gpt4all](https://github.com/nomic-ai/gpt4all). 
🔨 Running on CPU-Basic free hardware. Suggest duplicating this space to run without a queue. 
Mistral does not support system prompt symbol (such as ```<<SYS>>```) now, input your system prompt in the first message if you need. Learn more: [Guardrailing Mistral 7B](https://docs.mistral.ai/usage/guardrailing). 
"""

"""
[Model From TheBloke/Mistral-7B-Instruct-v0.1-GGUF](https://huggingface.co/TheBloke/Mistral-7B-Instruct-v0.1-GGUF)
[Mistral-instruct-v0.1 System prompt](https://docs.mistral.ai/usage/guardrailing)
"""

model_path = "models"
model_name = "mistral-7b-instruct-v0.1.Q4_K_M.gguf"

hf_hub_download(repo_id="TheBloke/Mistral-7B-Instruct-v0.1-GGUF", filename=model_name, local_dir=model_path, local_dir_use_symlinks=False)

print("Start the model init process")
model = model = GPT4All(model_name, model_path, allow_download = False, device="cpu")


model.config["promptTemplate"] = "[INST] {0} [/INST]"
model.config["systemPrompt"] = "Tu es un assitant et tu dois répondre en français"
model._is_chat_session_activated = False

max_new_tokens = 2048

model_kwargs = {'device': 'cpu'}
encode_kwargs = {'normalize_embeddings': False}
embeddings = HuggingFaceEmbeddings(
    
    model_kwargs=model_kwargs,
    encode_kwargs=encode_kwargs
)

chunk_size = 2048

# creating a pdf reader object



print("Finish the model init process")

def extract_text(file):

    
    reader = PdfReader(file)

    text = []
    for p in np.arange(0, len(reader.pages), 1):
        page = reader.pages[int(p)]

        # extracting text from page
        text.append(page.extract_text())

    text = ' '.join(text)

    return text

def summarise(text):

    chunks = [text[i:i + chunk_size] for i in range(0, len(text), chunk_size)]
    
    return print(len(len(chunks)))

with gr.Blocks() as demo:
    file_input = gr.File(label="Upload a PDF file")
    text_output = gr.Textbox(label="Extracted Text")
    summary_output = gr.Textbox(label="Summary")
    file_input.upload(extract_text, inputs=file_input, outputs=text_output)
    text_output.change(summarise,text_output,summary_output)
    

if __name__ == "__main__":
    demo.queue(max_size=3).launch()