llm / app-old.py
Robzy's picture
multi chatbot
fdae8b1
raw
history blame
2.49 kB
from llama_cpp import Llama
import gradio as gr
llm = Llama.from_pretrained(
repo_id="Robzy/Llama-3.2-1B-Instruct-Finetuned-q4_k_m",
filename="unsloth.Q4_K_M.gguf",
)
llm2 = Llama.from_pretrained(
repo_id="Robzy/Llama-3.2-1B-Instruct-Finetuned-16bit",
filename="unsloth.F16.gguf",
)
def predict(message, history):
messages = [{"role": "system", "content": "You are a helpful assistant."}]
for user_message, bot_message in history:
if user_message:
messages.append({"role": "user", "content": user_message})
if bot_message:
messages.append({"role": "assistant", "content": bot_message})
messages.append({"role": "user", "content": message})
response = ""
for chunk in llm.create_chat_completion(
stream=True,
messages=messages,
):
part = chunk["choices"][0]["delta"].get("content", None)
if part:
response += part
yield response
def predict2(message, history):
messages = [{"role": "system", "content": "You are a helpful assistant."}]
for user_message, bot_message in history:
if user_message:
messages.append({"role": "user", "content": user_message})
if bot_message:
messages.append({"role": "assistant", "content": bot_message})
messages.append({"role": "user", "content": message})
response = ""
for chunk in llm2.create_chat_completion(
stream=True,
messages=messages,
):
part = chunk["choices"][0]["delta"].get("content", None)
if part:
response += part
yield response
chat1 = gr.ChatInterface(predict, title="4-bit")
chat2 = gr.ChatInterface(predict2, title="16-bit")
chat3 = gr.ChatInterface(predict2, title="16-bit")
def update_chat(value):
if value == "4-bit":
chat1.render(visible=True)
chat2.render(visible=False)
chat3.render(visible=False)
elif value == "16-bit":
chat1.render(visible=False)
chat2.render(visible=True)
chat3.render(visible=False)
else:
chat1.render(visible=False)
chat2.render(visible=False)
chat3.render(visible=True)
with gr.Blocks() as demo:
gr.Markdown("# Quantized Llama Comparison for Code Generation")
dropdown = gr.Dropdown(["4-bit", "16-bit", "32-bit"], label="Choose model version", value="4-bit")
dropdown.change(fn=update_chat, inputs=dropdown, outputs=[chat1, chat2, chat3])
demo.launch()