ianeksdi commited on
Commit
3a9a6ab
·
verified ·
1 Parent(s): 2e6435e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -8
app.py CHANGED
@@ -1,8 +1,10 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import requests
 
4
 
5
  client = InferenceClient("mistralai/Mistral-Nemo-Instruct-2407")
 
6
 
7
  def get_internet_data(query: str) -> str:
8
  """
@@ -20,7 +22,6 @@ def get_internet_data(query: str) -> str:
20
  response = requests.get(url, params=params, timeout=5)
21
  response.raise_for_status()
22
  data = response.json()
23
- # Retrieve a summary from the API's result
24
  result = data.get("AbstractText", "")
25
  if not result:
26
  result = "Wala koy nakuha nga impormasyon gikan sa internet."
@@ -28,24 +29,43 @@ def get_internet_data(query: str) -> str:
28
  result = "Naay problema sa pagkuha sa impormasyon gikan sa internet."
29
  return result
30
 
 
 
 
 
 
 
 
 
 
 
 
31
  def respond(message, history: list[tuple[str, str]]):
32
- system_message = "Ikaw usa ka buotan nga Chatbot. Tubaga lang sa binisaya, ug ayaw gamita ang english nga pinulungan. Gamita ang pinakabag-ong impormasyon gikan sa internet kung kinahanglan."
 
 
 
 
33
  max_tokens = 4096
34
  temperature = 0.6
35
  top_p = 0.95
36
 
37
  messages = [{"role": "system", "content": system_message}]
38
  for user_text, assistant_text in history:
39
- # Ensure alternating roles: user then assistant
40
  if user_text:
41
  messages.append({"role": "user", "content": user_text})
42
  if assistant_text:
43
  messages.append({"role": "assistant", "content": assistant_text})
44
 
45
- # Get search results based on the user's query.
46
  search_result = get_internet_data(message)
47
- # Enrich the user message with the search result.
48
- enriched_message = f"{message}\n\nMga resulta gikan sa internet: {search_result}"
 
 
 
 
 
49
  messages.append({"role": "user", "content": enriched_message})
50
 
51
  response = ""
@@ -61,11 +81,9 @@ def respond(message, history: list[tuple[str, str]]):
61
  if not token:
62
  break
63
  response += token
64
- # Yield only if new content was added.
65
  if response != previous_response:
66
  yield response
67
  previous_response = response
68
- # Optional: break if the response is too long.
69
  if len(response) > 3000:
70
  break
71
 
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
  import requests
4
+ from googletrans import Translator
5
 
6
  client = InferenceClient("mistralai/Mistral-Nemo-Instruct-2407")
7
+ translator = Translator()
8
 
9
  def get_internet_data(query: str) -> str:
10
  """
 
22
  response = requests.get(url, params=params, timeout=5)
23
  response.raise_for_status()
24
  data = response.json()
 
25
  result = data.get("AbstractText", "")
26
  if not result:
27
  result = "Wala koy nakuha nga impormasyon gikan sa internet."
 
29
  result = "Naay problema sa pagkuha sa impormasyon gikan sa internet."
30
  return result
31
 
32
+ def translate_to_bisaya(text: str) -> str:
33
+ """
34
+ Translates the given text to Bisaya (Cebuano) using googletrans.
35
+ """
36
+ try:
37
+ # 'ceb' is the ISO 639-3 code for Cebuano
38
+ translation = translator.translate(text, dest='ceb')
39
+ return translation.text
40
+ except Exception:
41
+ return text
42
+
43
  def respond(message, history: list[tuple[str, str]]):
44
+ system_message = (
45
+ "Ikaw usa ka buotan nga Chatbot. Tubaga lang sa binisaya, "
46
+ "ug ayaw gamita ang english nga pinulungan. Gamita ang pinakabag-ong "
47
+ "impormasyon gikan sa internet ug isalin kini sa binisaya."
48
+ )
49
  max_tokens = 4096
50
  temperature = 0.6
51
  top_p = 0.95
52
 
53
  messages = [{"role": "system", "content": system_message}]
54
  for user_text, assistant_text in history:
 
55
  if user_text:
56
  messages.append({"role": "user", "content": user_text})
57
  if assistant_text:
58
  messages.append({"role": "assistant", "content": assistant_text})
59
 
60
+ # Automatically perform an internet search for the query.
61
  search_result = get_internet_data(message)
62
+ # Translate the search result to Bisaya.
63
+ translated_result = translate_to_bisaya(search_result)
64
+ # Enrich the user query with the translated internet search result.
65
+ enriched_message = (
66
+ f"{message}\n\nMga resulta gikan sa internet (isinalin sa binisaya): "
67
+ f"{translated_result}"
68
+ )
69
  messages.append({"role": "user", "content": enriched_message})
70
 
71
  response = ""
 
81
  if not token:
82
  break
83
  response += token
 
84
  if response != previous_response:
85
  yield response
86
  previous_response = response
 
87
  if len(response) > 3000:
88
  break
89