KorWoody commited on
Commit
79cfd6f
Β·
1 Parent(s): 75a366b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -47
app.py CHANGED
@@ -1,25 +1,19 @@
1
  import os
2
- import pymssql
3
  import pandas as pd
4
-
5
-
6
 
7
  from langchain.vectorstores import Chroma
8
  from langchain.embeddings import OpenAIEmbeddings
9
- from langchain.text_splitter import RecursiveCharacterTextSplitter
10
  from langchain.llms import OpenAI
11
  from langchain.chat_models import ChatOpenAI
12
  from langchain.chains import RetrievalQA
13
- from langchain.document_loaders import TextLoader
14
- from langchain.document_loaders import DirectoryLoader
15
- from langchain.document_loaders import CSVLoader
16
- from langchain.memory import ConversationBufferMemory
17
 
18
  def Loading():
19
  return "데이터 λ‘œλ”© 쀑..."
20
 
21
- def LoadData(openai_key):
22
 
 
 
23
  if openai_key is not None:
24
 
25
  os.environ["OPENAI_API_KEY"] = openai_key
@@ -28,6 +22,7 @@ def LoadData(openai_key):
28
 
29
  embedding = OpenAIEmbeddings()
30
 
 
31
  vectordb = Chroma(
32
  persist_directory=persist_directory,
33
  embedding_function=embedding
@@ -42,13 +37,13 @@ def LoadData(openai_key):
42
 
43
 
44
  # μ±—λ΄‡μ˜ 닡변을 μ²˜λ¦¬ν•˜λŠ” ν•¨μˆ˜
45
- def respond(message, chat_history):
46
  try:
47
- # if freelv == "":
48
- # freelv = 0
49
-
50
  qa_chain = RetrievalQA.from_chain_type(
51
- llm=OpenAI(temperature=0.4),
52
  # llm=OpenAI(temperature=0.4),
53
  # llm=ChatOpenAI(temperature=0),
54
  chain_type="stuff",
@@ -58,14 +53,6 @@ def respond(message, chat_history):
58
  result = qa_chain(message)
59
 
60
  bot_message = result['result']
61
-
62
- # bot_message += '\n\n' + ' [좜처]'
63
-
64
- # # λ‹΅λ³€μ˜ 좜처λ₯Ό ν‘œκΈ°
65
- # for i, doc in enumerate(result['source_documents']):
66
- # bot_message += str(i+1) + '. ' + doc.metadata['source'] + ' '
67
-
68
- # historySave(message=message, answer=str(result['result']).replace("'",""))
69
 
70
  # μ±„νŒ… 기둝에 μ‚¬μš©μžμ˜ λ©”μ‹œμ§€μ™€ λ΄‡μ˜ 응닡을 μΆ”κ°€.
71
  chat_history.append((message, bot_message))
@@ -76,7 +63,6 @@ def respond(message, chat_history):
76
 
77
  return " ", chat_history
78
 
79
- import gradio as gr
80
 
81
  # 챗봇 μ„€λͺ…
82
  title = """
@@ -98,35 +84,52 @@ with gr.Blocks(css=css) as UnivChatbot:
98
  with gr.Column(elem_id="col-container"):
99
  gr.HTML(title)
100
 
101
- with gr.Row():
102
- with gr.Column(scale=3):
103
- openai_key = gr.Textbox(label="You OpenAI API key", type="password", placeholder="OpenAI Key Type", elem_id="InputKey", show_label=False, container=False)
104
- with gr.Column(scale=1):
105
- langchain_status = gr.Textbox(placeholder="Status", interactive=False, show_label=False, container=False)
106
- # with gr.Column(scale=1):
107
- # freelv = gr.Textbox(placeholder="μœ μ—°μ„±", show_label=False, container=False)
108
- with gr.Column(scale=1):
109
- chk_key = gr.Button("확인", variant="primary")
110
-
111
- chatbot = gr.Chatbot(label="λŒ€ν•™ μ±—λ΄‡μ‹œμŠ€ν…œ(OpenAI LLM)", elem_id="chatbot") # 상단 쒌츑
112
-
113
- with gr.Row():
114
- with gr.Column(scale=9):
115
- msg = gr.Textbox(label="μž…λ ₯", placeholder="κΆκΈˆν•˜μ‹  내역을 μž…λ ₯ν•˜μ—¬ μ£Όμ„Έμš”.", elem_id="InputQuery", show_label=False, container=False)
116
-
117
- with gr.Row():
118
- with gr.Column(scale=1):
119
- submit = gr.Button("전솑", variant="primary")
120
- with gr.Column(scale=1):
121
- clear = gr.Button("μ΄ˆκΈ°ν™”", variant="stop")
 
 
 
 
 
 
 
 
122
 
123
  #chk_key.click(Loading, None, langchain_status, queue=False)
124
- chk_key.click(LoadData, openai_key, outputs=[langchain_status], queue=False)
 
 
 
 
 
125
 
126
  # μ‚¬μš©μžμ˜ μž…λ ₯을 제좜(submit)ν•˜λ©΄ respond ν•¨μˆ˜κ°€ 호좜.
127
- msg.submit(respond, [msg, chatbot], [msg, chatbot])
 
 
 
 
128
 
129
- submit.click(respond, [msg, chatbot], [msg, chatbot])
130
 
131
  # 'μ΄ˆκΈ°ν™”' λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ μ±„νŒ… 기둝을 μ΄ˆκΈ°ν™”.
132
  clear.click(lambda: None, None, chatbot, queue=False)
 
1
  import os
 
2
  import pandas as pd
3
+ import gradio as gr
 
4
 
5
  from langchain.vectorstores import Chroma
6
  from langchain.embeddings import OpenAIEmbeddings
 
7
  from langchain.llms import OpenAI
8
  from langchain.chat_models import ChatOpenAI
9
  from langchain.chains import RetrievalQA
 
 
 
 
10
 
11
  def Loading():
12
  return "데이터 λ‘œλ”© 쀑..."
13
 
 
14
 
15
+ def LoadData(openai_key):
16
+
17
  if openai_key is not None:
18
 
19
  os.environ["OPENAI_API_KEY"] = openai_key
 
22
 
23
  embedding = OpenAIEmbeddings()
24
 
25
+
26
  vectordb = Chroma(
27
  persist_directory=persist_directory,
28
  embedding_function=embedding
 
37
 
38
 
39
  # μ±—λ΄‡μ˜ 닡변을 μ²˜λ¦¬ν•˜λŠ” ν•¨μˆ˜
40
+ def respond(message, chat_history, temperature):
41
  try:
42
+
43
+ print(temperature)
44
+
45
  qa_chain = RetrievalQA.from_chain_type(
46
+ llm=OpenAI(temperature=temperature),
47
  # llm=OpenAI(temperature=0.4),
48
  # llm=ChatOpenAI(temperature=0),
49
  chain_type="stuff",
 
53
  result = qa_chain(message)
54
 
55
  bot_message = result['result']
 
 
 
 
 
 
 
 
56
 
57
  # μ±„νŒ… 기둝에 μ‚¬μš©μžμ˜ λ©”μ‹œμ§€μ™€ λ΄‡μ˜ 응닡을 μΆ”κ°€.
58
  chat_history.append((message, bot_message))
 
63
 
64
  return " ", chat_history
65
 
 
66
 
67
  # 챗봇 μ„€λͺ…
68
  title = """
 
84
  with gr.Column(elem_id="col-container"):
85
  gr.HTML(title)
86
 
87
+ with gr.Row():
88
+ with gr.Column(scale=3):
89
+ openai_key = gr.Textbox(label="You OpenAI API key", type="password", placeholder="OpenAI Key Type", elem_id="InputKey", show_label=False, container=False)
90
+ with gr.Column(scale=1):
91
+ langchain_status = gr.Textbox(placeholder="Status", interactive=False, show_label=False, container=False)
92
+
93
+ with gr.Row():
94
+ with gr.Column(scale=5):
95
+ temperature = gr.Slider(
96
+ label="Temperature",
97
+ minimum=0.1,
98
+ maximum=2.0,
99
+ step=0.1,
100
+ value=0.7,
101
+ )
102
+ with gr.Column(scale=1):
103
+ chk_key = gr.Button("확인", variant="primary")
104
+
105
+ chatbot = gr.Chatbot(label="λŒ€ν•™ μ±—λ΄‡μ‹œμŠ€ν…œ(OpenAI LLM)", elem_id="chatbot") # 상단 쒌츑
106
+
107
+ with gr.Row():
108
+ with gr.Column(scale=9):
109
+ msg = gr.Textbox(label="μž…λ ₯", placeholder="κΆκΈˆν•˜μ‹  내역을 μž…λ ₯ν•˜μ—¬ μ£Όμ„Έμš”.", elem_id="InputQuery", show_label=False, container=False)
110
+
111
+ with gr.Row():
112
+ with gr.Column(scale=1):
113
+ submit = gr.Button("전솑", variant="primary")
114
+ with gr.Column(scale=1):
115
+ clear = gr.Button("μ΄ˆκΈ°ν™”", variant="stop")
116
 
117
  #chk_key.click(Loading, None, langchain_status, queue=False)
118
+ chk_key.click(
119
+ fn=LoadData,
120
+ inputs=[openai_key],
121
+ outputs=[langchain_status],
122
+ queue=False
123
+ )
124
 
125
  # μ‚¬μš©μžμ˜ μž…λ ₯을 제좜(submit)ν•˜λ©΄ respond ν•¨μˆ˜κ°€ 호좜.
126
+ msg.submit(
127
+ fn=respond,
128
+ inputs=[msg, chatbot, temperature],
129
+ outputs=[msg, chatbot]
130
+ )
131
 
132
+ submit.click(respond, [msg, chatbot, temperature], [msg, chatbot])
133
 
134
  # 'μ΄ˆκΈ°ν™”' λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ μ±„νŒ… 기둝을 μ΄ˆκΈ°ν™”.
135
  clear.click(lambda: None, None, chatbot, queue=False)