minzo456 commited on
Commit
d6d86b8
·
verified ·
1 Parent(s): 550c335

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -28
app.py CHANGED
@@ -1,36 +1,46 @@
1
  import os
2
  import gradio as gr
3
  from duckduckgo_search import DDGS
4
- from langchain_community.llms import HuggingFaceHub
5
- from langchain.chains import RetrievalQA
6
 
7
- # 🔱 නොමිලේ Web Searchිරීමේ Function එක
8
- def web_search(query):
9
- with DDGS() as ddgs:
10
- results = [r['body'] for r in ddgs.text(query, max_results=3)]
11
- return "\n".join(results)
12
 
13
- # 🔱 Gemma 2 පාවිච්චි කර උත්තරය සැකසීම
14
- def inachi_ai_response(user_input):
15
  try:
16
- # 1. මුලින්ම අන්තර්ජාලයේ සොයනවා
17
- context = web_search(user_input)
18
-
19
- # 2. Gemma Model එකට Instruction එක දෙනවා
20
- prompt = f"Context: {context}\n\nQuestion: {user_input}\n\nAnswer like a Specialist:"
21
-
22
- # මෙතනදී අපි Hugging Face හි Inference API එක පාවිච්චි කරනවා (GPU ඕනේ නැහැ)
23
- # 🔱 මේ සඳහා ඔයාගේ Hugging Face Token එ 'HF_TOKEN' ලෙස Secret එකක් දාන්න.
24
- repo_id = "google/gemma-2-9b-it"
25
-
26
- # ... (මෙහිදී API එක හරහා Request එක යීම සිදුවේ)
27
- # සරලව කිවහොත් මෙය Web Search දත්ත ගෙන Gemma මඟින් විග්‍රහ කර පෙන්වයි.
28
-
29
- return f"Specialist, අන්තර්ජාලයෙන් ලැබුණු තොරතුරු අනුව:\n{context}\n\n---"
30
 
31
- except Exception as e:
32
- return f"දෝෂයක් සිදුවුණා Specialist: {str(e)}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
- # 🔱 Gradio UI එක
35
- demo = gr.Interface(fn=inachi_ai_response, inputs="text", outputs="text", title="INACHI-PRIME (Gemma 2 + Web Search)")
36
- demo.launch()
 
1
  import os
2
  import gradio as gr
3
  from duckduckgo_search import DDGS
4
+ from huggingface_hub import InferenceClient
 
5
 
6
+ # 🔱 Hugging Face Token Secret එකෙන් ලබා ගැනීම
7
+ HF_TOKEN = os.getenv("HF_TOKEN")
8
+
9
+ # 🔱 Gemma 2 සඳහා Client එක සකස් කිරීම
10
+ client = InferenceClient("google/gemma-2-9b-it", token=HF_TOKEN)
11
 
12
+ def web_search(query):
 
13
  try:
14
+ with DDGS() as ddgs:
15
+ results = [r['body'] for r in ddgs.text(query, max_results=3)]
16
+ return "\n".join(results)
17
+ except Exception:
18
+ return "තොරතුරු සෙවීමේදී බාධාවක් ඇති විය."
19
+
20
+ def inachi_ai_response(user_input, history):
21
+ # 1. Web Searchිරීම
22
+ context = web_search(user_input)
23
+
24
+ # 2. Prompt එක කසීම
25
+ prompt = f"Context: {context}\n\nQuestion: {user_input}\n\nAnswer like a Specialist AI:"
 
 
26
 
27
+ # 3. Gemma 2 වෙතින් පිළිතුර ලබා ගැනීම
28
+ response = ""
29
+ for message in client.chat_completion(
30
+ messages=[{"role": "user", "content": prompt}],
31
+ max_tokens=1024,
32
+ stream=True,
33
+ ):
34
+ token = message.choices[0].delta.content
35
+ response += token
36
+ yield response
37
+
38
+ # 🔱 Gradio ChatInterface එක (මේක දැන් ගොඩක් ලස්සනයි)
39
+ demo = gr.ChatInterface(
40
+ fn=inachi_ai_response,
41
+ title="INACHI-PRIME (Gemma 2 Web-Search)",
42
+ description="Specialist, මම Gemma 2 සහ සජීවී අන්තර්ජාල සෙවුම් බලයෙන් ක්‍රියාත්මක වෙමි."
43
+ )
44
 
45
+ if __name__ == "__main__":
46
+ demo.launch()