anktechsol commited on
Commit
6b13b6d
·
verified ·
1 Parent(s): 931910d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -56
app.py CHANGED
@@ -1,70 +1,79 @@
1
  import gradio as gr
2
- from huggingface_hub import InferenceClient
 
3
 
 
 
 
 
 
 
 
 
4
 
5
- def respond(
6
- message,
7
- history: list[dict[str, str]],
8
- system_message,
9
- max_tokens,
10
- temperature,
11
- top_p,
12
- hf_token: gr.OAuthToken,
13
- ):
14
  """
15
- For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
 
16
  """
17
- client = InferenceClient(token=hf_token.token, model="openai/gpt-oss-20b")
18
-
19
- messages = [{"role": "system", "content": system_message}]
20
-
21
- messages.extend(history)
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
- choices = message.choices
35
- token = ""
36
- if len(choices) and choices[0].delta.content:
37
- token = choices[0].delta.content
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
- response += token
40
- yield response
41
-
42
-
43
- """
44
- For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
45
- """
46
  chatbot = gr.ChatInterface(
47
  respond,
48
- type="messages",
 
 
 
 
 
 
 
 
49
  additional_inputs=[
50
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
51
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
52
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
53
- gr.Slider(
54
- minimum=0.1,
55
- maximum=1.0,
56
- value=0.95,
57
- step=0.05,
58
- label="Top-p (nucleus sampling)",
59
  ),
 
 
 
60
  ],
 
61
  )
62
 
63
- with gr.Blocks() as demo:
64
- with gr.Sidebar():
65
- gr.LoginButton()
66
- chatbot.render()
67
-
68
-
69
  if __name__ == "__main__":
70
- demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM
3
+ import torch
4
 
5
+ # Load Anki-2.5 model
6
+ model_name = "anktechsol/anki-2.5"
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
+ model = AutoModelForCausalLM.from_pretrained(
9
+ model_name,
10
+ torch_dtype=torch.float32,
11
+ device_map="auto"
12
+ )
13
 
14
+ def respond(message, history, system_message, max_tokens, temperature, top_p):
 
 
 
 
 
 
 
 
15
  """
16
+ Educational Tutor for Indian Students powered by Anki-2.5
17
+ Helps with homework, exam prep, and learning in Indian languages
18
  """
19
+ # Construct conversation with system message
20
+ conversation = [{"role": "system", "content": system_message}]
21
+
22
+ # Add history
23
+ for msg in history:
24
+ if isinstance(msg, dict):
25
+ conversation.append(msg)
26
+ elif len(msg) == 2:
27
+ conversation.append({"role": "user", "content": msg[0]})
28
+ conversation.append({"role": "assistant", "content": msg[1]})
29
+
30
+ # Add current message
31
+ conversation.append({"role": "user", "content": message})
32
+
33
+ # Generate response
34
+ inputs = tokenizer.apply_chat_template(
35
+ conversation,
36
+ tokenize=True,
37
+ add_generation_prompt=True,
38
+ return_tensors="pt"
39
+ ).to(model.device)
40
+
41
+ with torch.no_grad():
42
+ outputs = model.generate(
43
+ inputs,
44
+ max_new_tokens=max_tokens,
45
+ temperature=temperature,
46
+ top_p=top_p,
47
+ do_sample=True,
48
+ pad_token_id=tokenizer.eos_token_id
49
+ )
50
+
51
+ response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
52
+ return response
53
 
54
+ # Create ChatInterface focused on education
 
 
 
 
 
 
55
  chatbot = gr.ChatInterface(
56
  respond,
57
+ title="🎓 Indian Education Tutor - Powered by Anki-2.5",
58
+ description="Get help with homework, exam preparation, and learning - in Hindi, English, and other Indian languages. Ask questions about Math, Science, History, and more!",
59
+ examples=[
60
+ ["मुझे पाइथागोरस प्रमेय समझाओ"],
61
+ ["Explain photosynthesis in simple terms"],
62
+ ["ভারতের স্বাধীনতা আন্দোলন সম্পর্ভে বলুন"],
63
+ ["Help me solve this quadratic equation: x^2 + 5x + 6 = 0"],
64
+ ["நான் கட்டுரை எழுத எப்படி வேணும்?"],
65
+ ],
66
  additional_inputs=[
67
+ gr.Textbox(
68
+ value="You are a patient and knowledgeable educational tutor for Indian students. You can explain concepts in Hindi, English, and other Indian languages. You help with homework, exam preparation, and make learning engaging. Always provide clear, step-by-step explanations.",
69
+ label="System Message"
 
 
 
 
 
 
70
  ),
71
+ gr.Slider(minimum=50, maximum=1024, value=512, step=1, label="Max Tokens"),
72
+ gr.Slider(minimum=0.1, maximum=1.5, value=0.7, step=0.1, label="Temperature"),
73
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p"),
74
  ],
75
+ theme=gr.themes.Soft(),
76
  )
77
 
 
 
 
 
 
 
78
  if __name__ == "__main__":
79
+ chatbot.launch()