|
import gradio as gr |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
|
|
|
model_name = "meta-llama/Llama-2-7b-hf" |
|
|
|
|
|
token = 'HUGGINGFACE_TOKEN' |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name, use_auth_token=token) |
|
model = AutoModelForCausalLM.from_pretrained(model_name, use_auth_token=token) |
|
|
|
|
|
def generate_response(user_input, chat_history=None): |
|
if chat_history is None: |
|
chat_history = [] |
|
|
|
|
|
input_text = user_input + ' ' |
|
|
|
|
|
inputs = tokenizer.encode(input_text, return_tensors="pt") |
|
|
|
|
|
outputs = model.generate(inputs, max_length=150, num_return_sequences=1, no_repeat_ngram_size=2, pad_token_id=tokenizer.eos_token_id) |
|
|
|
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
|
|
chat_history.append((user_input, response)) |
|
|
|
|
|
return response, chat_history |
|
|
|
|
|
def respond(user_input, chat_history=None): |
|
response, chat_history = generate_response(user_input, chat_history) |
|
return response, chat_history |
|
|
|
|
|
iface = gr.Interface( |
|
fn=respond, |
|
inputs=[ |
|
gr.Textbox(label="Your Message", placeholder="Ask me anything!", lines=2), |
|
gr.State() |
|
], |
|
outputs=[ |
|
gr.Textbox(label="Response", lines=3), |
|
gr.State() |
|
], |
|
title="Llama-2 Chatbot", |
|
description="Ask me anything, and I'll respond using Llama-2 model.", |
|
live=True |
|
) |
|
|
|
|
|
iface.launch() |
|
|