biftekpatates commited on
Commit
4467054
Β·
verified Β·
1 Parent(s): e0c20ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -9,35 +9,37 @@ from prompts.main_prompt import MAIN_PROMPT
9
  if os.path.exists(".env"):
10
  load_dotenv(".env")
11
 
12
- OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
13
 
14
  client = OpenAI(api_key=OPENAI_API_KEY)
15
 
16
 
 
17
  def gpt_call(history, user_message,
18
  model="gpt-4o-mini",
19
  max_tokens=512,
20
  temperature=0.7,
21
  top_p=0.95):
22
  """
23
- OpenAI ChatCompletion API function.
 
 
24
  """
25
-
26
- # Ensure history is formatted correctly
27
  messages = [{"role": "system", "content": MAIN_PROMPT}]
28
-
29
- for exchange in history:
30
- if isinstance(exchange, (list, tuple)) and len(exchange) == 2:
31
- user_text, assistant_text = exchange
32
- if isinstance(user_text, str) and user_text.strip():
33
- messages.append({"role": "user", "content": user_text})
34
- if isinstance(assistant_text, str) and assistant_text.strip():
35
- messages.append({"role": "assistant", "content": assistant_text})
36
-
37
- # Add latest user input
38
  messages.append({"role": "user", "content": user_message})
39
 
40
- # Call OpenAI API
41
  completion = client.chat.completions.create(
42
  model=model,
43
  messages=messages,
@@ -45,7 +47,6 @@ def gpt_call(history, user_message,
45
  temperature=temperature,
46
  top_p=top_p
47
  )
48
-
49
  return completion.choices[0].message.content
50
 
51
  def respond(user_message, history):
@@ -85,7 +86,7 @@ with gr.Blocks() as demo:
85
 
86
  # (user, assistant) μŒμ„ μ €μž₯ν•  νžˆμŠ€ν† λ¦¬ μƒνƒœ
87
  # μ—¬κΈ°μ„œλ„ λ™μΌν•œ 초기 μƒνƒœλ₯Ό λ„£μ–΄μ€Œ
88
- state_history = gr.State([[{"role": "assistant", "content": INITIAL_PROMPT}]])
89
 
90
  # μ‚¬μš©μž μž…λ ₯
91
  user_input = gr.Textbox(
 
9
  if os.path.exists(".env"):
10
  load_dotenv(".env")
11
 
12
+ OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
13
 
14
  client = OpenAI(api_key=OPENAI_API_KEY)
15
 
16
 
17
+
18
  def gpt_call(history, user_message,
19
  model="gpt-4o-mini",
20
  max_tokens=512,
21
  temperature=0.7,
22
  top_p=0.95):
23
  """
24
+ OpenAI ChatCompletion APIλ₯Ό 톡해 닡변을 μƒμ„±ν•˜λŠ” ν•¨μˆ˜.
25
+ - history: [(user_text, assistant_text), ...]
26
+ - user_message: μ‚¬μš©μžκ°€ 방금 μž…λ ₯ν•œ λ©”μ‹œμ§€
27
  """
28
+ # 1) μ‹œμŠ€ν…œ λ©”μ‹œμ§€(=MAIN_PROMPT)λ₯Ό κ°€μž₯ μ•žμ— μΆ”κ°€
 
29
  messages = [{"role": "system", "content": MAIN_PROMPT}]
30
+
31
+ # 2) κΈ°μ‘΄ λŒ€ν™” 기둝(history)을 OpenAI ν˜•μ‹μœΌλ‘œ λ³€ν™˜
32
+ # user_text -> 'user' / assistant_text -> 'assistant'
33
+ for user_text, assistant_text in history:
34
+ if user_text:
35
+ messages.append({"role": "user", "content": user_text})
36
+ if assistant_text:
37
+ messages.append({"role": "assistant", "content": assistant_text})
38
+
39
+ # 3) λ§ˆμ§€λ§‰μ— 이번 μ‚¬μš©μžμ˜ μž…λ ₯을 μΆ”κ°€
40
  messages.append({"role": "user", "content": user_message})
41
 
42
+ # 4) OpenAI API 호좜
43
  completion = client.chat.completions.create(
44
  model=model,
45
  messages=messages,
 
47
  temperature=temperature,
48
  top_p=top_p
49
  )
 
50
  return completion.choices[0].message.content
51
 
52
  def respond(user_message, history):
 
86
 
87
  # (user, assistant) μŒμ„ μ €μž₯ν•  νžˆμŠ€ν† λ¦¬ μƒνƒœ
88
  # μ—¬κΈ°μ„œλ„ λ™μΌν•œ 초기 μƒνƒœλ₯Ό λ„£μ–΄μ€Œ
89
+ state_history = gr.State([("", INITIAL_PROMPT)])
90
 
91
  # μ‚¬μš©μž μž…λ ₯
92
  user_input = gr.Textbox(