tedslin commited on
Commit
066960f
·
verified ·
1 Parent(s): 15f9a33

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -14
app.py CHANGED
@@ -24,6 +24,10 @@ if "messages" not in st.session_state:
24
  st.session_state.messages = []
25
  if "system_prompt" not in st.session_state:
26
  st.session_state.system_prompt = ""
 
 
 
 
27
 
28
  def stream_chat(prompt: str) -> Iterator[str]:
29
  """Stream chat responses from the LLM API"""
@@ -36,14 +40,13 @@ def stream_chat(prompt: str) -> Iterator[str]:
36
  if st.session_state.system_prompt:
37
  messages.append({"role": "system", "content": st.session_state.system_prompt})
38
  messages.extend(st.session_state.messages)
39
- # messages.append({"role": "user", "content": prompt})
40
 
41
  stream = client.chat.completions.create(
42
  messages=messages,
43
  model=os.getenv('LLM_MODEL_NAME'),
44
- temperature=0.2,
45
- top_p=0.95,
46
- stream=True
47
  )
48
 
49
  for chunk in stream:
@@ -65,16 +68,35 @@ def main():
65
  clear_chat_history()
66
  st.rerun()
67
 
68
- # System prompt input
69
- system_prompt = st.text_area(
70
- "System Prompt 設定:",
71
- value=st.session_state.system_prompt,
72
- help="設定 system prompt 來定義 AI 助理的行為和角色。開始對話後將無法修改。",
73
- height=100,
74
- disabled=len(st.session_state.messages) > 0 # 當有對話時設為唯讀
75
- )
76
- if not st.session_state.messages and system_prompt != st.session_state.system_prompt:
77
- st.session_state.system_prompt = system_prompt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
 
79
  # Display chat messages
80
  for message in st.session_state.messages:
 
24
  st.session_state.messages = []
25
  if "system_prompt" not in st.session_state:
26
  st.session_state.system_prompt = ""
27
+ if "temperature" not in st.session_state:
28
+ st.session_state.temperature = 0.2
29
+ if "top_p" not in st.session_state:
30
+ st.session_state.top_p = 0.95
31
 
32
  def stream_chat(prompt: str) -> Iterator[str]:
33
  """Stream chat responses from the LLM API"""
 
40
  if st.session_state.system_prompt:
41
  messages.append({"role": "system", "content": st.session_state.system_prompt})
42
  messages.extend(st.session_state.messages)
 
43
 
44
  stream = client.chat.completions.create(
45
  messages=messages,
46
  model=os.getenv('LLM_MODEL_NAME'),
47
+ stream=True,
48
+ temperature=st.session_state.temperature,
49
+ top_p=st.session_state.top_p
50
  )
51
 
52
  for chunk in stream:
 
68
  clear_chat_history()
69
  st.rerun()
70
 
71
+ # Advanced options in expander
72
+ with st.expander("進階選項 ⚙️", expanded=False):
73
+ # System prompt input
74
+ system_prompt = st.text_area(
75
+ "System Prompt 設定:",
76
+ value=st.session_state.system_prompt,
77
+ help="設定 system prompt 來定義 AI 助理的行為和角色。開始對話後將無法修改。",
78
+ height=100,
79
+ disabled=len(st.session_state.messages) > 0 # 當有對話時設為唯讀
80
+ )
81
+ if not st.session_state.messages and system_prompt != st.session_state.system_prompt:
82
+ st.session_state.system_prompt = system_prompt
83
+
84
+ st.session_state.temperature = st.slider(
85
+ "Temperature",
86
+ min_value=0.0,
87
+ max_value=2.0,
88
+ value=st.session_state.temperature,
89
+ step=0.1,
90
+ help="較高的值會使輸出更加隨機,較低的值會使其更加集中和確定。"
91
+ )
92
+ st.session_state.top_p = st.slider(
93
+ "Top P",
94
+ min_value=0.1,
95
+ max_value=1.0,
96
+ value=st.session_state.top_p,
97
+ step=0.05,
98
+ help="控制模型輸出的多樣性,較低的值會使輸出更加保守。"
99
+ )
100
 
101
  # Display chat messages
102
  for message in st.session_state.messages: