Keira James commited on
Commit
bcf9fc0
Β·
1 Parent(s): be10833

switch to gradio

Browse files
Files changed (3) hide show
  1. README.md +2 -2
  2. app.py +58 -27
  3. requirements.txt +1 -0
README.md CHANGED
@@ -3,8 +3,8 @@ title: "CodeMentor"
3
  emoji: "😁"
4
  colorFrom: "blue"
5
  colorTo: "red"
6
- sdk: "streamlit"
7
- sdk_version: "1.42.0"
8
  app_file: app.py
9
  pinned: true
10
  ---
 
3
  emoji: "😁"
4
  colorFrom: "blue"
5
  colorTo: "red"
6
+ sdk: "gradio"
7
+ sdk_version: "5.0.1"
8
  app_file: app.py
9
  pinned: true
10
  ---
app.py CHANGED
@@ -1,28 +1,59 @@
1
- import streamlit as st
2
- from transformers import AutoModelForCausalLM, AutoTokenizer
3
-
4
- # Load pre-trained model and tokenizer from Hugging Face
5
- model_name = "gpt2" # You can use other models like "gpt-neo", "gpt-3", etc.
6
- model = AutoModelForCausalLM.from_pretrained(model_name)
7
- tokenizer = AutoTokenizer.from_pretrained(model_name)
8
-
9
- # Title of the app
10
- st.title("LLM Chatbot")
11
-
12
- # User input for chatbot
13
- user_input = st.text_input("You: ", "")
14
-
15
- # Function to generate the response using the model
16
- def generate_response(prompt):
17
- inputs = tokenizer(prompt, return_tensors="pt")
18
- outputs = model.generate(inputs.input_ids, max_length=150, num_return_sequences=1)
19
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
20
- return response
21
-
22
- if user_input:
23
- # Generate a response from the model
24
- response = generate_response(user_input)
25
-
26
- # Display only the bot's response
27
- st.write(f"Bot: {response}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
 
 
1
+ import gradio as gr
2
+ from huggingface_hub import InferenceClient
3
+
4
+ client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
5
+
6
+
7
+ def respond(
8
+ message,
9
+ history: list[tuple[str, str]],
10
+ system_message,
11
+ max_tokens,
12
+ temperature,
13
+ top_p,
14
+ ):
15
+ messages = [{"role": "system", "content": system_message}]
16
+
17
+ for val in history:
18
+ if val[0]:
19
+ messages.append({"role": "user", "content": val[0]})
20
+ if val[1]:
21
+ messages.append({"role": "assistant", "content": val[1]})
22
+
23
+ messages.append({"role": "user", "content": message})
24
+
25
+ response = ""
26
+
27
+ for message in client.chat_completion(
28
+ messages,
29
+ max_tokens=max_tokens,
30
+ stream=True,
31
+ temperature=temperature,
32
+ top_p=top_p,
33
+ ):
34
+ token = message.choices[0].delta.content
35
+
36
+ response += token
37
+ yield response
38
+
39
+
40
+ demo = gr.ChatInterface(
41
+ respond,
42
+ additional_inputs=[
43
+ gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
44
+ # gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
45
+ # gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
46
+ # gr.Slider(
47
+ # minimum=0.1,
48
+ # maximum=1.0,
49
+ # value=0.95,
50
+ # step=0.05,
51
+ # label="Top-p (nucleus sampling)",
52
+ # ),
53
+ ],
54
+ )
55
+
56
+
57
+ if __name__ == "__main__":
58
+ demo.launch()
59
 
requirements.txt CHANGED
@@ -1,3 +1,4 @@
1
  streamlit
2
  transformers==4.31.0
3
  torch
 
 
1
  streamlit
2
  transformers==4.31.0
3
  torch
4
+ huggingface_hub==0.25.2