ALX / app.py
Mikecode123's picture
Update app.py
943bfe3 verified
Raw
History Blame Contribute Delete
1.48 kB
import os
import gradio as gr
from llama_cpp import Llama
from huggingface_hub import hf_hub_download
# =========================
# LOAD MODEL
# =========================
model_path = hf_hub_download(
repo_id="Mikecode123/ALX",
filename="qwen2-1_5b-instruct-q4_0.gguf",
token=os.getenv("HF_TOKEN")
)
llm = Llama(
model_path=model_path,
n_ctx=2048,
n_threads=2
)
# =========================
# CHAT FUNCTION (FIXED)
# =========================
def chat(message, history):
# convert Gradio tuple history -> messages format
messages = []
for user, bot in history:
messages.append({"role": "user", "content": user})
messages.append({"role": "assistant", "content": bot})
messages.append({"role": "user", "content": message})
output = llm.create_chat_completion(
messages=messages,
max_tokens=300,
temperature=0.7
)
reply = output["choices"][0]["message"]["content"]
history.append((message, reply))
return history, history
# =========================
# UI (FIXED GRADIO 4)
# =========================
with gr.Blocks() as demo:
gr.Markdown("# 🧠 Living Legend AI Chat")
chatbot = gr.Chatbot()
msg = gr.Textbox()
state = gr.State([])
def respond(message, history):
new_history, updated_state = chat(message, history)
return "", new_history, updated_state
msg.submit(respond, [msg, state], [msg, chatbot, state])
demo.launch()