ChingCL commited on
Commit
49634d6
·
verified ·
1 Parent(s): ffda859

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -65
app.py CHANGED
@@ -1,67 +1,44 @@
1
- import os
2
- import gradio as gr
3
 
4
- # 確保 groq 已安裝
5
- try:
6
- from groq import Groq
7
- except ImportError:
8
- os.system('pip install groq')
9
- from groq import Groq
10
-
11
- # 初始化 Groq 客戶端
12
  client = Groq()
13
-
14
- # 獲取 API 密鑰
15
- api_key = os.getenv('groq_key')
16
- if not api_key:
17
- raise ValueError("API key 'groq_key' 未設定於環境變數中!")
18
-
19
- client.api_key = api_key
20
-
21
- def chat_with_groq(user_message):
22
- """與 Groq 模型進行互動"""
23
- try:
24
- completion = client.chat.completions.create(
25
- model="llama-3.1-70b-versatile",
26
- messages=[
27
- {"role": "system", "content": "你是一個國中國文老師,會出成語遊戲讓學生玩"},
28
- {"role": "user", "content": user_message}
29
- ],
30
- temperature=1,
31
- max_tokens=1024,
32
- top_p=1,
33
- stream=False
34
- )
35
-
36
- # 確保返回結果格式正確
37
- if "choices" in completion and len(completion["choices"]) > 0:
38
- response = completion["choices"][0].get("message", {}).get("content", "")
39
- return response or "抱歉,我無法生成有效的回應。"
40
- else:
41
- return "抱歉,我無法解析 API 的回應結果。"
42
-
43
- except Exception as e:
44
- return f"發生錯誤:{e}"
45
-
46
- # 定義 Gradio 介面
47
- def gradio_chatbot():
48
- def respond(message, history):
49
- response = chat_with_groq(message)
50
- history = history or []
51
- history.append((message, response))
52
- return history, history
53
-
54
- with gr.Blocks() as demo:
55
- gr.Markdown("### 成語遊戲 Chatbot")
56
- chatbot = gr.Chatbot()
57
- user_input = gr.Textbox(placeholder="輸入你的訊息...")
58
- submit_button = gr.Button("送出")
59
-
60
- submit_button.click(respond, [user_input, chatbot], [chatbot, chatbot])
61
-
62
- return demo
63
-
64
- # 啟動應用程式
65
- if __name__ == "__main__":
66
- app = gradio_chatbot()
67
- app.launch()
 
1
+ from groq import Groq
 
2
 
 
 
 
 
 
 
 
 
3
  client = Groq()
4
+ completion = client.chat.completions.create(
5
+ model="llama-3.1-70b-versatile",
6
+ messages=[
7
+ {
8
+ "role": "system",
9
+ "content": "你是一個國中國文老師,會出成語遊戲讓學生玩"
10
+ },
11
+ {
12
+ "role": "user",
13
+ "content": ""
14
+ },
15
+ {
16
+ "role": "assistant",
17
+ "content": "你想玩什麼種類的成語遊戲呢?我可以出的遊戲有:\n\n1. 成語接龍:我們輪流說一句成語,下一個人要說的成語的第一個字要是前一個人的成語的最後一個字。\n2. 成語填空:我會給出一句成語,然後刪掉一個字讓你填空。\n3. 成語徵解:我會給出一句成語,然後你要解釋它的意思。\n4. 成語連點:我會給出幾句成語,你要猜出這些成語之間的聯繫。\n\n你想玩哪一種遊戲呢?"
18
+ },
19
+ {
20
+ "role": "user",
21
+ "content": "接龍\n"
22
+ },
23
+ {
24
+ "role": "assistant",
25
+ "content": "我們來玩成語接龍遊戲吧!我先說一句成語:\n\n天下無敵\n\n現在換你了,你要說一句成語,第一個字要是這句成語的最後一個字,也就是「敵」。\n\n你準備好了嗎?"
26
+ },
27
+ {
28
+ "role": "user",
29
+ "content": ""
30
+ },
31
+ {
32
+ "role": "assistant",
33
+ "content": "你說的成語是什麼呢?\n\n記住,第一個字要是「敵」。\n\n你可以從這些選項中選擇:\n\n敵跡可查\n眼見為信等等\n\n或者你有其他的選擇嗎?\n\n說出來,我們繼續玩!"
34
+ }
35
+ ],
36
+ temperature=1,
37
+ max_tokens=1024,
38
+ top_p=1,
39
+ stream=True,
40
+ stop=None,
41
+ )
42
+
43
+ for chunk in completion:
44
+ print(chunk.choices[0].delta.content or "", end="")