singhdevendra58 commited on
Commit
98fa964
ยท
verified ยท
1 Parent(s): 4f80206

Delete src/chatbot.py

Browse files
Files changed (1) hide show
  1. src/chatbot.py +0 -124
src/chatbot.py DELETED
@@ -1,124 +0,0 @@
1
- import streamlit as st
2
- from langchain.document_loaders import PyPDFLoader, Docx2txtLoader, TextLoader
3
- from langchain.text_splitter import CharacterTextSplitter
4
- from langchain.embeddings.openai import OpenAIEmbeddings
5
- from langchain.vectorstores import FAISS
6
- from langchain.chains import ConversationalRetrievalChain
7
- from langchain.llms import OpenAI
8
- import os
9
- import tempfile
10
- from doc_qa import embeddings,llm
11
- from doc_qa_1 import embeddings,doc_qa
12
-
13
- def start_message(doc_name):
14
- st.success("โœ… ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆใฎใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใŒๅฎŒไบ†ใ—ใพใ—ใŸ๏ผ")
15
- st.markdown(f"### ๐Ÿ“„ ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ•ใ‚Œใพใ—ใŸ: `{doc_name}`")
16
- st.markdown("ใ“ใ‚Œใงๆ–‡ๆ›ธใซ้–ขใ™ใ‚‹่ณชๅ•ใŒใงใใพใ™ใ€‚ ๐Ÿ’ฌ")
17
- st.markdown("ไพ‹ใˆใฐใ€ๆฌกใฎใ‚ˆใ†ใช่ณชๅ•ใŒใงใใพใ™ใ€‚:")
18
- st.markdown("- ใ“ใฎๆ–‡ๆ›ธใฏไฝ•ใซใคใ„ใฆๆ›ธใ‹ใ‚Œใฆใ„ใพใ™ใ‹๏ผŸ")
19
- st.markdown("- ้‡่ฆใชใƒใ‚คใƒณใƒˆใ‚’่ฆ็ด„ใ—ใฆใใ ใ•ใ„ใ€‚")
20
- st.markdown("- ่‘—่€…ใฏ่ชฐใงใ™ใ‹๏ผŸ")
21
- st.markdown("ใฏใ˜ใ‚ใ‚‹ใซใฏใ€ไธ‹ใซ่ณชๅ•ใ‚’ๅ…ฅๅŠ›ใ—ใฆใใ ใ•ใ„ใ€‚!")
22
-
23
- # Function to load individual file
24
- def load_file(file, suffix):
25
- with tempfile.NamedTemporaryFile(delete=False, suffix=suffix) as temp_file:
26
- temp_file.write(file.read())
27
- temp_file_path = temp_file.name
28
-
29
- if suffix == ".pdf":
30
- loader = PyPDFLoader(temp_file_path)
31
- elif suffix == ".docx":
32
- loader = Docx2txtLoader(temp_file_path)
33
- elif suffix == ".txt":
34
- loader = TextLoader(temp_file_path)
35
- else:
36
- return []
37
-
38
- return loader.load()
39
- st.set_page_config(
40
- page_title="QA Assistant",
41
- page_icon="https://yourdomain.com/logo.png",
42
- layout="centered"
43
- )
44
- # Title
45
- st.title("๐Ÿ“„ ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ่ณชๅ•ๅฟœ็ญ”ๆ”ฏๆดใƒ„ใƒผใƒซ")
46
-
47
- # Step 1: Upload document
48
- if "file_uploaded" not in st.session_state:
49
- st.session_state.file_uploaded = False
50
- st.markdown("""
51
- ๐Ÿ‘‹ ใ“ใกใ‚‰ใธใ‚ˆใ†ใ“ใ๏ผ็งใฏๆ–‡ๆ›ธใฎๅ†…ๅฎนใ‚’็†่งฃใ™ใ‚‹ใŸใ‚ใฎใ‚คใƒณใƒ†ใƒชใ‚ธใ‚งใƒณใƒˆใ‚ขใ‚ทใ‚นใ‚ฟใƒณใƒˆใงใ™ใ€‚
52
-
53
- ใ‚ใชใŸใฏไปฅไธ‹ใฎใ“ใจใŒใงใใพใ™๏ผš
54
-
55
- PDFใ€DOCXใ€TXTใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰
56
-
57
- ๆ–‡ๆ›ธใฎๅ†…ๅฎนใซใคใ„ใฆ่ณชๅ•
58
-
59
- ่ฆ็ด„ใ€้‡่ฆใƒใ‚คใƒณใƒˆใ€ใพใŸใฏๅ…ทไฝ“็š„ใช่ฉณ็ดฐใฎๅ–ๅพ—
60
-
61
- ๐Ÿ› ๏ธ ่ณชๅ•ใฎไพ‹๏ผš
62
- ใ“ใฎๆ–‡ๆ›ธใฏไฝ•ใซใคใ„ใฆๆ›ธใ‹ใ‚Œใฆใ„ใพใ™ใ‹๏ผŸ
63
-
64
- ไธป่ฆใชใƒใ‚คใƒณใƒˆใ‚’่ฆ็ด„ใ—ใฆใใ ใ•ใ„ใ€‚
65
-
66
- ่‘—่€…ใฏ่ชฐใงใ™ใ‹๏ผŸ
67
-
68
- ้‡่ฆใชๆ—ฅไป˜ใ‚„็ท ใ‚ๅˆ‡ใ‚Šใฏไฝ•ใงใ™ใ‹๏ผŸ
69
-
70
- ็ต่ซ–ใ‚„ๆŽจๅฅจไบ‹้ …ใฏไฝ•ใงใ™ใ‹๏ผŸ
71
-
72
- ๐Ÿ“‚ ใพใšใ€1ใคไปฅไธŠใฎๆ–‡ๆ›ธใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใฆใใ ใ•ใ„ใ€‚
73
- ๐Ÿ’ฌ ใใฎๅพŒใ€ไธ‹ใซ่ณชๅ•ใ‚’ๅ…ฅๅŠ›ใ—ใพใ—ใ‚‡ใ†๏ผ
74
- """)
75
- if "messages" not in st.session_state:
76
- st.session_state.messages = []
77
-
78
-
79
- flag = 0
80
- # Upload multiple files
81
- with st.sidebar:
82
- uploaded_files = st.file_uploader("PDFใ€DOCXใ€ใพใŸใฏTXTใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใ—ใฆใใ ใ•ใ„ใ€‚", type=["pdf", "docx", "txt"], accept_multiple_files=True)
83
- # Load and process documents
84
- file_names=[]
85
- if uploaded_files:
86
- all_docs = []
87
- for file in uploaded_files:
88
- suffix = os.path.splitext(file.name)[1]
89
- docs = load_file(file, suffix)
90
- all_docs.extend(docs)
91
- file_names.append(file.name)
92
-
93
- # Split and embed documents
94
- text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
95
- split_docs = text_splitter.split_documents(all_docs)
96
- #embeddings = OpenAIEmbeddings()
97
- vectorstore = FAISS.from_documents(split_docs, embeddings)
98
-
99
- # Setup ConversationalRetrievalChain
100
- qa_chain = ConversationalRetrievalChain.from_llm(
101
- llm=llm,
102
- retriever=vectorstore.as_retriever(),
103
- return_source_documents=False
104
- )
105
- start_message('\n'.join(file_names))
106
- flag = 1
107
-
108
- # Initialize session state
109
- if "chat_history" not in st.session_state:
110
- st.session_state.chat_history = []
111
-
112
- for msg in st.session_state.messages:
113
- st.chat_message(msg["role"]).write(msg["content"])
114
-
115
- if flag==1:
116
- if user_query := st.chat_input():
117
- st.session_state.messages.append({"role": "user", "content": user_query})
118
- with st.chat_message("user"):
119
- st.markdown(f"**Q:** {user_query}")
120
- result=doc_qa(user_query,vectorstore)
121
- st.session_state.messages.append({"role": "assistant", "content": result["answer"]})
122
- with st.chat_message("assistant"):
123
- st.markdown(result["answer"])
124
- st.session_state.chat_history.append((user_query, result["answer"]))