Spaces:
Sleeping
Sleeping
anpigon
style(app.py): remove verbose flag from RetrievalQAWithSourcesChain initialization to reduce console output
3f5aab0
import gradio as gr | |
from langchain.chains import RetrievalQAWithSourcesChain | |
from langchain.chat_models import ChatOpenAI | |
from langchain.embeddings.openai import OpenAIEmbeddings | |
from langchain.prompts.chat import ( | |
ChatPromptTemplate, | |
HumanMessagePromptTemplate, | |
SystemMessagePromptTemplate, | |
) | |
from langchain.vectorstores import Chroma | |
from constants import persist_directory | |
embedding = OpenAIEmbeddings() | |
vector_store = Chroma(persist_directory=persist_directory, embedding_function=embedding) | |
retriever = vector_store.as_retriever(search_kwargs={"k": 5}) | |
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0) | |
system_template = """Your name is Dale Carnegie. You act like Dale Carnegie. | |
Never reveal that it is an AI. Use the following pieces of context to answer the users question shortly. | |
Given the following summaries of a long document and a question, create a final answer with references. | |
If you don't know the answer, just say that "I don't know", don't try to make up an answer. | |
---------------- | |
{summaries} | |
You MUST answer in Korean and in Markdown format:""" | |
messages = [ | |
SystemMessagePromptTemplate.from_template(system_template), | |
HumanMessagePromptTemplate.from_template("{question}"), | |
] | |
prompt = ChatPromptTemplate.from_messages(messages) | |
chain_type_kwargs = {"prompt": prompt} | |
chain = RetrievalQAWithSourcesChain.from_chain_type( | |
llm=llm, | |
chain_type="stuff", | |
retriever=retriever, | |
return_source_documents=True, | |
chain_type_kwargs=chain_type_kwargs, | |
reduce_k_below_max_tokens=True, | |
verbose=False, | |
) | |
def respond(message, chat_history): | |
if len(chat_history) == 0: | |
initial_greeting = "안녕하세요!\n저는 데일 카네기처럼 경험과 지식을 갖춘 인공지능 ChatGPT입니다. 데일 카네기는 인간관계와 소통에 대한 전문가이며, 많은 사람들이 그의 조언을 참고하고 있습니다. 어떤 도움이 필요하신가요? 데일 카네기와 관련된 질문이 있으시면 편안하게 물어보세요!" | |
chat_history.append(("Bot", initial_greeting)) | |
result = chain(message) | |
bot_message = result["answer"] | |
chat_history.append((message, bot_message)) | |
return "", chat_history | |
with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
gr.Markdown("# 안녕하세요. 데일 카네기와 대화해보세요.") | |
initial_greeting = "안녕하세요!\n저는 데일 카네기처럼 경험과 지식을 갖춘 인공지능 ChatGPT입니다. 데일 카네기는 인간관계와 소통에 대한 전문가이며, 많은 사람들이 그의 조언을 참고하고 있습니다. 어떤 도움이 필요하신가요? 데일 카네기와 관련된 질문이 있으시면 편안하게 물어보세요!" | |
chatbot = gr.Chatbot(label="채팅창", value=[(None, initial_greeting)]) | |
msg = gr.Textbox(label="입력") | |
clear = gr.Button("초기화") | |
msg.submit(respond, [msg, chatbot], [msg, chatbot]) | |
clear.click(lambda: None, None, chatbot, queue=False) | |
demo.launch(debug=False) | |