chatbot_ifal / app.py
giseldo's picture
Update app.py
52edf53 verified
# openAI Model e openAI Embedings
from langchain_community.document_loaders import UnstructuredMarkdownLoader
from langchain_core.documents import Document
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.chat_models import init_chat_model
import gradio as gr
llm = init_chat_model("gpt-4o-mini", model_provider="openai")
loader = UnstructuredMarkdownLoader("manual.md")
documentos = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
textos = text_splitter.split_documents(documentos)
embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(textos, embeddings)
retriever = db.as_retriever(search_kwargs={"k": 3})
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=retriever,
verbose=True
)
def consultar_base_conhecimento(pergunta, history):
resposta = qa_chain.run(pergunta)
return resposta
css = """
footer { display: none !important; }
.footer { display: none !important; }
.gradio-footer { display: none !important;}"
"""
demo = gr.ChatInterface(css=css, fn=consultar_base_conhecimento, title="Este chatbot responde perguntas com base no manual do aluno do IFAL", examples=["O que você sabe?", "Quem é o reitor?", "Como funciona o processo de matrícula?", "Quais são as regras para aprovação nas disciplinas?"])
if __name__ == "__main__":
demo.launch()