Levente22 commited on
Commit
e0d870d
·
verified ·
1 Parent(s): a47077e

Test file – initial commit.

Browse files
Files changed (1) hide show
  1. app.py +32 -57
app.py CHANGED
@@ -1,70 +1,45 @@
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
+ import requests
3
+
4
+ SYSTEM_PROMPT = """
5
+ Te egy magyar nyelvű házi feladat-segítő AI vagy.
6
+ Mindig egyszerűen, érthetően, lépésenként magyarázol.
7
+ Matematika, történelem, fizika, kémia, irodalom – bármit elmagyarázol.
8
+ Ha a felhasználó képet tölt fel, először írd le, mi van rajta, majd oldd meg a feladatot.
9
+ Soha ne írj túl hosszú válaszokat. A megoldást mindig lépésenként add meg.
10
+ """
11
 
12
+ API_URL = "https://api-inference.huggingface.co/models/google/gemma-2b-it"
13
+ HEADERS = {"Authorization": f"Bearer {gr.get_env('HF_TOKEN')}"}
 
 
 
 
 
 
 
 
 
 
 
14
 
15
+ def solve(text, image):
16
+ prompt = SYSTEM_PROMPT + "\nFeladat:\n" + text
17
 
18
+ if image:
19
+ prompt += "\n(Kép csatolva, értelmezd és oldd meg.)"
20
 
21
+ payload = {
22
+ "inputs": prompt
23
+ }
24
 
25
+ response = requests.post(API_URL, headers=HEADERS, json=payload)
26
 
27
+ try:
28
+ output = response.json()[0]["generated_text"]
29
+ except:
30
+ output = "Hiba történt vagy túl hosszú volt a kérés."
 
 
 
 
 
 
 
31
 
32
+ return output
 
33
 
34
+ with gr.Blocks() as demo:
35
+ gr.Markdown("# Magyar Házi Feladat Segítő AI")
36
 
37
+ text = gr.Textbox(label="Írd be a feladatot vagy kérdést")
38
+ image = gr.Image(label="Kép (opcionális)", type="filepath")
39
+ btn = gr.Button("Megoldás kérése")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
+ output = gr.Textbox(label="Megoldás")
 
 
 
42
 
43
+ btn.click(fn=solve, inputs=[text, image], outputs=output)
44
 
45
+ demo.launch()