CSAle commited on
Commit
9209c34
β€’
1 Parent(s): 3e8fbf3

Adding App

Browse files
.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
+ faiss_index/**/* filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,5 +1,5 @@
1
  ---
2
- title: RubiChat
3
  emoji: πŸ’»
4
  colorFrom: purple
5
  colorTo: green
 
1
  ---
2
+ title: CohoAssistant
3
  emoji: πŸ’»
4
  colorFrom: purple
5
  colorTo: green
app.py CHANGED
@@ -1,74 +1,36 @@
1
  import chainlit as cl
2
  from langchain.embeddings.openai import OpenAIEmbeddings
3
  from langchain.document_loaders import BSHTMLLoader
4
- from langchain.embeddings import CacheBackedEmbeddings
5
  from langchain.text_splitter import RecursiveCharacterTextSplitter
6
  from langchain.vectorstores import FAISS
7
  from langchain.chains import RetrievalQA
8
  from langchain.chat_models import ChatOpenAI
9
- from langchain.storage import LocalFileStore
10
- from langchain.prompts.chat import (
11
- ChatPromptTemplate,
12
- SystemMessagePromptTemplate,
13
- HumanMessagePromptTemplate,
14
- )
15
  import chainlit as cl
16
 
17
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
18
 
19
- system_template = """
20
- Use the following pieces of context to answer the users question.
21
- If you don't know the answer, just say that you don't know, don't try to make up an answer.
22
- ALWAYS return a "SOURCES" part in your answer.
23
- The "SOURCES" part should be a reference to the source of the document from which you got your answer.
24
-
25
- Example of your response should be:
26
-
27
- ```
28
- The answer is foo
29
- SOURCES: xyz
30
- ```
31
-
32
- Begin!
33
- ----------------
34
- {context}"""
35
-
36
- messages = [
37
- SystemMessagePromptTemplate.from_template(system_template),
38
- HumanMessagePromptTemplate.from_template("{question}"),
39
- ]
40
- prompt = ChatPromptTemplate(messages=messages)
41
- chain_type_kwargs = {"prompt": prompt}
42
 
43
  @cl.author_rename
44
  def rename(orig_author: str):
45
- rename_dict = {"RetrievalQA": "the Rubilab Records",
46
- "Chatbot" : "RubiChat"}
47
  return rename_dict.get(orig_author, orig_author)
48
 
 
49
  @cl.on_chat_start
50
  async def init():
51
  msg = cl.Message(content=f"Building Index...")
52
  await msg.send()
53
 
54
- # build FAISS index from csv
55
- loader = BSHTMLLoader(file_path="./data/Rubilabs.html")
56
- data = loader.load()
57
- documents = text_splitter.transform_documents(data)
58
- store = LocalFileStore("./cache/")
59
  core_embeddings_model = OpenAIEmbeddings()
60
- embedder = CacheBackedEmbeddings.from_bytes_store(
61
- core_embeddings_model, store, namespace=core_embeddings_model.model
62
- )
63
- # make async docsearch
64
- docsearch = await cl.make_async(FAISS.from_documents)(documents, embedder)
65
 
66
  chain = RetrievalQA.from_chain_type(
67
  ChatOpenAI(model="gpt-3.5-turbo", temperature=0, streaming=True),
68
  chain_type="stuff",
69
  return_source_documents=True,
70
- retriever=docsearch.as_retriever(),
71
- chain_type_kwargs=chain_type_kwargs,
72
  )
73
 
74
  msg.content = f"Index built!"
 
1
  import chainlit as cl
2
  from langchain.embeddings.openai import OpenAIEmbeddings
3
  from langchain.document_loaders import BSHTMLLoader
 
4
  from langchain.text_splitter import RecursiveCharacterTextSplitter
5
  from langchain.vectorstores import FAISS
6
  from langchain.chains import RetrievalQA
7
  from langchain.chat_models import ChatOpenAI
8
+ from langchain.prompts import ChatPromptTemplate
 
 
 
 
 
