|
import gradio as gr |
|
import os |
|
|
|
from langchain_openai import OpenAIEmbeddings |
|
from langchain_community.document_loaders import TextLoader |
|
from langchain_openai import ChatOpenAI |
|
from langchain.text_splitter import RecursiveCharacterTextSplitter |
|
from langchain_community.vectorstores import FAISS |
|
from langchain.chains import RetrievalQA |
|
from langchain.chains import ConversationalRetrievalChain |
|
|
|
OpenAIModel = "gpt-3.5-turbo" |
|
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] |
|
llm = ChatOpenAI(model=OpenAIModel, temperature=0.1, openai_api_key=OPENAI_API_KEY) |
|
|
|
def ask(text): |
|
answer = qa.run(text) |
|
return answer |
|
|
|
loader = TextLoader("test.txt") |
|
data = loader.load() |
|
|
|
embeddings = OpenAIEmbeddings(openai_api_key=OPENAI_API_KEY) |
|
|
|
text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=50) |
|
all_splits = text_splitter.split_documents(data) |
|
db2 = FAISS.from_documents(all_splits, embeddings) |
|
|
|
qa = RetrievalQA.from_chain_type(llm=llm, retriever=db2.as_retriever()) |
|
|
|
iface = gr.Interface(ask,gr.Textbox(label="Question"),gr.Textbox(label="Answer"), title="BiMah Customer Service Chatbot",description="A chatbot that can answer things related to BiMah (Bimbel Mahasiswa)", examples=["How BiMah can enforce students to be better?","Siapa CEO BiMah?", "Bagaimana langkah-langkah pendaftaran di BiMah?"]) |
|
iface.launch() |
|
|