elitecardpro commited on
Commit
f542921
·
verified ·
1 Parent(s): 3a6a3ea
Files changed (1) hide show
  1. app.py +49 -0
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
+
4
+ # Load the model and tokenizer
5
+ @st.cache_resource
6
+ def load_model():
7
+ tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-chat-hf")
8
+ model = AutoModelForCausalLM.from_pretrained(
9
+ "meta-llama/Llama-2-7b-chat-hf",
10
+ device_map="auto",
11
+ torch_dtype="auto"
12
+ )
13
+ return model, tokenizer
14
+
15
+ # Initialize
16
+ st.title("LLaMA-2 Chatbot")
17
+ st.sidebar.title("Configuration")
18
+
19
+ # Input parameters
20
+ max_tokens = st.sidebar.slider("Max Tokens", 50, 1000, 256)
21
+ temperature = st.sidebar.slider("Temperature", 0.1, 1.5, 0.7)
22
+ model, tokenizer = load_model()
23
+
24
+ # Chat interface
25
+ if "messages" not in st.session_state:
26
+ st.session_state.messages = []
27
+
28
+ user_input = st.text_input("Your message:", key="input")
29
+ if st.button("Send"):
30
+ if user_input:
31
+ st.session_state.messages.append({"role": "user", "content": user_input})
32
+
33
+ inputs = tokenizer(
34
+ user_input, return_tensors="pt", truncation=True
35
+ ).to(model.device)
36
+ outputs = model.generate(
37
+ inputs.input_ids,
38
+ max_length=max_tokens,
39
+ temperature=temperature,
40
+ do_sample=True,
41
+ )
42
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
43
+
44
+ st.session_state.messages.append({"role": "assistant", "content": response})
45
+
46
+ # Display the conversation
47
+ for message in st.session_state.messages:
48
+ role = "User" if message["role"] == "user" else "Assistant"
49
+ st.write(f"**{role}:** {message['content']}")