9
  import chainlit as cl
10
 
11
  text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  @cl.author_rename
15
  def rename(orig_author: str):
16
+ rename_dict = {"RetrievalQA": "Coho Blogs", "Chatbot": "Coho Assistant"}
 
17
  return rename_dict.get(orig_author, orig_author)
18
 
19
+
20
  @cl.on_chat_start
21
  async def init():
22
  msg = cl.Message(content=f"Building Index...")
23
  await msg.send()
24
 
 
 
 
 
 
25
  core_embeddings_model = OpenAIEmbeddings()
26
+
27
+ new_db = FAISS.load_local("faiss_index", core_embeddings_model)
 
 
 
28
 
29
  chain = RetrievalQA.from_chain_type(
30
  ChatOpenAI(model="gpt-3.5-turbo", temperature=0, streaming=True),
31
  chain_type="stuff",
32
  return_source_documents=True,
33
+ retriever=new_db.as_retriever(),
 
34
  )
35
 
36
  msg.content = f"Index built!"
data/Rubilabs.html DELETED
@@ -1,435 +0,0 @@
1
- <!DOCTYPE html>
2
- <!-- saved from url=(0021)https://rubilabs.com/ -->
3
- <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4
- <style>
5
- .chat-widget {
6
- position: fixed;
7
- bottom: 30px;
8
- right: 30px;
9
- width: 60px;
10
- height: 60px;
11
- border-radius: 50%;
12
- background-color: #145e5a;
13
- display: flex;
14
- justify-content: center;
15
- align-items: center;
16
- cursor: pointer;
17
- box-shadow: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);
18
- z-index: 1000
19
- }
20
-
21
- .chat-widget img {
22
- width: 32px;
23
- height: 32px;
24
- padding: 4px
25
- }
26
-
27
- .chat-iframe-container {
28
- position: fixed;
29
- bottom: 100px;
30
- right: 30px;
31
- width: 400px;
32
- height: 500px;
33
- border: 1px solid #ccc;
34
- border-radius: 10px;
35
- padding: 10px;
36
- box-shadow: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23);
37
- z-index: 1000;
38
- display: none
39
- }
40
-
41
- .chat-iframe-container iframe {
42
- width: 100%;
43
- height: 100%;
44
- border: none
45
- }
46
-
47
- .close-button {
48
- position: absolute;
49
- top: -12px;
50
- right: -12px;
51
- width: 24px;
52
- height: 24px;
53
- border-radius: 50%;
54
- background-color: #145e5a;
55
- color: #fff;
56
- display: flex;
57
- justify-content: center;
58
- align-items: center;
59
- cursor: pointer;
60
- font-size: 18px;
61
- font-weight: bold;
62
- box-shadow: 0 3px 6px rgba(0, 0, 0, .16), 0 3px 6px rgba(0, 0, 0, .23)
63
- }
64
-
65
- @media (max-width:767px) {
66
- .chat-iframe-container {
67
- width: 90%;
68
- height: 80%;
69
- bottom: 10px;
70
- right: 5%;
71
- padding: 5px
72
- }
73
- }
74
- </style>
75
- <script>
76
- document.addEventListener("DOMContentLoaded", function () {
77
- var chatWidget = document.createElement("div");
78
- chatWidget.id = "chatWidget";
79
- chatWidget.className = "chat-widget";
80
- chatWidget.innerHTML = '<img src="//s3.amazonaws.com/appforest_uf/f1680870188261x782123797109605800/bubble2.png" alt="Chat">';
81
- var chatIframeContainer = document.createElement("div");
82
- chatIframeContainer.id = "chatIframeContainer";
83
- chatIframeContainer.className = "chat-iframe-container";
84
- chatIframeContainer.innerHTML = '<div class="close-button" id="closeButton">Γ—</div><iframe src="https://app.chatiq.ai/chatbot3d/mikesmart/English" name="myiFrame" scrolling="yes"></iframe>';
85
- document.body.appendChild(chatWidget);
86
- document.body.appendChild(chatIframeContainer);
87
- document.getElementById('chatWidget').addEventListener('click', function () {
88
- document.getElementById('chatIframeContainer').style.display = 'block';
89
- });
90
- document.getElementById('closeButton').addEventListener('click', function () {
91
- document.getElementById('chatIframeContainer').style.display = 'none';
92
- });
93
- });
94
- </script>
95
-
96
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
97
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
98
- <title>Rubilabs</title>
99
- <link rel="icon" type="image/x-icon" href="https://rubilabs.com/favi.jpeg">
100
- <link rel="stylesheet" href="./Rubilabs_files/style.css">
101
- <link href="./Rubilabs_files/bootstrap.min.css" rel="stylesheet">
102
-
103
- <!-- Latest compiled JavaScript -->
104
- <script src="./Rubilabs_files/bootstrap.bundle.min.js.download"></script>
105
- <!-- <link rel="stylesheet" href="./CSS/button.css"> -->
106
- <script src="chrome-extension://mooikfkahbdckldjjndioackbalphokd/assets/prompt.js"></script></head>
107
- <body data-new-gr-c-s-check-loaded="14.1123.0" data-gr-ext-installed="" data-new-gr-c-s-loaded="14.1125.0">
108
- <!--Nav + Hero Section-->
109
- <header>
110
- <nav class="nav-bar">
111
- <ul class="nav-parent">
112
- <li>
113
- <a class="logo-link" href="https://rubilabs.com/"><img src="./Rubilabs_files/newlogo.png" alt="BirdPreneur Logo" class="logo-image"></a>
114
- </li>
115
- <li class="extreme position-el"><a href="https://rubilabs.com/#mission" class="nav-el">Our Mission</a></li>
116
- <li class="extreme"><a href="https://rubilabs.com/#products" class="nav-el">Our Products</a></li>
117
- <li class="extreme"><a href="https://rubilabs.com/#benefits" class="nav-el">Benefits</a></li>
118
- <li class="extreme"><a href="https://rubilabs.com/#order" class="nav-el">Place Order</a></li>
119
- <li class="extreme"><a href="https://rubilabs.com/#delivery" class="nav-el">Delivery</a></li>
120
- <li class="extreme"><a href="https://rubilabs.com/#FAQs" class="nav-el">FAQs</a></li>
121
- <li class="extreme"><a href="https://rubilabs.com/#contact" class="nav-el">Contact Us</a></li>
122
- <li class="extreme"><button type="button" class="btn nav-el"><a id="get" href="https://shop.rubilabs.com/">Order Now</a></button></li>
123
- </ul>
124
- </nav>
125
-
126
- </header>
127
-
128
- <!--section 1-->
129
- <section>
130
- <div class="container-fluid" style="--bs-gutter-x: 0">
131
- <div class="hero-image">
132
- <h1 class="text"><b>RubilabsVet: Delivering Animal Vaccines and Farm Inputs Directly to You</b></h1>
133
- <p class="text">RubilabsVet offers a wide range of high-quality and affordable animal vaccines, medications, and
134
- other <br> farm
135
- inputs, all
136
- delivered straight to your door. Trust RubilabsVet to keep your livestock healthy and happy.</p>
137
- <button type="button" class="btn nav-el"><a id="hero-btn" href="https://shop.rubilabs.com/" style="text-decoration: none; font-size: 20px;">Order Now</a></button>
138
- </div>
139
- </div>
140
- </section>
141
-
142
- <!--section 2-->
143
- <section id="mission">
144
- <div class="container-fluid" style="background-color: #d8f2f5;">
145
- <div class="rubi">
146
- <h1 style=" padding: 50px;"><b>RubilabsVet Overview and Mission</b></h1>
147
- </div>
148
- <div class="row">
149
- <div class="col-sm-4">
150
- <div class="card">
151
- <h3><b>Affordables</b></h3>
152
- <p>RubilabsVet is committed to providing high-quality products at competitive prices.</p>
153
- </div>
154
- </div>
155
-
156
-
157
- <div class="col-sm-4">
158
- <div class="card">
159
- <h3><b>Quality Guaranteed</b></h3>
160
- <p>All products are tested and approved, ensuring effective results and happy animals</p>
161
- </div>
162
- </div>
163
- <!--row 2-->
164
- <div class="col-sm-4">
165
- <div class="card">
166
- <h3><b>Convenient Delivery</b></h3>
167
- <p>Get exactly what you need, when you need it, delivered directly to your doorstep.</p>
168
- </div>
169
- </div>
170
-
171
-
172
- <div class="col-sm-4">
173
- <div class="card">
174
- <h4><b>Exceptional Customer Service</b></h4>
175
- <p>The RubilabsVet team is always ready to give expert advice and quick support.</p>
176
- </div>
177
- </div>
178
- </div>
179
-
180
- </div>
181
- </section>
182
-
183
- <!--section 3-->
184
- <section id="products">
185
- <div class="container-fluid" style="background-color: #3e4a95;">
186
- <div class="rubi">
187
- <h1 id="products-h1"><b>Products Available for Delivery</b></h1>
188
- </div>
189
- <div class="row" id="product">
190
- <div class="col-sm-3">
191
- <h3 style="margin-left: 60px;"><b>Vaccines</b></h3>
192
- <ol>
193
- <li>Avian Influenza</li>
194
- <li>Bovine Viral Diarrhea</li>
195
- <li>Pseudrabies (Aujeszky's Disease)</li>
196
- </ol>
197
- </div>
198
-
199
-
200
-
201
- <div class="col-sm-3">
202
- <!-- <img src="./img5.jpeg" alt=""> -->
203
- <!-- <div class="card-body"> -->
204
- <h3 style="margin-left: 60px;"><b>Medications</b></h3>
205
- <ol>
206
- <li>Flunixin Meglumine Injection</li>
207
- <li>Penicillin G Procaine Injection</li>
208
- <li>Oxytetracycline Injection</li>
209
- </ol>
210
-
211
- </div>
212
- <!--row 2-->
213
- <div class="col-sm-3">
214
- <h3><b>Other Farm Inputs</b></h3>
215
- <ol>
216
- <li>Iron Dextran Injection</li>
217
- <li>B Complex Vitamins Injection</li>
218
- <li>Disinfectants</li>
219
- </ol>
220
- </div>
221
- </div>
222
- </div>
223
- </section>
224
-
225
- <!--section 4-->
226
- <div class="container-fluid" id="benefits">
227
- <h1 id="benefits-h1"><b>Benefits of Using RubilabsVet</b></h1>
228
- <div class="row">
229
- <div class="col-sm-3">
230
- <div class="card" id="new">
231
- <img src="./Rubilabs_files/img5.jpeg" alt="">
232
- <div class="card-body">
233
- <h4 style="margin-top: 30px;">Delivery Time</h4>
234
- <p>RubilabsVet products ensure your animals stay healthy, reducing the risk of diseases.</p>
235
- </div>
236
- </div>
237
-
238
- </div>
239
-
240
- <div class="col-sm-3">
241
- <div class="card" id="new">
242
- <img src="./Rubilabs_files/img3.jpeg" alt="">
243
- <div class="card-body">
244
- <h4 style="margin-top: 30px;">Increased Productivity</h4>
245
- <p>Our products enhance growth and productivity of animals, improving farm yields.</p>
246
- </div>
247
- </div>
248
-
249
- </div>
250
-
251
- <div class="col-sm-3">
252
- <div class="card" id="new">
253
- <img src="./Rubilabs_files/img2.jpeg" alt="">
254
- <div class="card-body">
255
- <h4 style="margin-top: 30px;">Sustainable Agriculture</h4>
256
- <p>Our products ensure the welfare and sustainability of your farm.</p>
257
- </div>
258
- </div>
259
-
260
- </div>
261
- </div>
262
-
263
- <!--section 5-->
264
- <section id="order" style="margin-top: 200px;">
265
- <div class="container-fluid" id="orders-top" style="padding-right: calc(var(--bs-gutter-x) * .0); padding-left: calc(var(--bs-gutter-x) * .0); --bs-gutter-x: 0;">
266
- <div class="rubi" style="--bs-gutter-x: 0;">
267
- <h3 id="rubi-h1"><b>How to Place an Order</b></h3>
268
- </div>
269
- <div class="row">
270
- <div class="col-sm-3">
271
- <h4 style="margin-left: 90px;" id="orders"><b>Step 1:</b></h4>
272
- <h4 style="margin-left: 10px;" id="orders"><b>Select Your Products</b></h4>
273
- <p id="order">View our range of products online, and add them to your cart.</p>
274
- </div>
275
-
276
- <!--row 2-->
277
- <div class="col-sm-3">
278
- <h4 style="margin-left: 80px;" id="orders"><b>Step 2:</b></h4>
279
- <h4 style="margin-left: 10px;" id="orders"><b>Choose Delivery Time</b></h4>
280
- <p id="order">Select a suitable delivery date and time that works for you.</p>
281
-
282
- </div>
283
- <!--row 3-->
284
- <div class="col-sm-3">
285
- <h4 style="margin-left: 80px;" id="orders"><b>Step 3:</b></h4>
286
- <h4 id="orders"><b>Complete Your Order</b></h4>
287
- <p id="order">Enter your personal and payment information to complete your purchase.</p>
288
- </div>
289
- </div>
290
- </div>
291
- </section>
292
-
293
-
294
- <!--section 6-->
295
- <div class="container-fluid" id="delivery">
296
- <h1 id="benefits-h1"><b>Delivery Process and Timelines</b></h1>
297
- <div class="row">
298
- <div class="col-sm-3" id="deliverys">
299
- <div class="card" id="news">
300
- <div class="card-body">
301
- <h4 style="margin-top: 30px;">Delivery Time</h4>
302
- <p>Expect delivery within 3 hours from the time of purchase.</p>
303
- </div>
304
- </div>
305
-
306
- </div>
307
-
308
- <div class="col-sm-3" id="deliverys">
309
- <div class="card" id="news">
310
- <div class="card-body">
311
- <h4 style="margin-top: 30px;">Delivery Fees</h4>
312
- <p>Delivery is free for all orders worth #30k and above.</p>
313
- </div>
314
- </div>
315
-
316
- </div>
317
-
318
- <div class="col-sm-3" id="deliverys">
319
- <div class="card" id="news">
320
- <div class="card-body">
321
- <h4 style="margin-top: 30px;">Delivery Locations</h4>
322
- <p>We deliver to all locations within the Nigeria.</p>
323
- </div>
324
- </div>
325
-
326
- </div>
327
-
328
-
329
- <div class="col-sm-3" id="deliverys">
330
- <div class="card" id="news" style="height: 250px;">
331
- <div class="card-body">
332
- <h4 style="margin-top: 30px;">Delivery Tracking</h4>
333
- <p>Track your order’s progress, right from dispatch to your doorstep.</p>
334
- </div>
335
- </div>
336
-
337
- </div>
338
- </div>
339
- </div>
340
-
341
- <!--section 7-->
342
- <section id="FAQs" style="--bs-gutter-x: 0">
343
- <div class="container-fluid">
344
- <div class="rubi">
345
- <h1 id="fqa-h1"><b>FAQs</b></h1>
346
- </div>
347
- <div class="row" id="fqa">
348
- <div class="col-sm-4">
349
- <div class="card">
350
- <h4 class="fqa-h3"><b>What Payment Methods Are Accepted?</b></h4>
351
- <p>We accept all major credit and debit cards, including Visa, MasterCard, and American Express.</p>
352
- </div>
353
-
354
- </div>
355
-
356
-
357
-
358
- <div class="col-sm-4">
359
- <div class="card">
360
- <h4 class="fqa-h3"><b>How Do I Know If My Order Has Been Processed?</b></h4>
361
- <p>You will receive an email confirming receipt of your order, and another email when your order has been dispatched.</p>
362
- </div>
363
-
364
-
365
- </div>
366
- <!--row 3-->
367
- <div class="col-sm-4">
368
- <div class="card">
369
- <h4 class="fqa-h3"><b>What Happens If I Am Not Satisfied With My Order?</b></h4>
370
- <p>In the unlikely event that you are not fully satisfied with your order, contact our customer service team to make
371
- arrangements for returns or exchanges.</p>
372
- </div>
373
-
374
- </div>
375
-
376
- <div class="col-sm-4">
377
- <div class="card" id="fourth" style="height: 260px;">
378
- <h4 class="fqa-h3"><b>Are There Any Discounts Available?</b></h4>
379
- <p>Yes! Check out our website to see our current promotions and discounts available.</p>
380
- </div>
381
-
382
- </div>
383
- </div>
384
- </div>
385
- </section>
386
-
387
- <!--section 8-->
388
- <section id="contact" style="--bs-gutter-x: 0;">
389
- <div class="container-fluid" style="--bs-gutter-x: 0; --bs-gutter-y: 0;">
390
- <div class="footer" style="--bs-gutter-x: 0;">
391
- <div class="row" id="conatct-col">
392
- <!--col 1-->
393
- <div class="col-sm-5">
394
- <div class="card">
395
- <img src="./Rubilabs_files/newlogo.png" alt="">
396
- </div>
397
- </div>
398
-
399
- <!--col 2-->
400
- <div class="col-sm-5">
401
- <div class="card" id="faqs">
402
- <h4 class="fqa-h3"><b>Contact RubilabsVet for More Information</b></h4>
403
- <p>Looking for more information or have a question? Contact our friendly customer service team at <b>+2347016772509</b> or send an
404
- email to <b>[email protected].</b></p>
405
- </div>
406
- </div>
407
- </div>
408
- </div>
409
- </div>
410
- </section>
411
-
412
-
413
-
414
-
415
- </div><div id="chatWidget" class="chat-widget"><img src="./Rubilabs_files/bubble2.png" alt="Chat"></div><div id="chatIframeContainer" class="chat-iframe-container" style="display: none;"><div class="close-button" id="closeButton">Γ—</div><iframe src="./Rubilabs_files/English.html" name="myiFrame" scrolling="yes"></iframe></div></body><grammarly-desktop-integration data-grammarly-shadow-root="true"><template shadowrootmode="open"><style>
416
- div.grammarly-desktop-integration {
417
- position: absolute;
418
- width: 1px;
419
- height: 1px;
420
- padding: 0;
421
- margin: -1px;
422
- overflow: hidden;
423
- clip: rect(0, 0, 0, 0);
424
- white-space: nowrap;
425
- border: 0;
426
- -moz-user-select: none;
427
- -webkit-user-select: none;
428
- -ms-user-select:none;
429
- user-select:none;
430
- }
431
-
432
- div.grammarly-desktop-integration:before {
433
- content: attr(data-content);
434
- }
435
- </style><div aria-label="grammarly-integration" role="group" tabindex="-1" class="grammarly-desktop-integration" data-content="{&quot;mode&quot;:&quot;full&quot;,&quot;isActive&quot;:true,&quot;isUserDisabled&quot;:false}"></div></template></grammarly-desktop-integration></html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
faiss_index/index.faiss ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:92ee8f1637e3592986cbbf9e90b127338ed7028841dc64a599c64dfc44a11f54
3
+ size 1339437
faiss_index/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc07d060eff944aeafff4d7745dcbc845780fe3dc0f8351a89186be6eff9b066
3
+ size 243013
scrape_blueprint.ipynb ADDED
File without changes