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