1
+ import os
2
+
3
+ import openai
4
+ import streamlit as st
5
+
6
+ from streamlit_chat import message
7
+ from dotenv import load_dotenv
8
+
9
+ load_dotenv ()
10
+
11
+ openai .api_key = os .getenv ("OPENAI_API_KEY" )
12
+
13
+ def generate_response (prompt1 , prompt2 , p_type ):
14
+ completions = openai .Completion .create (
15
+ engine = "text-davinci-003" ,
16
+ prompt = prompt2 ,
17
+ max_tokens = 1024 ,
18
+ n = 1 ,
19
+ stop = None ,
20
+ temperature = 0.5 ,
21
+ )
22
+ message = completions .choices [0 ].text
23
+ return message
24
+
25
+ def get_text ():
26
+ input_text1 = st .text_input ("Write message : " , key = 'input_text1' )
27
+ input_text2 = st .text_input ("Write message222 : " , key = 'input_text2' )
28
+ return input_text1 , input_text2
29
+
30
+ st .title ("chatBot : Streamlit + openAI" )
31
+
32
+ # Storing the chat
33
+ if 'generated' not in st .session_state :
34
+ st .session_state ['generated' ] = []
35
+
36
+ if 'past' not in st .session_state :
37
+ st .session_state ['past' ] = []
38
+
39
+ user_input1 , user_input2 = get_text ()
40
+ p_type = st .radio (label = 'type_btn' , options = ['단답형' , 'O/X' ], horizontal = True )
41
+
42
+ if (user_input1 ) and (user_input2 ):
43
+ output = generate_response (user_input1 , user_input2 , p_type )
44
+ # store the output
45
+ st .session_state .past .append (user_input2 )
46
+ st .session_state .generated .append (output )
47
+
48
+ if st .session_state ['generated' ]:
49
+ for i in range (len (st .session_state ['generated' ])- 1 , - 1 , - 1 ):
50
+ message (st .session_state ["generated" ][i ], key = str (i ))
51
+ message (st .session_state ['past' ][i ], is_user = True , key = str (i ) + '_user' )
0 commit comments