Spaces:
Sleeping
Sleeping
Upload 12 files
Browse files- .env.example +2 -0
- .gitattributes +1 -0
- .gitignore +160 -0
- .python-version +1 -0
- app.py +259 -0
- banyakberita.txt +1 -0
- banyakdokumen.txt +1 -0
- berita/berita.csv +3 -0
- cadangan.py +104 -0
- file_titles.txt +404 -0
- htmlTemplates.py +46 -0
- readme.md +65 -0
- requirements.txt +14 -0
.env.example
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
OPENAI_API_KEY= "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"
|
2 |
+
HUGGINGFACEHUB_API_TOKEN=
|
.gitattributes
CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
berita/berita.csv filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Byte-compiled / optimized / DLL files
|
2 |
+
__pycache__/
|
3 |
+
*.py[cod]
|
4 |
+
*$py.class
|
5 |
+
|
6 |
+
# C extensions
|
7 |
+
*.so
|
8 |
+
|
9 |
+
# Distribution / packaging
|
10 |
+
.Python
|
11 |
+
build/
|
12 |
+
develop-eggs/
|
13 |
+
dist/
|
14 |
+
downloads/
|
15 |
+
eggs/
|
16 |
+
.eggs/
|
17 |
+
lib/
|
18 |
+
lib64/
|
19 |
+
parts/
|
20 |
+
sdist/
|
21 |
+
var/
|
22 |
+
wheels/
|
23 |
+
share/python-wheels/
|
24 |
+
*.egg-info/
|
25 |
+
.installed.cfg
|
26 |
+
*.egg
|
27 |
+
MANIFEST
|
28 |
+
|
29 |
+
# PyInstaller
|
30 |
+
# Usually these files are written by a python script from a template
|
31 |
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
32 |
+
*.manifest
|
33 |
+
*.spec
|
34 |
+
|
35 |
+
# Installer logs
|
36 |
+
pip-log.txt
|
37 |
+
pip-delete-this-directory.txt
|
38 |
+
|
39 |
+
# Unit test / coverage reports
|
40 |
+
htmlcov/
|
41 |
+
.tox/
|
42 |
+
.nox/
|
43 |
+
.coverage
|
44 |
+
.coverage.*
|
45 |
+
.cache
|
46 |
+
nosetests.xml
|
47 |
+
coverage.xml
|
48 |
+
*.cover
|
49 |
+
*.py,cover
|
50 |
+
.hypothesis/
|
51 |
+
.pytest_cache/
|
52 |
+
cover/
|
53 |
+
|
54 |
+
# Translations
|
55 |
+
*.mo
|
56 |
+
*.pot
|
57 |
+
|
58 |
+
# Django stuff:
|
59 |
+
*.log
|
60 |
+
local_settings.py
|
61 |
+
db.sqlite3
|
62 |
+
db.sqlite3-journal
|
63 |
+
|
64 |
+
# Flask stuff:
|
65 |
+
instance/
|
66 |
+
.webassets-cache
|
67 |
+
|
68 |
+
# Scrapy stuff:
|
69 |
+
.scrapy
|
70 |
+
|
71 |
+
# Sphinx documentation
|
72 |
+
docs/_build/
|
73 |
+
|
74 |
+
# PyBuilder
|
75 |
+
.pybuilder/
|
76 |
+
target/
|
77 |
+
|
78 |
+
# Jupyter Notebook
|
79 |
+
.ipynb_checkpoints
|
80 |
+
|
81 |
+
# IPython
|
82 |
+
profile_default/
|
83 |
+
ipython_config.py
|
84 |
+
|
85 |
+
# pyenv
|
86 |
+
# For a library or package, you might want to ignore these files since the code is
|
87 |
+
# intended to run in multiple environments; otherwise, check them in:
|
88 |
+
# .python-version
|
89 |
+
|
90 |
+
# pipenv
|
91 |
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
92 |
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
93 |
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
94 |
+
# install all needed dependencies.
|
95 |
+
#Pipfile.lock
|
96 |
+
|
97 |
+
# poetry
|
98 |
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
99 |
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
100 |
+
# commonly ignored for libraries.
|
101 |
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
102 |
+
#poetry.lock
|
103 |
+
|
104 |
+
# pdm
|
105 |
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
106 |
+
#pdm.lock
|
107 |
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
108 |
+
# in version control.
|
109 |
+
# https://pdm.fming.dev/#use-with-ide
|
110 |
+
.pdm.toml
|
111 |
+
|
112 |
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
113 |
+
__pypackages__/
|
114 |
+
|
115 |
+
# Celery stuff
|
116 |
+
celerybeat-schedule
|
117 |
+
celerybeat.pid
|
118 |
+
|
119 |
+
# SageMath parsed files
|
120 |
+
*.sage.py
|
121 |
+
|
122 |
+
# Environments
|
123 |
+
.env
|
124 |
+
.venv
|
125 |
+
env/
|
126 |
+
venv/
|
127 |
+
ENV/
|
128 |
+
env.bak/
|
129 |
+
venv.bak/
|
130 |
+
|
131 |
+
# Spyder project settings
|
132 |
+
.spyderproject
|
133 |
+
.spyproject
|
134 |
+
|
135 |
+
# Rope project settings
|
136 |
+
.ropeproject
|
137 |
+
|
138 |
+
# mkdocs documentation
|
139 |
+
/site
|
140 |
+
|
141 |
+
# mypy
|
142 |
+
.mypy_cache/
|
143 |
+
.dmypy.json
|
144 |
+
dmypy.json
|
145 |
+
|
146 |
+
# Pyre type checker
|
147 |
+
.pyre/
|
148 |
+
|
149 |
+
# pytype static type analyzer
|
150 |
+
.pytype/
|
151 |
+
|
152 |
+
# Cython debug symbols
|
153 |
+
cython_debug/
|
154 |
+
|
155 |
+
# PyCharm
|
156 |
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
157 |
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
158 |
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
159 |
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
160 |
+
.idea
|
.python-version
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
3.9
|
app.py
ADDED
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from dotenv import load_dotenv
|
3 |
+
import PyPDF2
|
4 |
+
from PyPDF2 import PdfReader
|
5 |
+
from langchain.text_splitter import CharacterTextSplitter
|
6 |
+
from langchain_openai import OpenAIEmbeddings
|
7 |
+
from langchain_community.vectorstores import FAISS
|
8 |
+
from langchain_openai import ChatOpenAI
|
9 |
+
from langchain.memory import ConversationBufferMemory
|
10 |
+
from langchain.chains import ConversationalRetrievalChain
|
11 |
+
from htmlTemplates import css, bot_template, user_template
|
12 |
+
from langchain_community.llms import HuggingFaceHub
|
13 |
+
from langchain_community.vectorstores import Chroma
|
14 |
+
import pandas as pd
|
15 |
+
import glob
|
16 |
+
import os
|
17 |
+
import re
|
18 |
+
from PyPDF2 import PdfReader
|
19 |
+
|
20 |
+
#tempat vectordb
|
21 |
+
dir = 'data3'
|
22 |
+
|
23 |
+
#embeddings
|
24 |
+
embeddings = OpenAIEmbeddings()
|
25 |
+
|
26 |
+
def import_text_file(file_path):
|
27 |
+
try:
|
28 |
+
with open(file_path, "r", encoding="utf-8") as file:
|
29 |
+
text = file.read()
|
30 |
+
return text
|
31 |
+
except FileNotFoundError:
|
32 |
+
print(f"Error: File not found at path: {file_path}")
|
33 |
+
return ""
|
34 |
+
except Exception as e:
|
35 |
+
print(f"Error reading file: {e}")
|
36 |
+
return ""
|
37 |
+
|
38 |
+
def import_text_file(file_path):
|
39 |
+
try:
|
40 |
+
with open(file_path, "r", encoding="utf-8") as file:
|
41 |
+
text = file.read()
|
42 |
+
return text
|
43 |
+
except FileNotFoundError:
|
44 |
+
print(f"Error: File not found at path: {file_path}")
|
45 |
+
return ""
|
46 |
+
except Exception as e:
|
47 |
+
print(f"Error reading file: {e}")
|
48 |
+
return ""
|
49 |
+
|
50 |
+
#list semua pdf dalam direktori
|
51 |
+
def list_pdf_files_and_save_titles(folder_path):
|
52 |
+
pdf_file_titles = []
|
53 |
+
try:
|
54 |
+
files = os.listdir(folder_path)
|
55 |
+
pdf_files = [file for file in files if file.lower().endswith('.pdf')]
|
56 |
+
for pdf_file in pdf_files:
|
57 |
+
pdf_file_titles.append(pdf_file)
|
58 |
+
|
59 |
+
except FileNotFoundError:
|
60 |
+
print(f"Folder not found: {folder_path}")
|
61 |
+
except Exception as e:
|
62 |
+
print(f"An error occurred: {e}")
|
63 |
+
|
64 |
+
return pdf_file_titles
|
65 |
+
|
66 |
+
#read the document
|
67 |
+
def extract_text_from_pdf(pdf_path):
|
68 |
+
with open(pdf_path, 'rb') as file:
|
69 |
+
pdf_reader = PyPDF2.PdfReader(file)
|
70 |
+
text = ''
|
71 |
+
for page_num in range(len(pdf_reader.pages)):
|
72 |
+
page = pdf_reader.pages[page_num]
|
73 |
+
text += page.extract_text() + "\n"
|
74 |
+
return text
|
75 |
+
|
76 |
+
|
77 |
+
def get_text_chunks(text):
|
78 |
+
text_splitter = CharacterTextSplitter(
|
79 |
+
separator=" ",
|
80 |
+
chunk_size=1000,
|
81 |
+
chunk_overlap=200,
|
82 |
+
length_function=len
|
83 |
+
)
|
84 |
+
chunks = text_splitter.split_text(text)
|
85 |
+
return chunks
|
86 |
+
|
87 |
+
|
88 |
+
def get_vectorstore(text_chunks):
|
89 |
+
# embeddings = HuggingFaceInstructEmbeddings(model_name="hkunlp/instructor-xl")
|
90 |
+
# vectorstore = FAISS.from_texts(texts=text_chunks, embedding=embeddings)
|
91 |
+
vectorstore = Chroma(persist_directory=dir, embedding_function=embeddings)
|
92 |
+
return vectorstore
|
93 |
+
|
94 |
+
|
95 |
+
def get_conversation_chain(vectorstore):
|
96 |
+
llm = ChatOpenAI()
|
97 |
+
memory = ConversationBufferMemory(
|
98 |
+
memory_key='chat_history', return_messages=True)
|
99 |
+
conversation_chain = ConversationalRetrievalChain.from_llm(
|
100 |
+
llm=llm,
|
101 |
+
retriever=vectorstore.as_retriever(),
|
102 |
+
memory=memory
|
103 |
+
)
|
104 |
+
return conversation_chain
|
105 |
+
|
106 |
+
|
107 |
+
def handle_userinput(user_question):
|
108 |
+
response = st.session_state.conversation({'question': user_question})
|
109 |
+
st.session_state.chat_history = response['chat_history']
|
110 |
+
|
111 |
+
for i, message in enumerate(st.session_state.chat_history):
|
112 |
+
if i % 2 == 0:
|
113 |
+
st.write(user_template.replace(
|
114 |
+
"{{MSG}}", message.content), unsafe_allow_html=True)
|
115 |
+
else:
|
116 |
+
st.write(bot_template.replace(
|
117 |
+
"{{MSG}}", message.content), unsafe_allow_html=True)
|
118 |
+
|
119 |
+
|
120 |
+
def main():
|
121 |
+
load_dotenv()
|
122 |
+
#load vector
|
123 |
+
vectorstore = Chroma(persist_directory=dir, embedding_function=embeddings)
|
124 |
+
# create conversation chain
|
125 |
+
st.session_state.conversation = get_conversation_chain(vectorstore)
|
126 |
+
|
127 |
+
st.set_page_config(page_title="Selamat Datang Di Indonesian Climate Bot",
|
128 |
+
page_icon=":sun_behind_rain_cloud:")
|
129 |
+
st.write(css, unsafe_allow_html=True)
|
130 |
+
|
131 |
+
if "conversation" not in st.session_state:
|
132 |
+
st.session_state.conversation = None
|
133 |
+
if "chat_history" not in st.session_state:
|
134 |
+
st.session_state.chat_history = None
|
135 |
+
|
136 |
+
st.header("Indonesian Climate Chatbot :sun_behind_rain_cloud:")
|
137 |
+
user_question = st.text_input("Tanyakan padaku seputar perubahan iklim:")
|
138 |
+
if user_question:
|
139 |
+
handle_userinput(user_question)
|
140 |
+
|
141 |
+
with st.sidebar:
|
142 |
+
st.header(":blue[Jumlah Dokumen dan Berita]")
|
143 |
+
banyakDokumen = import_text_file("banyakdokumen.txt")
|
144 |
+
banyakBerita = import_text_file("banyakberita.txt")
|
145 |
+
|
146 |
+
#showing the regulation docs
|
147 |
+
with open("file_titles.txt", "r") as file:
|
148 |
+
my_list = file.readlines() # Reads all lines into a list
|
149 |
+
|
150 |
+
# Remove trailing newlines (if necessary)
|
151 |
+
file_titles = [item.strip() for item in my_list]
|
152 |
+
|
153 |
+
#show pdf files yang dipakai
|
154 |
+
with st.container(height=300):
|
155 |
+
s = ''
|
156 |
+
for i in file_titles:
|
157 |
+
s += "- " + i + "\n"
|
158 |
+
st.markdown(s)
|
159 |
+
|
160 |
+
st.write("jumlah dokumen regulasi: "+ ":green[{}]".format(banyakDokumen))
|
161 |
+
st.write("jumlah dokumen berita: "+ ":green[{}]".format(banyakBerita))
|
162 |
+
|
163 |
+
# st.subheader("Your documents")
|
164 |
+
# pdf_docs = st.file_uploader(
|
165 |
+
# "Upload your PDFs here and click on 'Process'", accept_multiple_files=True)
|
166 |
+
# if st.button("Process"):
|
167 |
+
# with st.spinner("Processing"):
|
168 |
+
# # get pdf text
|
169 |
+
# raw_text = get_pdf_text(pdf_docs)
|
170 |
+
|
171 |
+
# # get the text chunks
|
172 |
+
# text_chunks = get_text_chunks(raw_text)
|
173 |
+
|
174 |
+
# # create vector store
|
175 |
+
# vectorstore = get_vectorstore(text_chunks)
|
176 |
+
|
177 |
+
# # create conversation chain
|
178 |
+
# st.session_state.conversation = get_conversation_chain(
|
179 |
+
# vectorstore)
|
180 |
+
|
181 |
+
if st.button("Re-Processing New Data"):
|
182 |
+
with st.spinner("Processing..."):
|
183 |
+
# BERITA
|
184 |
+
# # Find a CSV files in the directory
|
185 |
+
# sumber = glob.glob("berita/*.csv")
|
186 |
+
# df = pd.read_csv(sumber[0])
|
187 |
+
# banyakBerita = len(df)
|
188 |
+
# print("sumber berita ditemukan")
|
189 |
+
|
190 |
+
# #update banyak berita txt
|
191 |
+
# with open("banyakBerita.txt", "w") as file:
|
192 |
+
# file.write(str(banyakBerita))
|
193 |
+
# print("update file text berita berhasil")
|
194 |
+
|
195 |
+
# #combining and converting
|
196 |
+
# df["combined"] = ""
|
197 |
+
# for row in range(len(df)):
|
198 |
+
# kombinasi = "berita ke-" + str(row+1) + " \n " + "judul: " + str(df['title'].loc[row]) + " \n " + "link: "+ str(df['url'].loc[row]) + " \n " + "tanggal rilis: " + str(df['datetime'].loc[row]) + " \n " + "penulis: " + str(df['author'].loc[row]) + " \n " + "isi berita: " + str(df['text'].loc[row]) + " \n " + "sumber: " + str(df['source'].loc[row]) + " \n "
|
199 |
+
# df['combined'].loc[row] = kombinasi
|
200 |
+
# listberita = df["combined"].tolist()
|
201 |
+
# textberita = " ".join(listberita)
|
202 |
+
# print("combining and converting berhasil")
|
203 |
+
|
204 |
+
# directory ke pdf regulasi
|
205 |
+
folder_path = 'pdf/'
|
206 |
+
file_titles = list_pdf_files_and_save_titles(folder_path)
|
207 |
+
banyakDokumen = len(file_titles)
|
208 |
+
|
209 |
+
#saving the file titles
|
210 |
+
with open("file_titles.txt", "w") as file:
|
211 |
+
for item in file_titles:
|
212 |
+
file.write(item + "\n")
|
213 |
+
|
214 |
+
#update banyak dokumen txt
|
215 |
+
with open("banyakDokumen.txt", "w") as file:
|
216 |
+
file.write(str(banyakDokumen))
|
217 |
+
print("update file text dokumen berhasil")
|
218 |
+
|
219 |
+
#converting ke text untuk pdf dokument
|
220 |
+
textdokumen=''
|
221 |
+
for doc in range(len(file_titles)):
|
222 |
+
judul = " \n " + "AWAL DOKUMEN KE- "+ str(doc+1) + " \n "
|
223 |
+
batas = "=========="
|
224 |
+
akhir = " \n " + "AKHIR DOKUMEN KE- "+ str(doc+1) + " \n "
|
225 |
+
textdokumen = textdokumen + "{}{}{}{}{}".format(judul,batas,extract_text_from_pdf('pdf/'+file_titles[doc]),batas,akhir)
|
226 |
+
print("converting ke text untuk pdf dokumen berhasil")
|
227 |
+
|
228 |
+
#combine text berita sama dokumen
|
229 |
+
final = textdokumen
|
230 |
+
# + textberita
|
231 |
+
print("combining 2 sumber pelatihan berhasil")
|
232 |
+
|
233 |
+
#splitting
|
234 |
+
texts = get_text_chunks(final)
|
235 |
+
print("splitting final text berhasil")
|
236 |
+
|
237 |
+
#save dengan chroma
|
238 |
+
dirsave = "cumandoc"
|
239 |
+
vectorstore = Chroma.from_texts(texts,
|
240 |
+
embeddings,
|
241 |
+
persist_directory=dirsave)
|
242 |
+
# persist the db to disk
|
243 |
+
vectorstore.persist()
|
244 |
+
vectorstore = None
|
245 |
+
print("simpan hasil vektor ke chroma berhasil")
|
246 |
+
|
247 |
+
st.write(":orange[Pembaharuan Berhasil!]")
|
248 |
+
|
249 |
+
|
250 |
+
|
251 |
+
# Create an empty placeholder at the bottom
|
252 |
+
placeholder = st.sidebar.empty()
|
253 |
+
|
254 |
+
# Add the label within the placeholder
|
255 |
+
with placeholder:
|
256 |
+
st.markdown("**by Oriza Nurfajri**")
|
257 |
+
|
258 |
+
if __name__ == '__main__':
|
259 |
+
main()
|
banyakberita.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
11507
|
banyakdokumen.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
404
|
berita/berita.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:9410164262073ab4a6fb48f6e4bd79a2e38de1a4feed0d3ba28e2cab77cb2eed
|
3 |
+
size 32822079
|
cadangan.py
ADDED
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from dotenv import load_dotenv
|
3 |
+
from PyPDF2 import PdfReader
|
4 |
+
from langchain.text_splitter import CharacterTextSplitter
|
5 |
+
from langchain.embeddings import OpenAIEmbeddings, HuggingFaceInstructEmbeddings
|
6 |
+
from langchain.vectorstores import FAISS
|
7 |
+
from langchain.chat_models import ChatOpenAI
|
8 |
+
from langchain.memory import ConversationBufferMemory
|
9 |
+
from langchain.chains import ConversationalRetrievalChain
|
10 |
+
from htmlTemplates import css, bot_template, user_template
|
11 |
+
from langchain.llms import HuggingFaceHub
|
12 |
+
|
13 |
+
def get_pdf_text(pdf_docs):
|
14 |
+
text = ""
|
15 |
+
for pdf in pdf_docs:
|
16 |
+
pdf_reader = PdfReader(pdf)
|
17 |
+
for page in pdf_reader.pages:
|
18 |
+
text += page.extract_text()
|
19 |
+
return text
|
20 |
+
|
21 |
+
|
22 |
+
def get_text_chunks(text):
|
23 |
+
text_splitter = CharacterTextSplitter(
|
24 |
+
separator="\n",
|
25 |
+
chunk_size=1000,
|
26 |
+
chunk_overlap=200,
|
27 |
+
length_function=len
|
28 |
+
)
|
29 |
+
chunks = text_splitter.split_text(text)
|
30 |
+
return chunks
|
31 |
+
|
32 |
+
|
33 |
+
def get_vectorstore(text_chunks):
|
34 |
+
embeddings = OpenAIEmbeddings()
|
35 |
+
# embeddings = HuggingFaceInstructEmbeddings(model_name="hkunlp/instructor-xl")
|
36 |
+
vectorstore = FAISS.from_texts(texts=text_chunks, embedding=embeddings)
|
37 |
+
return vectorstore
|
38 |
+
|
39 |
+
|
40 |
+
def get_conversation_chain(vectorstore):
|
41 |
+
llm = ChatOpenAI()
|
42 |
+
# llm = HuggingFaceHub(repo_id="google/flan-t5-xxl", model_kwargs={"temperature":0.5, "max_length":512})
|
43 |
+
|
44 |
+
memory = ConversationBufferMemory(
|
45 |
+
memory_key='chat_history', return_messages=True)
|
46 |
+
conversation_chain = ConversationalRetrievalChain.from_llm(
|
47 |
+
llm=llm,
|
48 |
+
retriever=vectorstore.as_retriever(),
|
49 |
+
memory=memory
|
50 |
+
)
|
51 |
+
return conversation_chain
|
52 |
+
|
53 |
+
|
54 |
+
def handle_userinput(user_question):
|
55 |
+
response = st.session_state.conversation({'question': user_question})
|
56 |
+
st.session_state.chat_history = response['chat_history']
|
57 |
+
|
58 |
+
for i, message in enumerate(st.session_state.chat_history):
|
59 |
+
if i % 2 == 0:
|
60 |
+
st.write(user_template.replace(
|
61 |
+
"{{MSG}}", message.content), unsafe_allow_html=True)
|
62 |
+
else:
|
63 |
+
st.write(bot_template.replace(
|
64 |
+
"{{MSG}}", message.content), unsafe_allow_html=True)
|
65 |
+
|
66 |
+
|
67 |
+
def main():
|
68 |
+
load_dotenv()
|
69 |
+
st.set_page_config(page_title="Chat with multiple PDFs",
|
70 |
+
page_icon=":books:")
|
71 |
+
st.write(css, unsafe_allow_html=True)
|
72 |
+
|
73 |
+
if "conversation" not in st.session_state:
|
74 |
+
st.session_state.conversation = None
|
75 |
+
if "chat_history" not in st.session_state:
|
76 |
+
st.session_state.chat_history = None
|
77 |
+
|
78 |
+
st.header("Chat with multiple PDFs :books:")
|
79 |
+
user_question = st.text_input("Ask a question about your documents:")
|
80 |
+
if user_question:
|
81 |
+
handle_userinput(user_question)
|
82 |
+
|
83 |
+
with st.sidebar:
|
84 |
+
st.subheader("Your documents")
|
85 |
+
pdf_docs = st.file_uploader(
|
86 |
+
"Upload your PDFs here and click on 'Process'", accept_multiple_files=True)
|
87 |
+
if st.button("Process"):
|
88 |
+
with st.spinner("Processing"):
|
89 |
+
# get pdf text
|
90 |
+
raw_text = get_pdf_text(pdf_docs)
|
91 |
+
|
92 |
+
# get the text chunks
|
93 |
+
text_chunks = get_text_chunks(raw_text)
|
94 |
+
|
95 |
+
# create vector store
|
96 |
+
vectorstore = get_vectorstore(text_chunks)
|
97 |
+
|
98 |
+
# create conversation chain
|
99 |
+
st.session_state.conversation = get_conversation_chain(
|
100 |
+
vectorstore)
|
101 |
+
|
102 |
+
|
103 |
+
if __name__ == '__main__':
|
104 |
+
main()
|
file_titles.txt
ADDED
@@ -0,0 +1,404 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara No 11 Tahun 2015.pdf
|
2 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara No 30 Tahun 2015.pdf
|
3 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara No 79 Tahun 2017.pdf
|
4 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara No.25 Tahun 2010.pdf
|
5 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara Nomor 27 Tahun 2017.pdf
|
6 |
+
02-Sumatera Utara-Peraturan Gubernur Sumatera Utara Nomor 51 Tahun 2011.pdf
|
7 |
+
03-Sumatera Selatan-Peraturan Gubernur No 01 Tahun 2002.pdf
|
8 |
+
03-Sumatera Selatan-Peraturan Gubernur No 06 Tahun 2010.pdf
|
9 |
+
03-Sumatera Selatan-Peraturan Gubernur No 11 Tahun 2004.pdf
|
10 |
+
03-Sumatera Selatan-Peraturan Gubernur No 38 Tahun 2012.pdf
|
11 |
+
03-Sumatera Selatan-Peraturan Gubernur No 57 Tahun 2008.pdf
|
12 |
+
03-Sumatera Selatan-Peraturan Gubernur No 69 Tahun 2016.pdf
|
13 |
+
05-Bengkulu-Peraturan Gubernur Bengkulu No 04 Tahun 2018.pdf
|
14 |
+
05-Bengkulu-Peraturan Gubernur Bengkulu No 26 Tahun 2014.pdf
|
15 |
+
05-Bengkulu-Peraturan Gubernur Bengkulu No 59 Tahun 2017.pdf
|
16 |
+
06-Riau-Peraturan Gubernur No 17 Tahun 2009.pdf
|
17 |
+
06-Riau-Peraturan Gubernur No 62 Tahun 2017.pdf
|
18 |
+
06-Riau-Peraturan Gubernur No 73 Tahun 2016.pdf
|
19 |
+
07-Kepulauan Riau-Peraturan Gubernur No 12 Tahun 2006.pdf
|
20 |
+
07-Kepulauan Riau-Peraturan Gubernur No 19 Tahun 2007.pdf
|
21 |
+
08-Jambi-Peraturan Gubernur Jambi No 26 Tahun 2018.pdf
|
22 |
+
08-Jambi-Peraturan Gubernur Jambi No 53 Tahun 2016.pdf
|
23 |
+
09-Lampung-Peraturan Gubernur Lampung No 25 Tahun 2007.pdf
|
24 |
+
09-Lampung-Peraturan Gubernur Lampung No 41 Tahun 2018.pdf
|
25 |
+
09-Lampung-Peraturan Gubernur Lampung No 70 Tahun 2016.pdf
|
26 |
+
1 - DKI Jakarta - Peraturan Gubernur Nomor 90 Tahun 2021.pdf
|
27 |
+
1 - National - Peraturan Presiden (PERPRES) Nomor 98.pdf
|
28 |
+
10 - Kalimantan Tengah - Peraturan Gubernur No. 11 Tahun 2010.pdf
|
29 |
+
10 - National -Permentan Nomor 39 Tahun 2018.pdf
|
30 |
+
10-Bangka Belitung-Peraturan Gubernur Bangka Belitung No 09 Tahun 2017.pdf
|
31 |
+
10-Bangka Belitung-Peraturan Gubernur Bangka Belitung No 13 Tahun 2017.pdf
|
32 |
+
10-Bangka Belitung-Peraturan Gubernur Nomor 40 Tahun 2013.pdf
|
33 |
+
11 - Kalimantan Utara - Peraturan Gubernur No. 16 Tahun 2020.pdf
|
34 |
+
11 - National - Keputusan Menteri Perhubungan Nomor KM 8.pdf
|
35 |
+
12 - Banten - Peraturan Gubernur No. 43 Tahun 2016.pdf
|
36 |
+
12 - National - Permen ESDM Nomor 22 Tahun 2019.pdf
|
37 |
+
12-Kalimantan Timur-Peraturan Gubernur Kalimantan Timur No 02 Tahun 2011.pdf
|
38 |
+
12-Kalimantan Timur-Peraturan Gubernur Kalimantan Timur No 27 Tahun 2022.pdf
|
39 |
+
12-Kalimantan Timur-Peraturan Gubernur Kalimantan Timur No 45 Tahun 2015.pdf
|
40 |
+
12-Kalimantan Timur-Peraturan Gubernur Kalimantan Timur No 54 Tahun 2013.pdf
|
41 |
+
13 - Jawa Tengah - Peraturan Gubernur No. 51 Tahun 2019.pdf
|
42 |
+
13 - National - Peraturan Menteri Lingkungan Hidup dan Kehutanan Nomor P.72_MENLHK_SETJEN_KUM.1_12_2017.pdf
|
43 |
+
14 - National - permenlhk-nomor-p.73-tahun-2017.pdf
|
44 |
+
14 - NTB - Peraturan Gubernur No. 54 Tahun 2019.pdf
|
45 |
+
14-Kalimantan Tengah-Peraturan Gubernur Kalimantan Tengah No 11 Tahun 2010.pdf
|
46 |
+
14-Kalimantan Tengah-Peraturan Gubernur Kalimantan Tengah No 16 Tahun 2015.pdf
|
47 |
+
14-Kalimantan Tengah-Peraturan Gubernur Kalimantan Tengah No 38 Tahun 2016.pdf
|
48 |
+
15 - Maluku - Peraturan Gubernur No. 7 Tahun 2016.pdf
|
49 |
+
15 - National - Peraturan Menteri Lingkungan Hidup Nomor 19 Tahun 2012.pdf
|
50 |
+
16 - DKI Jakarta - Peraturan Gubernur Nomor 131 Tahun 2012.pdf
|
51 |
+
16 - National - Permendag No. 38 Tahun 2010.pdf
|
52 |
+
17 - National - Permen.Perind No 33 2007.pdf
|
53 |
+
17 - Sumatera Utara - Peraturan Gubernur Sumatera Utara Nomor 36 Tahun 2012.pdf
|
54 |
+
17-DKI Jakarta-Peraturan Gubernur No 104 Tahun 2019.pdf
|
55 |
+
17-DKI Jakarta-Peraturan Gubernur No 112 Tahun 2018.pdf
|
56 |
+
17-DKI Jakarta-Peraturan Gubernur No 268 Tahun 2016.pdf
|
57 |
+
17-DKI Jakarta-Peraturan Gubernur No 90 Tahun 2021.pdf
|
58 |
+
18 - Lampung - Peraturan Gubernur No. 32.a Tahun 2012.pdf
|
59 |
+
18 - National - Keputusan Presiden No 92 TH 1998.pdf
|
60 |
+
18-Jawa Barat-Peraturan Gubernur Jawa Barat Nomor 170 Tahun 2021.pdf
|
61 |
+
18-Jawa Barat-Peraturan Gubernur Jawa Barat Nomor 49 Tahun 2009.pdf
|
62 |
+
18-Jawa Barat-Peraturan Gubernur Jawa Barat Nomor 55 Tahun 2018.pdf
|
63 |
+
19 - Kalimantan Barat - Peraturan Gubernur Kalimantan Barat Nomor 125 Tahun 2020.pdf
|
64 |
+
19 - National - UU Nomor 6 Tahun 1994.pdf
|
65 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 147 Tahun 2008.pdf
|
66 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 20 Tahun 2009.pdf
|
67 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 22 Tahun 2016.pdf
|
68 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 23 Tahun 2017_unlocked.pdf
|
69 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 23 Tahun 2018.pdf
|
70 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 24 Tahun 2017.pdf
|
71 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 24 Tahun 2018.pdf
|
72 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 40 Tahun 2016.pdf
|
73 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 51 Tahun 2019.pdf
|
74 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah No 95 Tahun 2018.pdf
|
75 |
+
19-Jawa Tengah-Peraturan Gubernur Jawa Tengah Nomor 16 Tahun 2023.pdf
|
76 |
+
190614140416Regulation of Gov_Number71_2014.pdf
|
77 |
+
1a-Aceh Barat-Qanun No 16 Tahun 2012-Ttg Rencana Pembangunan Jangka Panjang Daerah (RPJPD) Kabupaten Aceh Barat.pdf
|
78 |
+
1b-Aceh Barat-Perbup No 65 Tahun 2022-Ttg Perubahan Atas Peraturan Bupati Aceh Barat Nomor 52 Tahun 2021 Tentanq Analisis standar Belanja Pemerintah Kabupaten Aceh Barat.pdf
|
79 |
+
1d-Aceh Barat-Perbup No 13 Tahun 2022-Ttg Standar Biaya Umum Pemerintah Kabupaten Aceh Barat Tahun Anggaran 2023.pdf
|
80 |
+
1e-Aceh Barat-Qanun No 1 Tahun 2022-Ttg Perlindungan Lahan Pertanian Pangan Berkelanjutan.pdf
|
81 |
+
1f-Aceh Barat-Perbup No 52 Tahun 2021-Ttg Standar Biaya Umum Pemerintah Kabupaten Aceh Barat Tahun Anggaran 2023.pdf
|
82 |
+
1g-Aceh Barat-Qanun No 4 Tahun 2017-Ttg Pengelolaan Sampah.pdf
|
83 |
+
1h-Aceh Barat-Qanun Aceh No 2 Tahun 2022-Ttg Perlindungan Lahan Pertanian Pangan Berkelanjutan.pdf
|
84 |
+
1i-Aceh Barat-Perbup No 9 Tahun 2010-Ttg Ketertiban Umum.pdf
|
85 |
+
2 - DKI Jakarta - Instruksi Gubernur Nomor 17 Tahun 2021.pdf
|
86 |
+
2 - National - PP Nomor 23 Tahun 2021.pdf
|
87 |
+
20 - Kalimantan Timur - Peraturan Gubernur Nomor 39 Tahun 2014.pdf
|
88 |
+
20 - National - UU Nomor 16 Tahun 2016.pdf
|
89 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 27 Tahun 2021.pdf
|
90 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 32 Tahun 2010.pdf
|
91 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 57 Tahun 2008.pdf
|
92 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 60 Tahun 2018.pdf
|
93 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 75 Tahun 2019.pdf
|
94 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 76 Tahun 2015.pdf
|
95 |
+
20-Daerah Istimewa Yogyakarta-Peraturan Gubernur No 83 Tahun 2021.pdf
|
96 |
+
21 - Kalimantan Timur - Peraturan Gubernur Nomor 54 Tahun 2012.pdf
|
97 |
+
21 - National - UU Nomor 17 Tahun 2004.pdf
|
98 |
+
21-Jawa Timur-Peraturan Gubernur Jawa Timur No 107 Tahun 2008.pdf
|
99 |
+
21-Jawa Timur-Peraturan Gubernur Jawa Timur No 53 Tahun 2011.pdf
|
100 |
+
21-Jawa Timur-Peraturan Gubernur Jawa Timur No 85 Tahun 2016.pdf
|
101 |
+
22 - National - Keppres No 23 TH 1992.pdf
|
102 |
+
23 - Kalimantan Utara - Peraturan Gubernur No. 7 Tahun 2019.pdf
|
103 |
+
23 - National - Keputusan_Presiden_no_92 TH 1998.pdf
|
104 |
+
23-Nusa Tenggara Timur-Peraturan Gubernur Nusa Tenggara Timur No 36 Tahun 2018.pdf
|
105 |
+
24 - Jawa Barat - Peraturan Gubernur No 56 Tahun 2012.pdf
|
106 |
+
24 - National - PERPRES NO 33 TH 2005 .pdf
|
107 |
+
24-Nusa Tenggara Barat-Peraturan Gubernur No 24 Tahun 2019.pdf
|
108 |
+
25 - Jawa Tengah - Peraturan Gubernur Nomor 43 Tahun 2012.pdf
|
109 |
+
25 - National - PERPRES NO 46 TH 2005.pdf
|
110 |
+
26 - Jawa Timur - Peraturan Gubernur Jawa Timur Nomor 67 Tahun 2012.pdf
|
111 |
+
26 - National - UU Nomor 7 Tahun 2021.pdf
|
112 |
+
26-Sulawesi Barat-Peraturan Gubernur No 07 Tahun 2010.pdf
|
113 |
+
27 - Bali - Peraturan Gubernur Bali Nomor 49 Tahun 2012.pdf
|
114 |
+
27 - National - PP Nomor 16 Tahun 2021-dikompresi.pdf
|
115 |
+
27-Sulawesi Tengah-Peraturan Gubernur Sulawesi Tengah Nomor 54 Tahun 2017.pdf
|
116 |
+
28 - National - Permen PUPR_21_2021.pdf
|
117 |
+
28 - Sulawesi Barat - Peraturan Gubernur Sulawesi Barat Nomor 28 Tahun 2012.pdf
|
118 |
+
29 - National - UU Nomor 32 Tahun 2009.pdf
|
119 |
+
29 - Sulawesi Tengah - Peraturan Gubernur Sulawesi Tengah Nomor 30 Tahun 2012.pdf
|
120 |
+
29-Sulawesi Tenggara-Peraturan Gubernur No 72 Tahun 2017.pdf
|
121 |
+
29-Sulawesi Tenggara-Peraturan Gubernur Sulawesi Tenggara No 16 Tahun 2017.pdf
|
122 |
+
29-Sulawesi Tenggara-Peraturan Gubernur Sulawesi Tenggara No 34 Tahun 2018.pdf
|
123 |
+
2a-Aceh Barat Daya-Qanun No 12 Tahun 2013-Ttg Pengelolaan Sumber Daya Air.pdf
|
124 |
+
2b-Aceh Barat Daya-Perbup No 2 Tahun 2022-Ttg Prioritas Penggunaan Dana Desa, Alokasi Dana Gampong serta Bagian dari Hasil Pajak dan Retribusi Kabupaten Tahun Anggaran 2022.pdf
|
125 |
+
2c-Aceh Barat Daya-Perbup No 13 Tahun 2016-Ttg Petunjuk Penggunaan Dana Operasional Penanggulangan Bencana dan Mitigasi.pdf
|
126 |
+
2d-Aceh Barat Daya-Perbup No 05 Tahun 2023-Ttg Rencana Strategis Dinas Ketenagakerjaan dan Transmigrasi Kabupaten Aceh Barat Daya Tahun 2023-2028.pdf
|
127 |
+
2e-Aceh Barat Daya-Perbup No 2 Tahun 2023-Ttg Rencana Pembangunan Jangka Menengah Daerah (RPJMD) Kabupaten Aceh Barat Daya Tahun 2023-2028.pdf
|
128 |
+
2f-Aceh Barat Daya-Perbup No 11 Tahun 2022-Ttg Rencana Pembangunan Daerah Kabupaten Aceh Barat Daya Tahun 2023-2026.pdf
|
129 |
+
2g-Aceh Barat Daya-Perbup No 04 Tahun 2023-Ttg Rencana Strategis Dinas Pendidikan dan Kebudayaan Kabupaten Aceh Barat Daya Tahun 2023-2028.pdf
|
130 |
+
2h-Aceh Barat Daya-Perbup No 12 Tahun 2022-Ttg Pengelolaan Kawasan Pesisir dan Pulau-Pulau Kecil.pdf
|
131 |
+
2i-Aceh Barat Daya-Qanun No 1 Tahun 2022-Ttg Perlindungan Lahan Pertanian Pangan Berkelanjutan.pdf
|
132 |
+
2j-Aceh Barat Daya-Perbup No 13 Tahun 2022-Ttg perubahan kedua tentang kebijakan akuntansi pemerintah.pdf
|
133 |
+
2k-Aceh Barat Daya-Perbup 22 tahun 2022-Ttg optimalisasi penyelenggaraan keadilan restoratif.pdf
|
134 |
+
2l-Aceh Barat Daya-Perbup No 13 Tahun 2021-Ttg kebijakan strategi pengelolaan sampah rumah tangga dan sampah sejenis.pdf
|
135 |
+
3 - DKI Jakarta - Instruksi Gubernur Nomor 52 Tahun 2020.pdf
|
136 |
+
3 - National - UU Nomor 32 Tahun 2009.pdf
|
137 |
+
30 - National - 2023pmkeuangan038.pdf
|
138 |
+
30 - Sulawesi Selatan - Peraturan Gubernur Sulawesi Selatan Nomor 11 Tahun 2020.pdf
|
139 |
+
31 - DKI Jakarta - Peraturan Gubernur Nomor 66 Tahun 2020.pdf
|
140 |
+
31 - National - Permen ESDM nomor 3 Tahun 2023.pdf
|
141 |
+
32 - Kalimantan Barat - Keputusan Gubernur Kalimantan Barat Nomor 1215 DLHK Tahun 2020.pdf
|
142 |
+
32 - National - UU Nomor 41 Tahun 1999.pdf
|
143 |
+
32-Maluku-Peraturan Gubernur Maluku No 07 Tahun 2016.pdf
|
144 |
+
32-Maluku-Peraturan Gubernur Maluku No 41 Tahun 2017.pdf
|
145 |
+
33 - Jawa Timur - Peraturan Gubernur Nomor 10 Tahun 2009.pdf
|
146 |
+
33 - National - UU Nomor 06 Tahun 2014.pdf
|
147 |
+
33-Papua Barat-Peraturan Gubernur Papua Barat No 19 Tahun 2018.pdf
|
148 |
+
34 - Jawa Timur - Peraturan Gubernur Nomor 39 Tahun 2008.pdf
|
149 |
+
34 - National - Permendesa Nomor 1 Tahun 2015.pdf
|
150 |
+
35 - DKI Jakarta - Peraturan Gubernur No 9 Tahun 2022.pdf
|
151 |
+
35 - National - Permendesa Nomor 16 Tahun 2018.pdf
|
152 |
+
36 - Jawa Barat - Peraturan Gubernur Jawa Barat Nomor 32 Tahun 2023.pdf
|
153 |
+
36 - National - Permendesa Nomor 21 Tahun 2020.pdf
|
154 |
+
3b-Aceh Besar-Perbup No 17 Tahun 2022-Ttg Tata Cara Penataan Wilayah Adat Mukim dan Harta Kekayaan Mukim di Kabupaten Aceh Besar.pdf
|
155 |
+
3c-Aceh Besar- Perbup No 5 Tahun 2021-Ttg Tata Cara Penertiban Hewan Ternak Di Kabupaten Aceh Besar.pdf
|
156 |
+
3f-Aceh Besar-Perbup No 2 Tahun 2023-Ttg Tata Cara Pengelolaan dan Pengalokasian Alokasi Dana Gampong Dalam Kabupaten Aceh Besar 2023.pdf
|
157 |
+
3h-Aceh Besar- Perbup No 16 Tahun 2023- Ttg Analisis Standar Belanja Pemerintah Kabupaten Aceh Besar.pdf
|
158 |
+
3i-Aceh Besar-Qanun No 1 Tahun 2022- Ttg Sistem Pendidikan Terpadu.pdf
|
159 |
+
3j-Aceh Besar-Perbup No 3 Tahun 2021-Ttg Pedoman Pelaksanaan Gerakan Masyarakat Hidup Sehat di Kabupaten Aceh Besar.pdf
|
160 |
+
3k-Aceh Besar-Perbup No 33 Tahun 2019- Ttg Kebijakan dan Strategi Daerah Pengelolaan Sampah Rumah Tangga dan Sampah Sejenis Sampah Rumah Tangga Kabupaten Aceh Besar.pdf
|
161 |
+
3l-Aceh Besar-Qanun No 2 Tahun 2022- Ttg Perlindungan Lahan Pertanian Pangan Berkelanjutan.pdf
|
162 |
+
4 - DKI Jakarta - Instruksi Gubernur Nomor 127 Tahun 2017.pdf
|
163 |
+
4 - National - Permen LHK Nomor 21 Tahun 2022.pdf
|
164 |
+
454a-Kepulauan Aru-Perbup no 19 tahun 2019-Ttg Pengelolaan Sampah.pdf
|
165 |
+
457a-Maluku tengah-Perda No11 th 2022-Pengelolaan Sampah.pdf
|
166 |
+
457b-Maluku Tengah-Perda No 5 th 2021-Perlindungan lahan pertanian pangan berkelanjutan.pdf
|
167 |
+
457c-Maluku Tengah-Perbup No22 th 2021-Rencana Umum Penanaman Modal th2019-2025.pdf
|
168 |
+
457d-Maluku Tengah-Perda-No6 th 2012-RTRW Maluku Tengah 2011-2031.pdf
|
169 |
+
463a-Maluku Utara-Halmahera Barat-Peraturan Bupati No.44 tahun 2017 Ttg Tugas Pokok dan Fungsi Badan Kesatuan Bangsa dan Politik Daerah Kabupaten Halmahera Barat.pdf
|
170 |
+
463b-Maluku Utara- Halmahera Barat-Peraturan Bupati Halmahera Barat No.29 tahun 2017 Ttg Tugas Pokok danFungsi Dinas Ketahanan Pangan Kabupaten Halmahera Barat.pdf
|
171 |
+
463c-Maluku Utara-Halmahera Barat-Peraturan Daerah Halmahera Barat No. 8 tahun 2019 Ttg Pengelolaan Persampahan.pdf
|
172 |
+
463d-Maluku Utara-Halmahera Barat-Peraturan Bupati Halmahera Barat No.4A tahun 2019.pdf
|
173 |
+
463e-Maluku Utara-Halmahera Barat-Peraturan Daerah Kabupaten Halmahera Barat No.4 tahun 2012 Ttg Pengelolaan Wilayah Pesisir dan Pulau Kecil secara Terintegrasi dan Berkelanjutan.pdf
|
174 |
+
463f-Maluku Utara-Halmahera Barat-Peraturan Bupati Halmahera Barat No 6A tahun 2020 Ttg Petunjuk Teknis Pengelolaan Dana Desa Kabupaten Halmahera Barat Tahun Anggaran 2020.pdf
|
175 |
+
463g-Maluku Utara-Halmahera Barat-Perturan Bupati Halmahera Barat No.32 tahun 2017 Ttg Tugas Poko dan Fungsi Dinas Pertanian Kabupaten Halmahera Barat Tahun Anggaran 2020.pdf
|
176 |
+
463h-Maluku Utara-Halmahera Barat-Peraturan Daerah Kabupaten Halmahera Barat No.35 tahun 2012 Ttg Organisasi dan Tata Kerja Badan Penanggulangan Bencana Daerah Kabupaten Halmahera Barat.pdf
|
177 |
+
463i-MalukuUtara-Halmahera Barat-Perda Kab Halmahera No 2 tahun 2021 Ttg Perubahan atas Perda No 6 tahun 2016 Ttg Pembentukan dan Susunan Perangkat Daerah Kabupaten Halmahera Barat.pdf
|
178 |
+
463j-Maluku Utara-Halmahera Barat-Peraturan Daerah Kabupaten Halmahera Barat No.3 tahun 2012 ttg Pengelolaan Ekosistem Terumbu Karang(Coral Reef) di Kabupaten Halmahera Barat.pdf
|
179 |
+
464a-Maluku Utara-Halmahera Tengah-Peraturan Daerah Kabupaten Halmahera Tengah No.6 tahun 2016 Ttg Pengeloaan Ruang Terbuka Hijau.pdf
|
180 |
+
464b-Maluku Utara-Halmahera Tengah-Perbup Halteng No. 30 tahun 2018 Ttg Kedudukan, Susunan Organisasi Tugas dan Fungsi serta Tata Kerja Dinas Pertanian Kab. Halteng.pdf
|
181 |
+
464c-Maluku Utara-Halmahera Tengah-Perda No. 7 tahun 2012 Ttg Pembentukan Organisasi dan Tata Kerja BPBD Kabupaten Halteng.pdf
|
182 |
+
464d-Maluku Utara-Halmahera Tengah-Perbup Halteng No. 43 tahun 2012 Ttg Kedudukan, SOTK Badan Kesatuan Bangsa dan Politik Kab. Halteng.pdf
|
183 |
+
464e-Maluku Utara-Halmahera Tengah-Perbup Halmahera Tengah no.64 tahun 2022 Ttg Peraturan Pelaksanaan Perda No.5 tahun 2016 Ttg Pengelolaan Sampah dan Kebersihan di Kab Halteng.pdf
|
184 |
+
464f-Maluku Utara-Halmahera Tengah-Perda Kabupaten Halmahera Tengah No.5 tahun 2016 Ttg Pengelolaan Sampah dan Kebersihan di Kab Halteng.pdf
|
185 |
+
464g-Maluku Utara-Halmahera Tengah-perda Kab Halmahera No.43 Th 2018 Ttg Kedudukan, Susunan Organisasi Tugas dan Fungsi Bakesbangpol Kab Halteng.pdf
|
186 |
+
464h-Maluku Utara-Halmahera Tengah-Perda Kab Halmahera Tengah No1 th 2012 Ttg Rencana Tata Ruang Wilayah Kab Halteng Th 2012-2032.pdf
|
187 |
+
464i-Maluku Utara- Halmahera Tengah-Perbup Halteng No. 32 Tahun 2018 tentang Kedudukan, SOTK Dinas Lingkungan Hidup Kab. Halteng.pdf
|
188 |
+
465a-Maluku Utara-Halmahera Timur-Perda No 29 Tahun 2011 Tentang Pembentukan Organisasi Badan Pelaksana Penyuluh Pertanian, Perikanan dan Kehutanan Kab. Halmahera Timur.pdf
|
189 |
+
465b-Maluku Utara-Halmahera Timur- Perda No 30 Tahun 2011 Tentang Badan Penanggulangan Bencana Daerah.pdf
|
190 |
+
465c-Maluku Utara-Halmahera Timur-RPJMD.pdf
|
191 |
+
465d-Maluku Utara-Halmahera Timur-Perda Kab Halmahera Timur No 4 Th 2022 Tentang Anslisis Dampak Lalu Lintas.pdf
|
192 |
+
465e-Maluku Utara-Halmahera Timur-Perda Kabupaten Halmahera Timur Nomor 7 Tahun 2013 Tentang Izin Pembuangan Limbah Cair.pdf
|
193 |
+
466a-Maluku Utara-Halmahera Selatan-Perda Halsel No 3 Tahun 2016 Ttg Penggulangan Bencana di Kab Halsel.pdf
|
194 |
+
466b-Maluku Utara-Halmahera Selatan-Perda Halsel No 6 Tahun 2016 Ttg Bangunan Gedung.pdf
|
195 |
+
466c-Maluku Utara-Halmahera Selatan-Perbup Halsel Nomor 6 Tahun 2015 Ttg Organisasi dan Tata Kerja UPTD Perbibitan Tanaman Perkebunan pada Dinas Perkebunan Kab HAlsel.pdf
|
196 |
+
466d-Maluku Utara-Halmahera Selatan-Perda Halmahera Selatan No.8 Th 2016 Ttg Pembentukan dan Susunan Perangkat Daerah Kab Halsel.pdf
|
197 |
+
466e-Maluku Utara-Halmahera Selatan-Perda Kab Halsel No.3 Tahun 2013 Ttg Penyelenggaraan Kesehatan di Kab Halsel.pdf
|
198 |
+
467a-Maluku Utara-Halmahera Utara-Peraturan Daerah Kabupaten Halmahera Utara No.9 tahun 2012 Ttg Rencan Tata Ruang Wilayah Kabupaten Halmahera Utara tahun 2012-2032.pdf
|
199 |
+
474a-Papua-Kabupaten Jayapura-Peraturan Daerah Kabupaten Jayapura No.21 tahun 2009 Ttg Rencan Tata Ruang Wilayah Kabupaten Jayapura Tahun 2008-2028.pdf
|
200 |
+
474b-Papua-Kabupaten Jayapura-Perda Kabupaten Jayapura No.3 tahun 2000 Ttg Pelestarian Kawasan Hutan Sagu.pdf
|
201 |
+
474c-Papua-Kabupaten Jayapura-Perda Kab Jayapura N.5 tahun 2021 ttg Pembangunan Ekonomi Hijau Berbasis KOmunal di Kab Jayapura.pdf
|
202 |
+
474d-Papua Kabupaten Jayapura-Peraturan Daerah Kab Jayapura No.4 Th 2011 Ttg Pembentukan dan SOTK Bdan Penanggulangan Bencana daerah Kab Jayapura.pdf
|
203 |
+
481a-Papua-Kota Jayapura-Perda No.6 tahun 2021 Ttg Rencana Detail Tata Ruang Disrik Jayapura Selatan (Pemukiman B).pdf
|
204 |
+
481b-Papua-Kota Jayapura-Perda No.10 Th 2007 Ttg Penyelenggaraan Kebersihan dalam Kota Jayapura.pdf
|
205 |
+
4a-Aceh Jaya-Perbup No 4 Tahun 2016- Ttg Penghijauan dan Penanaman Pohon di Kabupaten Aceh Jaya.pdf
|
206 |
+
4c-Aceh Jaya-Perbup No 24 Tahun 2021- Ttg Standar Operasional Prosedur Pelayanan Pengadaan Barangjasa pada Bagian Pengadaan Barang dan Jasa Sekretariat Daerah Kabupaten Aceh Jaya.pdf
|
207 |
+
4d-Aceh Jaya-Perbup No 7 Tahun 2016-Ttg Pembentukan dan Susunan Perangkat Daerah Kabupaten Aceh Jaya.pdf
|
208 |
+
4e-Aceh Jaya-Perbup No 16 Tahun 2021-Ttg Prioritas Penggunaan Dana Desa untuk Pemulihan Ekonomi Nasional.pdf
|
209 |
+
4f-Aceh Jaya-Perbup No 10 Tahun 2022- Ttg Rencana Pembangunan Kabupaten (RPK) Aceh Jaya tahun 2023-2026.pdf
|
210 |
+
4g-Aceh Jaya-Qanun No 17 Tahun 2021-Ttg perlindungan lahan pertanian pangan berkelanjutan.pdf
|
211 |
+
4h-Aceh Jaya-Perbup No 50 Tahun 2020- Ttg Tata Cara Penerbitan Rekomendasi Izin Pemanfaatan Ruang Kabupaten Aceh Jaya.pdf
|
212 |
+
5 - DKI Jakarta - Keputusan Gubernur Nomor 2162 Tahun 2016.pdf
|
213 |
+
5 - National -Peraturan Menteri ESDM Nomor 16 Tahun 2022.pdf
|
214 |
+
510a-Papua Barat Daya-Kabupaten Raja Ampat-Peraturan Daerah Kabupaten Raja Ampat No. 7 tahun 2021 Ttg Penanggulangan Bencana.pdf
|
215 |
+
510b-Papua Barat Daya-Kabupaten Raja Ampat-PERBUP Raja Ampat No 43 tahun 2022 Tentang Kedudukan, Susunan Organisasi, Tupoksi serta Tata Kerja BAPPEDA & LITBANG.pdf
|
216 |
+
510c-Papua Barat Daya-Kabupaten Raja Ampat-Peraturan Daerah Kabupaten Raja Ampat No.27 tahun 2008 Ttg Kawasan Konservasi Laut Daerah Raja Ampat.pdf
|
217 |
+
510d-Papua Barat Daya-Kabupaten Raja Ampat- Peraturan Bupati Raja Ampat No 22 Tahun 2022 ttg Rencana Detail Tata Ruang Wilayah Perencanaan Kawasan Perkotaan Waisai TA 2022-2042.pdf
|
218 |
+
511a-Papua Barat Daya-Kabupaten Sorong-Perbup No. 54 tahun 2017 Ttg Kedudukan, Susunan Organisasi,Tugas dan Fungsi serta Tata Kerja Badan Kesatuan Bangsa dan Politik Kabupaten Sorong.pdf
|
219 |
+
511c-Papua Barat Daya- Kabupaten Sorong-Peraturan Bupati Sorong No. 35 tahun 2022 Ttg Rencana Tata Ruang Sekitar Kawasan Ekonomi Khusus Sorong Tahun 2022-2042.pdf
|
220 |
+
512a-Papua Barat Daya-Kabupaten Sorong Selatan-Peraturan Daerah Kabupaten Sorong Selatan No. 11 tahun 2008 Ttg Rencana Tata Ruang Wilayah Kabupaten Sorong Selatan.pdf
|
221 |
+
512b-Papua Barat Daya- Kabupaten Sorong-Perbup No. 25 tahun 2018 Ttg Pembangunan Kampung Mandiri Pangan di Kabupaten Sorong.pdf
|
222 |
+
513a-Papua Barat Daya-Kabupaten Tambrauw-Perbub No. 32 tahun 2017 Ttg Pengelolaan Sampah Rumah Tangga dan Sampah Sejeni Sampah Rumah Tangga.pdf
|
223 |
+
514a-Papua Barat Daya- Kota Sorong- Perda No. 12 tahun 2017 Ttg Pengelolaan Ruang Terbuka Hijau.pdf
|
224 |
+
514b-Papua Barat Daya-Kota Sorong- Perda No. 16 tahun 2016 Ttg Penyelenggaraan Penanggulangan Bencana di Kota Sorong.pdf
|
225 |
+
514c-Papua Barat Daya- Kota Sorong- Perda No. 26 tahun 2013 Ttg Rencana Zonasi Wilayah Pesisir dan Pulau-pulau kecil Kota Sorong.pdf
|
226 |
+
514d-Papua Barat Daya- Kota Sorong-Perda No. 1 tahun 2014 Ttg Susunan Organisasi dan Tata Kerja KAntor Pelaksana Penyuluh Pertanian, Perikanan, Kehutanan dan Ketahanan Pangan.pdf
|
227 |
+
5a-Aceh Selatan-Perbup No 15 Tahun 2022- Ttg Rencana Kerja Pemerintah Daerah Kabupaten Aceh Selatan Tahun 2023.pdf
|
228 |
+
5b-Aceh Selatan-Perbup No 26 Tahun 2019- Ttg Pengelolaan Cadangan Pangan Pemerintah Kabupaten Aceh Selatan.pdf
|
229 |
+
6 - DKI Jakarta - Instruksi Gubernur Nomor 91 Tahun 2016.pdf
|
230 |
+
6 - National - Keputusan Menteri LHK Nomor 168.pdf
|
231 |
+
6a-Perbup Aceh Singkil No 12 Tahun 2022-Ttg Tata Cara Pembagian dan Penetapan Rincian Dana Kampung Setiap Kampung Kabupaten Aceh Singkil Tahun Anggaran 2022.pdf
|
232 |
+
6b-Perbup Aceh Singkil No 13 Tahun 2022-Ttg Tata Cara Pembagian dan Penetapan Rincian Alokasi Dana Kampung Setiap Kampung di Kabupaten Aceh Singkil Tahun Anggaran 2022.pdf
|
233 |
+
6c-Perbup Aceh Singkil No 43 Tahun 2022-Ttg Pengelolaan Cadangan Pangan Pemerintah Kabupaten Aceh Singkil.pdf
|
234 |
+
6d-Perbup Aceh Singkil No 20 Tahun 2021- Ttg Kebijakan Strategi Pengelolaan Sampah Rumah Tangga Dan Sampah Sejenis Sampah Rumah Tangga Tahun 2021 - 2025.pdf
|
235 |
+
6f-Perbup Aceh Singkil No 10 Tahun 2023-Ttg Rincian Alokasi Pajak Daerah dan Retribusi Daerah Kurang Bayar Tahun 2022 Setiap Kampung Dalam Kabupaten Aceh Singkil.pdf
|
236 |
+
6h-Perbup Aceh Singkil No 1 Tahun 2011- Ttg Rencana Pembangunan Jangka Panjang Kabupaten Aceh Singkil Tahun 2005-2025.pdf
|
237 |
+
6i-Perbup Aceh Singkil No 27 Tahun 2022- Ttg Rencana Kerja Pemerintah Kabupaten Aceh Singkil Tahun Anggaran 2023.pdf
|
238 |
+
7 - Kalimantan Timur - Peraturan Gubernur No. 27 Tahun 2022.pdf
|
239 |
+
7 - National - Peraturan Menteri Lingkungan Hidup.pdf
|
240 |
+
7a-Perbup Aceh Tamiang No 33 Tahun 2018-Ttg Pengelolaan Keuangan Kampung.pdf
|
241 |
+
7b-Perbup Aceh Tamiang No 06 Tahun 2021-Ttg.pdf
|
242 |
+
7c-Qanun Aceh Tamiang No 05 Tahun 2019-Ttg Pengelolaan Sampah.pdf
|
243 |
+
8 - National - Peraturan Menteri Lingkungan Hidup dan Kehutanan Nomor P.84.pdf
|
244 |
+
8 - Kalimantan Timur - Peraturan Gubernur No. 7 Tahun 2019.pdf
|
245 |
+
9 - Kalimantan Tengah - Peraturan Gubernur No. 36 Tahun 2020_unlocked.pdf
|
246 |
+
9 - National -permenlhk-nomor-p.7.pdf
|
247 |
+
Bangka Barat-Perbup no 22 tahun 2016-ttg Program Kampung Iklim.pdf
|
248 |
+
Banyumas-perbup-no 43 th 2023-ttg Proklim.pdf
|
249 |
+
Bener Meriah-Perbup no 26 th 2022-Ttg Pelaksanaan Upaya Adaptasi Perubahan Iklim Tingkat Kampung Melalui Program Kampung Iklim.pdf
|
250 |
+
Bengkalis-Perbup no 43 th 2013-ttg Dewan Daerah Perubahan Iklim Kabupaten Bengkalis.pdf
|
251 |
+
Bulukumba-Perbup no 40 th 2019-ttg Pelaksanaan Upaya Adaptasi dan Mitigasi Perubahan Iklim tingkat Desa melalui Program Kampung Iklim.pdf
|
252 |
+
Cilacap-Perbup no 182 th 2019-ttg Program Kampung Iklim.pdf
|
253 |
+
decree-of-the-director-general-of-the-climate-change-control-no-sk-moef-dg-cc-no-8-2019-on-the-determination-of-forest-reference-emission-level-frel-for-sub-national-province.pdf
|
254 |
+
enhanced-ndc-cover-letter_e0d0c51eb147ced50218de4f7f18c987.pdf
|
255 |
+
EN_Perpres-44-Tahun-2020-tentang-ISPO.pdf
|
256 |
+
government-regulation-57-2016-amending-regulation-71-2014-concerning-protection-and-management-of-peat-ecosystems_10f88a30b008e70eab87abf22a701cc1.pdf
|
257 |
+
indonesia-biennial-update-report-bur-bur-2_e06c06418eb6ca4c4c0b4d11265bc544.pdf
|
258 |
+
indonesia-biennial-update-report-bur-bur3_ef8fb5375559d3a137c7a1154a9ce1fb.pdf
|
259 |
+
indonesia-first-ndc-archived_2e64ebb1b4d6d2c5122fc1effe376dcb.pdf
|
260 |
+
indonesia-first-ndc-updated-submission_38e00f43e8814cb11111772201bc1741.pdf
|
261 |
+
indonesia-national-communication-nc-nc-3_32989c3da200546c7fbefc4522071df0.pdf
|
262 |
+
indonesia-s-adaptation-communication_fafe4da614eea69817699a80a9b2f106.pdf
|
263 |
+
indonesia-s-redd-national-strategy_f745b8c99097a72be05c7aaa3ed289f7.pdf
|
264 |
+
indonesian-ocean-policy_51a8c4df53304b400f1bc15ea1919289.pdf
|
265 |
+
indonesian-sustainable-consumption-and-production-strategy-framework-for-2020-2030_a280264e50371ec4a582215b68a062bf.pdf
|
266 |
+
Inpres_no_10_2011.pdf
|
267 |
+
ins211206.pdf
|
268 |
+
Kudus-Perbup no 32 th 2020-ttg Program Kampung Iklim.PDF
|
269 |
+
law-21-2014-new-geothermal-law_ba59b1bf20245c648a4ea894a186a338.pdf
|
270 |
+
law-22-2019-on-the-sustainable-agriculture-cultivation-system_9a30b54d9a8c135b0457ed6f3fe7aced.pdf
|
271 |
+
law-31-2009-on-meteorology-climatology-and-geophysics_236fb594225f3bcd5247bd7b4c36b07d (1).pdf
|
272 |
+
law-31-2009-on-meteorology-climatology-and-geophysics_236fb594225f3bcd5247bd7b4c36b07d.pdf
|
273 |
+
law-31-2009-on-meteorology-climatology-and-geophysics_54fee57a68eb8aa4d383819c0cec1c2e.pdf
|
274 |
+
law-32-2009-environmental-protection-and-management_3de8b7cca96ae9c8913f740324dce561.pdf
|
275 |
+
law-about-forestry-1999_bea781e9a059f3d040e8f7eb75ae2877.pdf
|
276 |
+
law-no-18-2013-about-prevention-and-eradication-of-forest-destruction_2b03f11043698039b2d61face0fd3a0f.pdf
|
277 |
+
law-no-30-2007-on-energy_15fd0641121931de56df5687478ddb26.pdf
|
278 |
+
long-term-strategy-for-low-carbon-and-climate-resilience-2050-indonesia-lts-lccr-2050_51ebcbff4aecfdaa6a0a6223d21cbdda.pdf
|
279 |
+
Lumajang-Pebup no 4 th 2022-ttg Program Kampung Iklim.pdf
|
280 |
+
Luwu Timur-Perbup no 4 th 2023-ttg Program Kampung Iklim.pdf
|
281 |
+
minister-of-energy-and-mineral-resources-regulation-no-12-year-2015-on-provision-utilisation-and-trading-of-biofuels-as-other-fuels_ba946bb9de2c62566fd0a17304e983a7.pdf
|
282 |
+
minister-of-forestry-regulation-p-68-menhut-ii-2008-on-implementation-of-demonstration-activities-reducing-carbon-emissions-from-deforestation-and-forest-degradation.pdf
|
283 |
+
ministerial-regulation-15-2010-re-10000-mw-crash-programme_7ad32cf204cf6e077977cbeffe05bb81.pdf
|
284 |
+
ministerial-regulation-216-2012-accelerating-development-of-geothermal-energy-supply-revised-ministerial-regulation-15-2010_70ec6d0d4e7019860c1230c54d317f1c.pdf
|
285 |
+
ministerial-regulation-p-41-menlhk-setjen-kum-1-2019-on-long-term-national-forestry-plan-rktn-2011-2030_e3cf9f9665bdf49444c618aeac1880f0.pdf
|
286 |
+
national-action-plan-addressing-climate-change-2007_8f8bb1861ca5572c17c516adee81bd82.pdf
|
287 |
+
national-family-farming-action-plan-2020-2024_fe8005d93cad5ee44be91ca32934e398.pdf
|
288 |
+
national-medium-term-development-plan-2015-2019_79566255349829a073e659cfa9e7d564.pdf
|
289 |
+
p-30-menhut-ii-2009-on-the-implementation-of-redd-activities_fef1b6a7ef8a9812379e979e784db1d8.pdf
|
290 |
+
Pasuruan-Perbup no 116 th 2022-Adaptasi Sektor Kesehatan Terhadap Dampak Perubahan Iklim.pdf
|
291 |
+
Pati-Perbup no 34 th 2021-ttg Proklim.pdf
|
292 |
+
PERBUB NO. 21 PERUBAHAN ATAS PERATURAN BUPATI ACEH JAYA NOMOR 63 TAHUN 2016 TENTANG SUSUNAN ORGANISASI, KEDUDUKAN TUGAS DAN FUNGSI SERTA TATA KERJA SEKRETARIAT DAERAH KAB ACEH JAYA.pdf
|
293 |
+
Perbup No. 6 Tahun 2022.pdf
|
294 |
+
pergub_66_th_2016.pdf
|
295 |
+
Permenperin_No._27_Tahun_2020.pdf
|
296 |
+
president-regulation-71-2011-on-the-implementation-of-a-national-greenhouse-gases-inventory_3854901811ce9dc14d988ba6129c0da5.pdf
|
297 |
+
presidential-decree-16-2015-on-the-structure-of-the-environment-and-forestry-ministry_93b460fe2c9c508d05f76bf37faac0bb.pdf
|
298 |
+
presidential-decree-61-2011-national-action-plan-to-reduce-ghg-emissions-ran-grk_9253dc3dbf1e93711b3953bd95f82208.pdf
|
299 |
+
presidential-instruction-1-2006-on-biofuel-development_3ffb423566a000c77dcdbd25ad99ebee.pdf
|
300 |
+
presidential-instruction-2-2008-regulation-on-energy-and-water-efficiency_e14d2d0386408373a3bdcffa05dc7eb9.pdf
|
301 |
+
presidential-instruction-no-5-of-2019-concerning-the-termination-of-the-granting-of-new-permits-and-improvement-of-primary-natural-forest-governance-and-peatlands.pdf
|
302 |
+
presidential-instruction-no-6-of-2013-on-suspension-of-new-licenses-and-improving-forest-governance-of-primary-forest-and-peatland_030ef732d9e7a72dc9f984daa66d219f.pdf
|
303 |
+
presidential-instruction-no-6-of-2013-on-suspension-of-new-licenses-and-improving-forest-governance-of-primary-forest-and-peatland_3e465fc3e780f4933960e339bd0e70f6 (1).pdf
|
304 |
+
presidential-regulation-5-2006-concerning-national-energy-policy_17aa550a8f7a8dcc17afe10e1677e612.pdf
|
305 |
+
presidential-regulation-55-2019-on-electric-vehicles_e6bd4b3fbac79d9e7627188c5938a87c.pdf
|
306 |
+
presidential-regulation-70-2009-concerning-energy-conservation_8011151bcbe251b984d324503dcbdbf0.pdf
|
307 |
+
presidential-regulation-no-112-of-2022-on-accelerated-development-of-renewable-energy-for-electricity-supply_1a0227d67fb85790856b30cc74102d2e.pdf
|
308 |
+
presidential-regulation-no-22-2017-on-national-energy-general-plan_350ab4d78351f7063e8efe5e6cc7a3fe.pdf
|
309 |
+
presidential-regulation-no-46-2008-on-the-national-council-for-climate-change-nccc-or-dnpi_169dc9f044f1d200783c6ec74f439615.pdf
|
310 |
+
presidential-regulation-no-98-of-2021.pdf
|
311 |
+
presnetation-on-the-national-medium-term-development-plan-2015-2019_256892c64fd4328aad3e73c2de3a839d.pdf
|
312 |
+
regulation-1-2012-amending-reg-15-2010-priority-development-renewable-energy-projects_aa60847b7e425598beaec90a296aed5b.pdf
|
313 |
+
regulation-16-2022-guidelines-for-carbon-economic-value-implementation-for-the-power-generation-sub-sector_afa67852b11817a53019b7174c0f174c.pdf
|
314 |
+
regulation-206-2005-establishing-national-committee-for-clean-development-mechanism_206b1931b4ee2e701cb658a9948fe0e8.pdf
|
315 |
+
regulation-21-2022-on-guidelines-for-implementing-the-carbon-economic-value_6e249b4b5da6aff252dffbecef1fb077.pdf
|
316 |
+
regulation-no-17-2014-on-electricity-purchase-from-geothermal_6ce6f1517325e0405529f33246f89212.pdf
|
317 |
+
regulation-no-20-2012-about-forest-carbon-management_97e7cc446b3ca04faf4f3f1673ca8491.pdf
|
318 |
+
regulation-no-46-2017-concerning-environmental-economic-instruments_838a42e463280f3aa63985afd827561c.pdf
|
319 |
+
regulation-no-70-2017-implementing-redd-and-sustainable-management-of-forests_7dd00be886f61a7223271856fcf08a38.pdf
|
320 |
+
regulation-no-79-on-national-energy-policy-2014_3dea81bafaaf1915b4d41d4913476e85.pdf
|
321 |
+
regulation-no-79-on-national-energy-policy-2014_f025312598fb1592b20f3c05c7661839.pdf
|
322 |
+
regulation-of-the-minister-of-energy-and-mineral-resources-of-the-republic-of-indonesia-number-12-of-2017-concerning-utilization-of-renewable-energy-sources-for-electric-power-provision.pdf
|
323 |
+
regulations-12-2017-50-2017-35-2018-4-2020-on-the-utilisation-of-renewable-energy-for-the-provision-of-power_98edbfb262c7b974788a81ac19542550.pdf
|
324 |
+
regulations-no-11-2013-and-no-36-2009-about-procedures-for-licensing-activities-for-absorbing-and-restoring-carbon-in-forests_0be1fbc6e4559de71fb623e50fbf6c4a.pdf
|
325 |
+
Sekretariat Kabinet Republik Indonesia _ Gov�t Issues Regulation on 2020-2024 National Medium-Term Development Plan.pdf
|
326 |
+
Sigi-Perbup no 49 th 2022-ttg Penanggulangan Bencana.pdf
|
327 |
+
Sinjai-Perbup no 14 th 2021-ttg Proklim.pdf
|
328 |
+
Sragen-Perbup-no-74-th-2021-ttg Program Kampung Iklim.pdf
|
329 |
+
strategic-plan-of-the-ministry-of-environment-and-forestry-for-2020-2024_5610b7bfe4d97d1e8a42d940f7d83fea.pdf
|
330 |
+
strategic-plan-sustainable-tourism-and-green-jobs-for-indonesia_3aa77abfe87d72477acc911cb545e81b.pdf
|
331 |
+
submission-by-the-government-of-the-republic-of-indonesia-to-the-global-stocktake_55a19e30761ce0a415d1196bfa5356a0.pdf
|
332 |
+
submission-of-the-united-states-on-the-elements-for-the-consideration-of-outputs-component-of-the-first-global-stocktake_2b152023ead064ef2345eabf3fd0181b.pdf
|
333 |
+
submission-of-the-united-states-on-the-elements-for-the-consideration-of-outputs-component-of-the-first-global-stocktake_6ea78bf97fd69bf0202f94caa19e03d2.pdf
|
334 |
+
untitled-collection-3bny54fk-1-dki-jakarta-peraturan-gubernur-nomor-90-tahun-2021-knlctff5fx.pdf
|
335 |
+
untitled-collection-3bny54fk-1-national-peraturan-presiden-perpres-nomor-98-1-lk4g58zdil.pdf
|
336 |
+
untitled-collection-3bny54fk-10-kalimantan-tengah-peraturan-gubernur-no-11-tahun-2010-273fnwgzq7.pdf
|
337 |
+
untitled-collection-3bny54fk-10-national-permentan-nomor-39-tahun-2018-4uxhwzfys1.pdf
|
338 |
+
untitled-collection-3bny54fk-11-kalimantan-utara-peraturan-gubernur-no-16-tahun-2020-17ioucoakq.pdf
|
339 |
+
untitled-collection-3bny54fk-11-national-keputusan-menteri-perhubungan-nomor-km-8-58482k01sm.pdf
|
340 |
+
untitled-collection-3bny54fk-12-banten-peraturan-gubernur-no-43-tahun-2016-2azaga26qg.pdf
|
341 |
+
untitled-collection-3bny54fk-12-national-permen-esdm-nomor-22-tahun-2019-4x01hfbiih.pdf
|
342 |
+
untitled-collection-3bny54fk-13-jawa-tengah-peraturan-gubernur-no-51-tahun-2019-8grfuxhpph.pdf
|
343 |
+
untitled-collection-3bny54fk-13-national-peraturan-menteri-lingkungan-hidup-dan-kehutanan-31vulmefl2.pdf
|
344 |
+
untitled-collection-3bny54fk-14-national-permenlhk-nomor-p-73-tahun-2017-107ch9pchm.pdf
|
345 |
+
untitled-collection-3bny54fk-14-ntb-peraturan-gubernur-no-54-tahun-2019-2i4wcxxwyy.pdf
|
346 |
+
untitled-collection-3bny54fk-15-maluku-peraturan-gubernur-no-7-tahun-2016-av8m30mj6n.pdf
|
347 |
+
untitled-collection-3bny54fk-15-national-peraturan-menteri-lingkungan-hidup-nomor-19-29nte2tlkb.pdf
|
348 |
+
untitled-collection-3bny54fk-16-dki-jakarta-peraturan-gubernur-nomor-131-tahun-2012-1k059wmkm2.pdf
|
349 |
+
untitled-collection-3bny54fk-16-national-permendag-no-38-tahun-2010-45vw6r79y0.pdf
|
350 |
+
untitled-collection-3bny54fk-16-national-permendag-no-38-tahun-2010-4rn494pcpg.pdf
|
351 |
+
untitled-collection-3bny54fk-17-national-permen-perind-no-33-2007-1sfvle4i34.pdf
|
352 |
+
untitled-collection-3bny54fk-17-national-permen-perind-no-33-2007-4n1nal9p5f.pdf
|
353 |
+
untitled-collection-3bny54fk-17-sumatera-utara-peraturan-gubernur-sumatera-utara-nomor-36-waacfa4kab.pdf
|
354 |
+
untitled-collection-3bny54fk-18-lampung-peraturan-gubernur-no-32-a-tahun-2012-1sr0t19std.pdf
|
355 |
+
untitled-collection-3bny54fk-18-national-keputusan-presiden-no-92-th-1998-2k09cwpuf5.pdf
|
356 |
+
untitled-collection-3bny54fk-19-kalimantan-barat-peraturan-gubernur-kalimantan-barat-5bhcghcbih.pdf
|
357 |
+
untitled-collection-3bny54fk-19-national-uu-nomor-6-tahun-1994-4yc88fmw63.pdf
|
358 |
+
untitled-collection-3bny54fk-2-dki-jakarta-instruksi-gubernur-nomor-17-tahun-2021-5a83jochr2.pdf
|
359 |
+
untitled-collection-3bny54fk-2-national-pp-nomor-23-tahun-2021-kalgi8t3cj.pdf
|
360 |
+
untitled-collection-3bny54fk-20-kalimantan-timur-peraturan-gubernur-nomor-39-tahun-2014-3u4x2xkbg9.pdf
|
361 |
+
untitled-collection-3bny54fk-20-national-uu-nomor-16-tahun-2016-4a4vn3744u.pdf
|
362 |
+
untitled-collection-3bny54fk-21-kalimantan-timur-peraturan-gubernur-nomor-54-tahun-2012-544vhvmm61.pdf
|
363 |
+
untitled-collection-3bny54fk-21-national-uu-nomor-17-tahun-2004-4anhcsaut6.pdf
|
364 |
+
untitled-collection-3bny54fk-22-national-keppres-no-23-th-1992-3os62rmtji.pdf
|
365 |
+
untitled-collection-3bny54fk-23-kalimantan-utara-peraturan-gubernur-no-7-tahun-2019-vhdruaggx9.pdf
|
366 |
+
untitled-collection-3bny54fk-23-national-keputusan-presiden-no-92-th-1998-2wx1q8o2vj.pdf
|
367 |
+
untitled-collection-3bny54fk-24-jawa-barat-peraturan-gubernur-no-56-tahun-2012-2yg9gkqss0.pdf
|
368 |
+
untitled-collection-3bny54fk-24-national-perpres-no-33-th-2005-1fh6qxeghj.pdf
|
369 |
+
untitled-collection-3bny54fk-25-jawa-tengah-peraturan-gubernur-nomor-43-tahun-2012-2cir3lwc47.pdf
|
370 |
+
untitled-collection-3bny54fk-25-national-perpres-no-46-th-2005-4179nqbpll.pdf
|
371 |
+
untitled-collection-3bny54fk-26-jawa-timur-peraturan-gubernur-jawa-timur-nomor-67-tahun-4g08e2nhi6.pdf
|
372 |
+
untitled-collection-3bny54fk-26-national-uu-nomor-7-tahun-2021-4w82ev2k6q.pdf
|
373 |
+
untitled-collection-3bny54fk-27-bali-peraturan-gubernur-bali-nomor-49-tahun-2012-1nf8vw5g2q.pdf
|
374 |
+
untitled-collection-3bny54fk-27-national-pp-nomor-16-tahun-2021-dikompresi-512xllm1rf.pdf
|
375 |
+
untitled-collection-3bny54fk-28-national-permen-pupr-21-2021-3667u3zfut.pdf
|
376 |
+
untitled-collection-3bny54fk-28-sulawesi-barat-peraturan-gubernur-sulawesi-barat-nomor-28-up68zg2slu.pdf
|
377 |
+
untitled-collection-3bny54fk-29-national-uu-nomor-32-tahun-2009-4fpauszuv0.pdf
|
378 |
+
untitled-collection-3bny54fk-29-sulawesi-tengah-peraturan-gubernur-sulawesi-tengah-nomor-4ww4sp8c7t.pdf
|
379 |
+
untitled-collection-3bny54fk-3-dki-jakarta-instruksi-gubernur-nomor-52-tahun-2020-4izgbv756n.pdf
|
380 |
+
untitled-collection-3bny54fk-3-national-uu-nomor-32-tahun-2009-2e6ii59u4o.pdf
|
381 |
+
untitled-collection-3bny54fk-30-national-2023pmkeuangan038-xvozuydzrf.pdf
|
382 |
+
untitled-collection-3bny54fk-30-sulawesi-selatan-peraturan-gubernur-sulawesi-selatan-3eww1vaqow.pdf
|
383 |
+
untitled-collection-3bny54fk-31-dki-jakarta-peraturan-gubernur-nomor-66-tahun-2020-1g88pxft8n.pdf
|
384 |
+
untitled-collection-3bny54fk-31-national-permen-esdm-nomor-3-tahun-2023-58m66optth.pdf
|
385 |
+
untitled-collection-3bny54fk-32-kalimantan-barat-keputusan-gubernur-kalimantan-barat-1l18shnow1.pdf
|
386 |
+
untitled-collection-3bny54fk-32-national-uu-nomor-41-tahun-1999-2jaegabid4.pdf
|
387 |
+
untitled-collection-3bny54fk-33-jawa-timur-peraturan-gubernur-nomor-10-tahun-2009-1gs4kznlp1.pdf
|
388 |
+
untitled-collection-3bny54fk-34-jawa-timur-peraturan-gubernur-nomor-39-tahun-2008-4ci3d3crei.pdf
|
389 |
+
untitled-collection-3bny54fk-35-dki-jakarta-peraturan-gubernur-no-9-tahun-2022-2ixw9xohpm.pdf
|
390 |
+
untitled-collection-3bny54fk-36-jawa-barat-peraturan-gubernur-jawa-barat-nomor-32-tahun-57dmysfx7i.pdf
|
391 |
+
untitled-collection-3bny54fk-37-44rd249mbj.pdf
|
392 |
+
untitled-collection-3bny54fk-4-dki-jakarta-instruksi-gubernur-nomor-127-tahun-2017-4krdxlir80.pdf
|
393 |
+
untitled-collection-3bny54fk-4-national-permen-lhk-nomor-21-tahun-2022-25wj04g07q.pdf
|
394 |
+
untitled-collection-3bny54fk-5-dki-jakarta-keputusan-gubernur-nomor-2162-tahun-2016-1g927yuhji.pdf
|
395 |
+
untitled-collection-3bny54fk-5-national-peraturan-menteri-esdm-nomor-16-tahun-2022-2l25n9aa7e.pdf
|
396 |
+
untitled-collection-3bny54fk-6-dki-jakarta-instruksi-gubernur-nomor-91-tahun-2016-1ic0ecw8e2.pdf
|
397 |
+
untitled-collection-3bny54fk-6-national-keputusan-menteri-lhk-nomor-168-3poi2c1ahd.pdf
|
398 |
+
untitled-collection-3bny54fk-7-kalimantan-timur-peraturan-gubernur-no-27-tahun-2022-dqivhkkx5i.pdf
|
399 |
+
untitled-collection-3bny54fk-7-national-peraturan-menteri-lingkungan-hidup-40jllw1h6e.pdf
|
400 |
+
untitled-collection-3bny54fk-8-kalimantan-timur-peraturan-gubernur-no-7-tahun-2019-1fo51g511s.pdf
|
401 |
+
untitled-collection-3bny54fk-8-national-peraturan-menteri-lingkungan-hidup-dan-kehutanan-41qfieuzkg.pdf
|
402 |
+
untitled-collection-3bny54fk-9-kalimantan-tengah-peraturan-gubernur-no-36-tahun-2020-51vrb1bf23_unlocked.pdf
|
403 |
+
untitled-collection-3bny54fk-9-national-permenlhk-nomor-p-7-568burtjhh.pdf
|
404 |
+
visi-indonesia-2045_118bdf7e1b0dc881ebc86113eeebb3cf.pdf
|
htmlTemplates.py
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
css = '''
|
2 |
+
<style>
|
3 |
+
.chat-message {
|
4 |
+
padding: 1.5rem; border-radius: 0.5rem; margin-bottom: 1rem; display: flex
|
5 |
+
}
|
6 |
+
.chat-message.user {
|
7 |
+
background-color: #2b313e
|
8 |
+
}
|
9 |
+
.chat-message.bot {
|
10 |
+
background-color: #475063
|
11 |
+
}
|
12 |
+
.chat-message .avatar {
|
13 |
+
width: 20%;
|
14 |
+
}
|
15 |
+
.chat-message .avatar img {
|
16 |
+
max-width: 78px;
|
17 |
+
max-height: 78px;
|
18 |
+
border-radius: 50%;
|
19 |
+
object-fit: cover;
|
20 |
+
}
|
21 |
+
.chat-message .message {
|
22 |
+
width: 80%;
|
23 |
+
padding: 0 1.5rem;
|
24 |
+
color: #fff;
|
25 |
+
}
|
26 |
+
'''
|
27 |
+
|
28 |
+
bot_template = '''
|
29 |
+
<div class="chat-message bot">
|
30 |
+
<div class="avatar">
|
31 |
+
<img src="https://cdn-icons-png.flaticon.com/512/6134/6134346.png" style="max-height: 78px; max-width: 78px; border-radius: 50%; object-fit: cover;">
|
32 |
+
</div>
|
33 |
+
<div class="message">{{MSG}}</div>
|
34 |
+
</div>
|
35 |
+
'''
|
36 |
+
|
37 |
+
user_template = '''
|
38 |
+
<div class="chat-message user">
|
39 |
+
<div class="avatar">
|
40 |
+
<img src="https://cdn-icons-png.freepik.com/512/4086/4086679.png">
|
41 |
+
</div>
|
42 |
+
<div class="message">{{MSG}}</div>
|
43 |
+
</div>
|
44 |
+
'''
|
45 |
+
|
46 |
+
|
readme.md
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# MultiPDF Chat App
|
2 |
+
|
3 |
+
> You can find the tutorial for this project on [YouTube](https://youtu.be/dXxQ0LR-3Hg).
|
4 |
+
|
5 |
+
## Introduction
|
6 |
+
------------
|
7 |
+
The MultiPDF Chat App is a Python application that allows you to chat with multiple PDF documents. You can ask questions about the PDFs using natural language, and the application will provide relevant responses based on the content of the documents. This app utilizes a language model to generate accurate answers to your queries. Please note that the app will only respond to questions related to the loaded PDFs.
|
8 |
+
|
9 |
+
## How It Works
|
10 |
+
------------
|
11 |
+
|
12 |
+

|
13 |
+
|
14 |
+
The application follows these steps to provide responses to your questions:
|
15 |
+
|
16 |
+
1. PDF Loading: The app reads multiple PDF documents and extracts their text content.
|
17 |
+
|
18 |
+
2. Text Chunking: The extracted text is divided into smaller chunks that can be processed effectively.
|
19 |
+
|
20 |
+
3. Language Model: The application utilizes a language model to generate vector representations (embeddings) of the text chunks.
|
21 |
+
|
22 |
+
4. Similarity Matching: When you ask a question, the app compares it with the text chunks and identifies the most semantically similar ones.
|
23 |
+
|
24 |
+
5. Response Generation: The selected chunks are passed to the language model, which generates a response based on the relevant content of the PDFs.
|
25 |
+
|
26 |
+
## Dependencies and Installation
|
27 |
+
----------------------------
|
28 |
+
To install the MultiPDF Chat App, please follow these steps:
|
29 |
+
|
30 |
+
1. Clone the repository to your local machine.
|
31 |
+
|
32 |
+
2. Install the required dependencies by running the following command:
|
33 |
+
```
|
34 |
+
pip install -r requirements.txt
|
35 |
+
```
|
36 |
+
|
37 |
+
3. Obtain an API key from OpenAI and add it to the `.env` file in the project directory.
|
38 |
+
```commandline
|
39 |
+
OPENAI_API_KEY=your_secrit_api_key
|
40 |
+
```
|
41 |
+
|
42 |
+
## Usage
|
43 |
+
-----
|
44 |
+
To use the MultiPDF Chat App, follow these steps:
|
45 |
+
|
46 |
+
1. Ensure that you have installed the required dependencies and added the OpenAI API key to the `.env` file.
|
47 |
+
|
48 |
+
2. Run the `main.py` file using the Streamlit CLI. Execute the following command:
|
49 |
+
```
|
50 |
+
streamlit run app.py
|
51 |
+
```
|
52 |
+
|
53 |
+
3. The application will launch in your default web browser, displaying the user interface.
|
54 |
+
|
55 |
+
4. Load multiple PDF documents into the app by following the provided instructions.
|
56 |
+
|
57 |
+
5. Ask questions in natural language about the loaded PDFs using the chat interface.
|
58 |
+
|
59 |
+
## Contributing
|
60 |
+
------------
|
61 |
+
This repository is intended for educational purposes and does not accept further contributions. It serves as supporting material for a YouTube tutorial that demonstrates how to build this project. Feel free to utilize and enhance the app based on your own requirements.
|
62 |
+
|
63 |
+
## License
|
64 |
+
-------
|
65 |
+
The MultiPDF Chat App is released under the [MIT License](https://opensource.org/licenses/MIT).
|
requirements.txt
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
langchain==0.0.184
|
2 |
+
PyPDF2==3.0.1
|
3 |
+
python-dotenv==1.0.0
|
4 |
+
streamlit==1.18.1
|
5 |
+
openai==0.27.6
|
6 |
+
faiss-cpu==1.7.4
|
7 |
+
altair==4
|
8 |
+
tiktoken==0.4.0
|
9 |
+
# uncomment to use huggingface llms
|
10 |
+
# huggingface-hub==0.14.1
|
11 |
+
|
12 |
+
# uncomment to use instructor embeddings
|
13 |
+
# InstructorEmbedding==1.0.1
|
14 |
+
# sentence-transformers==2.2.2
|