Spaces:
Running
Running
import gradio as gr | |
from gradio_client import Client | |
from huggingface_hub import get_token, InferenceClient | |
from llama_cpp import Llama | |
llm = Llama.from_pretrained( | |
repo_id="prithivMLmods/SmolLM2-135M-Instruct-GGUF", | |
filename="SmolLM2-135M-Instruct.Q5_K_M.gguf", | |
verbose=False, | |
) | |
def generate( | |
user_prompt: str, | |
system_prompt: str = "You are a helpful assistant.", | |
max_tokens: int = 4000, | |
temperature: float = 0.2, | |
top_p: float = 0.95, | |
top_k: int = 40, | |
): | |
messages = [ | |
{"role": "system", "content": system_prompt}, | |
{"role": "user", "content": user_prompt}, | |
] | |
return llm.create_chat_completion( | |
messages, | |
max_tokens=max_tokens, | |
temperature=temperature, | |
top_p=top_p, | |
top_k=top_k, | |
) | |
with gr.Blocks() as demo: | |
gr.Markdown("""# RAG - generate | |
Generate a response to a query using a [HuggingFaceTB/SmolLM2-360M-Instruct and llama-cpp-python](https://huggingface.co./HuggingFaceTB/SmolLM2-360M-Instruct-GGUF?library=llama-cpp-python). | |
Part of [ai-blueprint](https://github.com/huggingface/ai-blueprint) - a blueprint for AI development, focusing on applied examples of RAG, information extraction, analysis and fine-tuning in the age of LLMs and agents.""") | |
with gr.Row(): | |
system_prompt = gr.Textbox(label="System prompt", lines=3, value="You are a helpful assistant.") | |
user_prompt = gr.Textbox(label="Query", lines=3) | |
with gr.Accordion("kwargs"): | |
with gr.Row(variant="panel"): | |
max_tokens = gr.Number(label="Max tokens", value=512) | |
temperature = gr.Number(label="Temperature", value=0.2) | |
top_p = gr.Number(label="Top p", value=0.95) | |
top_k = gr.Number(label="Top k", value=40) | |
submit_btn = gr.Button("Submit") | |
response_output = gr.Textbox(label="Response", lines=10) | |
documents_output = gr.Dataframe( | |
label="Documents", headers=["chunk", "url", "distance", "rank"], wrap=True | |
) | |
submit_btn.click( | |
fn=generate, | |
inputs=[ | |
user_prompt, | |
system_prompt, | |
max_tokens, | |
temperature, | |
top_p, | |
top_k, | |
], | |
outputs=[response_output], | |
) | |
demo.launch() | |