JUNGU commited on
Commit
0b03e9c
·
verified ·
1 Parent(s): 9cebd1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -29
app.py CHANGED
@@ -48,49 +48,39 @@ messages = [
48
  prompt = ChatPromptTemplate.from_messages(messages)
49
 
50
  from langchain.chat_models import ChatOpenAI
51
- from langchain.chains import RetrievalQAWithSourcesChain
52
 
53
  chain_type_kwargs = {"prompt": prompt}
54
 
55
- chain = RetrievalQAWithSourcesChain.from_chain_type(
56
  llm=llm,
57
  chain_type="stuff",
58
  retriever=retriever,
59
- return_source_documents=True,
60
  chain_type_kwargs=chain_type_kwargs,
61
  reduce_k_below_max_tokens=True,
62
  verbose=True,
63
  )
64
 
 
65
  query = "행복한 인생이란?"
66
- result = chain(query)
67
-
68
-
69
- for doc in result['source_documents']:
70
- print('내용 : ' + doc.page_content[0:100].replace('\n', ' '))
71
- print('파일 : ' + doc.metadata['source'])
72
- print('페이지 : ' + str(doc.metadata['page']))
73
-
74
-
75
- def respond(message, chat_history): # 채팅봇의 응답을 처리하는 함수를 정의합니다.
76
-
77
- result = chain(message)
78
 
 
 
 
79
  bot_message = result['answer']
 
 
 
 
80
 
81
- for i, doc in enumerate(result['source_documents']):
82
- bot_message += '[' + str(i+1) + '] ' + doc.metadata['source'] + '(' + str(doc.metadata['page']) + ') '
83
-
84
- chat_history.append((message, bot_message)) # 채팅 기록에 사용자의 메시지와 봇의 응답을 추가합니다.
85
-
86
- return "", chat_history # 수정된 채팅 기록을 반환합니다.
87
-
88
- with gr.Blocks(theme='gstaff/sketch') as demo: # gr.Blocks()를 사용하여 인터페이스를 생성합니다.
89
  gr.Markdown("# 안녕하세요. 이태석 신부와 대화해보세요. \n 답변 생성에 조금 시간이 소요될 수 있습니다.")
90
- chatbot = gr.Chatbot(label="채팅창") # '채팅창'이라는 레이블을 가진 채팅봇 컴포넌트를 생성합니다.
91
- msg = gr.Textbox(label="입력") # '입력'이라는 레이블을 가진 텍스트박스를 생성합니다.
92
- clear = gr.Button("초기화") # '초기화'라는 레이블을 가진 버튼을 생성합니다.
93
 
94
- msg.submit(respond, [msg, chatbot], [msg, chatbot]) # 텍스트박스에 메시지를 입력하고 제출하면 respond 함수가 호출되도록 합니다.
95
- clear.click(lambda: None, None, chatbot, queue=False) # '초기화' 버튼을 클릭하면 채팅 기록을 초기화합니다.
96
- demo.launch(debug=True) # 인터페이스를 실행합니다. 실행하면 사용자는 '입력' 텍스트박스에 메시지를 작성하고 제출할 수 있으며, '초기화' 버튼을 통해 채팅 기록을 초기화 할 수 있습니다.
 
48
  prompt = ChatPromptTemplate.from_messages(messages)
49
 
50
  from langchain.chat_models import ChatOpenAI
51
+ from langchain.chains import ConversationalRetrievalChain
52
 
53
  chain_type_kwargs = {"prompt": prompt}
54
 
55
+ chain = ConversationalRetrievalChain.from_llm(
56
  llm=llm,
57
  chain_type="stuff",
58
  retriever=retriever,
59
+ return_source_documents=False,
60
  chain_type_kwargs=chain_type_kwargs,
61
  reduce_k_below_max_tokens=True,
62
  verbose=True,
63
  )
64
 
65
+ chat_history = []
66
  query = "행복한 인생이란?"
67
+ result = chain({"question": query, "chat_history": chat_history})
 
 
 
 
 
 
 
 
 
 
 
68
 
69
+ def respond(message, chat_history):
70
+ result = chain({"question": message, "chat_history": chat_history})
71
+
72
  bot_message = result['answer']
73
+
74
+ chat_history.append((message, bot_message))
75
+
76
+ return "", chat_history
77
 
78
+ with gr.Blocks(theme='gstaff/sketch') as demo:
 
 
 
 
 
 
 
79
  gr.Markdown("# 안녕하세요. 이태석 신부와 대화해보세요. \n 답변 생성에 조금 시간이 소요될 수 있습니다.")
80
+ chatbot = gr.Chatbot(label="채팅창")
81
+ msg = gr.Textbox(label="입력")
82
+ clear = gr.Button("초기화")
83
 
84
+ msg.submit(respond, [msg, chatbot], [msg, chatbot])
85
+ clear.click(lambda: None, None, chatbot, queue=False)
86
+ demo.launch(debug=True)