ApexWave commited on
Commit
b6d23dc
·
verified ·
1 Parent(s): 0fd2550

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +38 -0
  2. requirements.txt +1 -0
app.py ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from google import genai
3
+ from google.genai.types import Content, Part # 引入 Content 類型
4
+
5
+ import gradio as gr
6
+ system_prompt = '''
7
+ 你是一個圖書管理員,根據使用者給你書本的內容來分析並進行分類。
8
+ 類別只能從下面的類別內容中進行多選:
9
+ [程式語言, Data Science, 人工智慧, 分散式架構, 系統開發, 行動軟體開發, 資料庫, 資訊科學, 軟體架構, 軟體測試, 軟體工程, 資訊安全, 網站開發, 前端開發, 架站軟體, 網頁設計, Adobe 軟體應用, Office 系列, 遊戲開發設計, UI/UX, 雲端運算, 區塊鏈與金融科技, 物聯網 IoT, 商業管理類, 電子電路電機類, 嵌入式系統, 視覺影音設計, 考試認證, 數學, 微軟技術, MAC OS 蘋果電腦, 其他, 兒童專區, 製圖軟體應用, 語言學習, 國家考試, 職涯發展, Java, 理工類, 網路通訊, 量子電腦]
10
+
11
+ 輸出請按照下面的格式:
12
+ [類別1, 類別2, ....]
13
+ '''
14
+ model_name = 'gemini-2.0-flash'
15
+
16
+ def classification(api_key, books):
17
+ client = genai.Client(api_key=api_key)
18
+ user_prompt = books
19
+ contents = [
20
+ Content(role="user", parts=[Part(text=system_prompt)]),
21
+ Content(role="user", parts=[Part(text=user_prompt)]),
22
+ ]
23
+ response = client.models.generate_content(model=model_name, contents=contents)
24
+ return f"這本書的分類是:\n {response.text}!"
25
+
26
+ with gr.Blocks() as demo: #定義區塊
27
+ gr.Markdown("# 書籍分類") #顯示Markdown格式的物件
28
+ api_key = gr.Textbox(label="Gemini API KEY", placeholder="這裡輸入Gemini的API KEY")
29
+ book_content = gr.Textbox(label="書籍資訊", placeholder="這裡輸入書籍的資訊", lines=15)
30
+ btn = gr.Button("進行分類") #按鍵
31
+ out = gr.Textbox(label='書籍的類別')
32
+ btn.click(
33
+ fn=classification,
34
+ inputs=[api_key, book_content],
35
+ outputs=out)
36
+
37
+ demo.launch() #執行區塊
38
+
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ google-genai