File size: 1,688 Bytes
06cf9c4
31cf808
ed5c4cc
 
 
06cf9c4
ed5c4cc
06cf9c4
ed5c4cc
1ad9711
1c7a4e8
5f6c3f6
06cf9c4
bd2b1c4
a14b41a
3402c51
88d45e0
b0e95e2
a506243
d77d9c9
a14b41a
d77d9c9
4ac82e2
a14b41a
2c5e4eb
7856803
dc7e243
31cf808
2bde560
4d3e3ef
 
f01cc65
 
 
2bde560
428c8e6
00b813c
35951e7
2ee138e
 
35951e7
 
 
 
 
ec04b94
ef70bbb
06cf9c4
117600f
 
3c6b95f
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
import gradio as gr
import copy
import time
import ctypes #to run on C api directly 
import llama_cpp
from llama_cpp import Llama
from huggingface_hub import hf_hub_download #load from huggingfaces 


llm = Llama(model_path= hf_hub_download(repo_id="TheBloke/OpenAssistant-Llama2-13B-Orca-v2-8K-3166-GGML", filename="openassistant-llama2-13b-orca-v2-8k-3166.ggmlv3.q6_K.bin"), n_ctx=2048) #download model from hf/ n_ctx=2048 for high ccontext length

history = []

pre_prompt = " The user and the AI are having a conversation : "

def generate_text(input_text, history):
    print("history ",history)
    print("input ", input_text)
    temp =""
    if history == []:
        input_text_with_history = f"{pre_prompt}"+ "\n" + f"Q: {input_text} " + "\n" +" A:"
    else:
        input_text_with_history = f"{history[-1][1]}"+ "\n"
        input_text_with_history += f"Q: {input_text}" + "\n" +" A:"
    print("new input", input_text_with_history)
    output = llm(input_text_with_history, max_tokens=1024, stop=["Q:", "\n"], stream=True)
    for out in output:
     stream = copy.deepcopy(out)
     print(stream["choices"][0]["text"])
     temp += stream["choices"][0]["text"]
     yield temp


    history =["init",input_text_with_history]
        


demo = gr.ChatInterface(generate_text,
    title="LLM on CPU",
    description="Running LLM with https://github.com/abetlen/llama-cpp-python. btw the text streaming thing was the hardest thing to impliment",
    examples=["Hello", "Am I cool?", "Are tomatoes vegetables?"],
    cache_examples=True,
    retry_btn=None,
    undo_btn="Delete Previous",
    clear_btn="Clear",)
demo.queue(concurrency_count=1, max_size=5)
demo.launch()