CaptMetal commited on
Commit
d82cf78
·
verified ·
1 Parent(s): 416bd0a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -43
app.py CHANGED
@@ -1,56 +1,28 @@
1
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
2
  import gradio as gr
3
- import os
4
 
5
- # 1. Ensure tokenizer exists (Mistral-7B compatible)
6
- if not os.path.exists("BuddAi/tokenizer.json"):
7
- os.makedirs("BuddAi", exist_ok=True)
8
- tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
9
- tokenizer.save_pretrained("BuddAi")
10
- print("Saved tokenizer files to BuddAi/")
11
-
12
- # 2. Load model and tokenizer
13
- model_id = "BuddAi" # Local path (or your HF repo "CaptMetal/BuddAi" if uploaded)
14
  tokenizer = AutoTokenizer.from_pretrained(model_id)
15
- model = AutoModelForCausalLM.from_pretrained(model_id)
 
 
 
 
 
16
 
17
- # 3. Create pipeline with proper chat template
18
- tokenizer.chat_template = "{% for message in messages %}{{message['content']}}{% if not loop.last %}{{' '}}{% endif %}{% endfor %}"
19
  chatbot = pipeline(
20
  "text-generation",
21
  model=model,
22
  tokenizer=tokenizer,
23
- device_map="auto" # Uses GPU if available
 
24
  )
25
 
26
- # 4. Improved chat function
27
  def respond(message, history):
28
- # Format conversation history
29
- formatted_history = ""
30
- for user_msg, bot_msg in history:
31
- formatted_history += f"<|user|>{user_msg}</s><|assistant|>{bot_msg}</s>"
32
-
33
- # Current message
34
- prompt = f"{formatted_history}<|user|>{message}</s><|assistant|>"
35
-
36
- # Generate response
37
- outputs = chatbot(
38
- prompt,
39
- max_new_tokens=256,
40
- temperature=0.7,
41
- do_sample=True,
42
- pad_token_id=tokenizer.eos_token_id
43
- )
44
-
45
- # Extract and clean response
46
- full_text = outputs[0]["generated_text"]
47
- response = full_text[len(prompt):].split("</s>")[0].strip()
48
- return response
49
 
50
- # 5. Launch Gradio interface
51
- gr.ChatInterface(
52
- respond,
53
- title="BuddAI - Mistral-7B Chatbot",
54
- description="A conversational AI friend powered by Mistral-7B",
55
- examples=["How are you today?", "Tell me a joke!"]
56
- ).launch(server_port=7860, share=True)
 
1
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
2
  import gradio as gr
 
3
 
4
+ # Load OpenHermes
5
+ model_id = "BuddAi" # Local folder
 
 
 
 
 
 
 
6
  tokenizer = AutoTokenizer.from_pretrained(model_id)
7
+ model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
8
+
9
+ # Set chat template (OpenHermes-specific)
10
+ tokenizer.chat_template = """{% for message in messages %}
11
+ {{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>'}}
12
+ {% endfor %}"""
13
 
 
 
14
  chatbot = pipeline(
15
  "text-generation",
16
  model=model,
17
  tokenizer=tokenizer,
18
+ temperature=0.7,
19
+ max_new_tokens=200
20
  )
21
 
 
22
  def respond(message, history):
23
+ messages = [{"role": "user", "content": message}]
24
+ prompt = tokenizer.apply_chat_template(messages, tokenize=False)
25
+ outputs = chatbot(prompt)
26
+ return outputs[0]["generated_text"][len(prompt):].split("<|im_end|>")[0]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
+ gr.ChatInterface(respond).launch()