h3110Fr13nd commited on
Commit
116c6eb
1 Parent(s): d48537f

scraping script and urls

Browse files
.gitignore CHANGED
@@ -6,3 +6,5 @@ temp*
6
  .venv
7
  venv
8
  usercookies
 
 
 
6
  .venv
7
  venv
8
  usercookies
9
+ log*
10
+ pragetx_scraper/data
main.py CHANGED
@@ -1,27 +1,27 @@
1
  import gradio as gr
2
- import json
3
  import os
4
- import shutil
5
- # import magic
6
- # import ollama
7
- from langchain_community.embeddings.sentence_transformer import SentenceTransformerEmbeddings
8
- from langchain_community.vectorstores.qdrant import Qdrant
9
  from langchain_core.runnables import RunnablePassthrough
10
- from langchain_core.documents import Document
11
- from langchain_core.prompts import ChatPromptTemplate
12
  from langchain_core.output_parsers import StrOutputParser
13
-
14
- # from langchain_community.chains import
15
- from langchain_community.chat_models import ChatOllama
16
  from langchain_chroma import Chroma
17
- from hugchat import hugchat
18
- # from langchain.callbacks import SystemMessage
19
- from hugchat.login import Login
20
  import dotenv
21
  from utils import HuggingChat
22
  from langchain_core.prompts import PromptTemplate
23
  from langchain_community.embeddings import HuggingFaceEmbeddings
24
  import langchain
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  langchain.debug = True
26
 
27
  dotenv.load_dotenv()
@@ -29,9 +29,8 @@ dotenv.load_dotenv()
29
 
30
  class GradioApp:
31
  def __init__(self):
32
-
33
  self.history = []
34
- # self.llm = ChatOllama(model="phi3:3.8b", base_url="http://localhost:11434", num_gpu=32)
35
 
36
 
37
  # template = """
@@ -48,10 +47,11 @@ class GradioApp:
48
  self.template = """
49
  You are a helpful AI bot that guides the customer or user through the website content and provides the user with exact details they want.
50
  You help everyone by answering questions, and improve your answers from previous answers in History.
51
- Don't try to make up an answer, if you don't know, just say that you don't know.
52
  Answer in the same language the question was asked.
53
  Answer in a way that is easy to understand.
54
  Try to limit the answer to 3-4 sentences.
 
55
  Do not say "Based on the information you provided, ..." or "I think the answer is...". Just answer the question directly in detail.
56
 
57
  History: {chat_history}
@@ -65,10 +65,11 @@ Answer:
65
  template=self.template,
66
  input_variables=["chat_history","context", "question"]
67
  )
68
- self.db = Chroma(persist_directory="./pragetx_chroma", embedding_function=HuggingFaceEmbeddings())
 
69
  self.llm = HuggingChat(email = os.getenv("HF_EMAIL") , psw = os.getenv("HF_PASS") )
70
  self.chain = (
71
- {"chat_history": self.chat_history, "context": self.db.as_retriever(k=1), "question": RunnablePassthrough()} |
72
  self.prompt |
73
  self.llm |
74
  StrOutputParser())
@@ -90,29 +91,52 @@ Answer:
90
  yield history
91
  history[-1][1] = history[-1][1] or ""
92
  self.history = history
93
- # history[-1][1] += self.chain.invoke(prompt)
 
 
 
94
  print(history[-1][1])
95
  print(history)
96
- return history
 
 
 
 
 
 
 
 
 
 
 
 
97
 
98
 
99
  with gr.Blocks() as demo:
100
  gradio_app = GradioApp()
 
101
  # files = gr.Files(label="Upload Documents and Medical Reports", type="filepath", file_types=["pdf", "docx", "jpg", "jpeg", "png"])
102
  # upload_button = gr.UploadButton(label="Upload Documents and Medical Reports", type="filepath", file_count='multiple', file_types=["pdf", "docx", "jpg", "jpeg", "png"], )
103
  output_text = gr.Markdown(label="Output", value=" ")
104
  infer_status = gr.Label("Infer Status: ", visible=False)
105
 
106
-
107
  # upload_button.upload(gradio_app.upload_files, upload_button, [files, output_text])
108
- chatbot = gr.Chatbot()
 
 
 
 
109
  msg = gr.Textbox()
110
  clear = gr.Button("Clear")
 
 
 
111
  msg.submit(gradio_app.user, [msg, chatbot], [msg, chatbot], queue=False).then(
112
  gradio_app.bot, chatbot, chatbot
113
  )
 
 
 
114
  clear.click(lambda: None, None, chatbot, queue=False)
115
-
116
-
117
- # demo.queue()
118
- demo.launch(share=True)
 
1
  import gradio as gr
 
2
  import os
 
 
 
 
 
3
  from langchain_core.runnables import RunnablePassthrough
 
 
4
  from langchain_core.output_parsers import StrOutputParser
 
 
 
5
  from langchain_chroma import Chroma
6
+ import re
 
 
7
  import dotenv
8
  from utils import HuggingChat
9
  from langchain_core.prompts import PromptTemplate
10
  from langchain_community.embeddings import HuggingFaceEmbeddings
11
  import langchain
12
+
13
+ # import json
14
+ # import shutil
15
+ # import magic
16
+ # import ollama
17
+ # from langchain_community.vectorstores.qdrant import Qdrant
18
+ # from langchain_core.documents import Document
19
+ # from langchain_core.prompts import ChatPromptTemplate
20
+ # from langchain_community.chains import
21
+ from langchain_community.chat_models import ChatOllama
22
+ # from hugchat import hugchat
23
+ # from langchain.callbacks import SystemMessage
24
+ # from hugchat.login import Login
25
  langchain.debug = True
26
 
27
  dotenv.load_dotenv()
 
29
 
30
  class GradioApp:
31
  def __init__(self):
 
32
  self.history = []
33
+ self.links = []
34
 
35
 
36
  # template = """
 
47
  self.template = """
48
  You are a helpful AI bot that guides the customer or user through the website content and provides the user with exact details they want.
49
  You help everyone by answering questions, and improve your answers from previous answers in History.
50
+ Don't try to make up an answer, if you don't know, say you can contact the support team at https://pragetx.com/contact-us/
51
  Answer in the same language the question was asked.
52
  Answer in a way that is easy to understand.
53
  Try to limit the answer to 3-4 sentences.
54
+ Provide source url as well at the end of the answer.
55
  Do not say "Based on the information you provided, ..." or "I think the answer is...". Just answer the question directly in detail.
56
 
57
  History: {chat_history}
 
65
  template=self.template,
66
  input_variables=["chat_history","context", "question"]
67
  )
68
+ self.db = Chroma(persist_directory="./pragetx_chroma", embedding_function=HuggingFaceEmbeddings(), collection_name="pragetx")
69
+ # self.llm = ChatOllama(model="phi3:3.8b", base_url="http://localhost:11434", num_gpu=16)
70
  self.llm = HuggingChat(email = os.getenv("HF_EMAIL") , psw = os.getenv("HF_PASS") )
71
  self.chain = (
72
+ {"chat_history": self.chat_history, "context": self.db.as_retriever(search_kwargs={"k":3}), "question": RunnablePassthrough()} |
73
  self.prompt |
74
  self.llm |
75
  StrOutputParser())
 
91
  yield history
92
  history[-1][1] = history[-1][1] or ""
93
  self.history = history
94
+ # extract links in the response and store them
95
+ links = re.findall(r'(https?://\S+)', history[-1][1])
96
+ print(links)
97
+ self.links = links
98
  print(history[-1][1])
99
  print(history)
100
+
101
+ # def list_links(self):
102
+ # print( "link_buttons", self.links)
103
+ # link_buttons = []
104
+ # for link in range(5):
105
+ # if link < len(self.links):
106
+ # btn = gr.Button(f"Open {self.links[link]}", visible=True)
107
+
108
+ # else:
109
+ # btn = gr.Button(visible=False)
110
+ # link_buttons.append(btn)
111
+ # return link_buttons
112
+
113
 
114
 
115
  with gr.Blocks() as demo:
116
  gradio_app = GradioApp()
117
+ # link_buttons = []
118
  # files = gr.Files(label="Upload Documents and Medical Reports", type="filepath", file_types=["pdf", "docx", "jpg", "jpeg", "png"])
119
  # upload_button = gr.UploadButton(label="Upload Documents and Medical Reports", type="filepath", file_count='multiple', file_types=["pdf", "docx", "jpg", "jpeg", "png"], )
120
  output_text = gr.Markdown(label="Output", value=" ")
121
  infer_status = gr.Label("Infer Status: ", visible=False)
122
 
 
123
  # upload_button.upload(gradio_app.upload_files, upload_button, [files, output_text])
124
+ chatbot = gr.Chatbot()
125
+ # with gr.Row():
126
+ # for link in range(5):
127
+ # btn = gr.Button(visible=False)
128
+ # link_buttons.append(btn)
129
  msg = gr.Textbox()
130
  clear = gr.Button("Clear")
131
+ # for link in range(5):
132
+ # print(gradio_app.links)
133
+ # btn.click(lambda: None, None, None, js=f"window.location.assign('{gradio_app.links[link]}');" if link < len(gradio_app.links) else None)
134
  msg.submit(gradio_app.user, [msg, chatbot], [msg, chatbot], queue=False).then(
135
  gradio_app.bot, chatbot, chatbot
136
  )
137
+ # .then(
138
+ # gradio_app.list_links, None, link_buttons
139
+ # )
140
  clear.click(lambda: None, None, chatbot, queue=False)
141
+ demo.queue()
142
+ demo.launch(share=True, server_name="0.0.0.0", root_path="/bot")
 
 
pragetx.md DELETED
@@ -1,1499 +0,0 @@
1
- Best  in
2
- the Age of Remote Work
3
- =================================
4
-
5
- We are proud extensive arm for MNCs, Startups, Government, Small & Mid Cap companies around the world in all industries, when it comes to software product development & delivery partners
6
-
7
- Inquire Now !
8
-
9
-
10
- Emerging Technology Services
11
- ----------------------------
12
-
13
- Just automate everything. Be it in any industry. Businesses are advancing and shifting their traditional workflows and approaches to digital automation, so why not switch from standard traditional procedure to automation using Web 3.0 platforms
14
-
15
- !AI & ML
16
- \
17
- ### AI & ML\
18
- \
19
- Refactor existing business processes and improve the decision-making approach of your organization with the power of AI/ML capabilities
20
-
21
- !
22
- \
23
- ### IoT\
24
- \
25
- Establish instantaneous and cognitive communication between two smart devices with the IoT integration servicese
26
-
27
- !
28
- \
29
- ### Business Intelligence and Analytics\
30
- \
31
- Evolve your business decision-making abilities with the help of actionable data analytical insights and stay ahead in this intense market competition
32
-
33
- We are following all International
34
- Code Architectural Norms
35
- -------------------------------------------------------------
36
-
37
- Build Your Companys' _Pragetanam_ with PragetX
38
- ----------------------------------------------
39
-
40
- Our IT Solutions Define Flexibility & Reliability In All Working Environments
41
-
42
- A team of smart and passionate leaders and adaptive software developers, working all together to deliver customized IT solutions, like web & mobile app development, cloud computing, DevOps, and Enterprise IT solutions, with precisions to meet the vision to help you build your brand credibility
43
-
44
- !Build Your Company
45
-
46
- Services We Offer
47
- -----------------
48
-
49
- Providing cutting-edge business IT solutions that bring better customer experience and
50
- build compelling brand reputation, leading to better revenue growth
51
-
52
- !custom-software-development
53
- \
54
- Custom Software \
55
- Development
56
-
57
- !enterprise-solution
58
- \
59
- Enterprise \
60
- Solution
61
-
62
- !digital-marketing
63
- \
64
- Digital \
65
- Marketing
66
-
67
- !qa-testing
68
- \
69
- QA & Testing
70
-
71
- !web-development
72
- \
73
- Web \
74
- Development
75
-
76
- !ui-ux-design
77
- \
78
- UI-UX Design
79
-
80
- !cloud-solution
81
- \
82
- Cloud \
83
- Solutions
84
-
85
- !sales-force
86
- \
87
- Salesforce
88
-
89
- !mobile-app-development
90
- \
91
- Mobile App \
92
- Development
93
-
94
- !cloud-&-devOps
95
- \
96
- DevOps \
97
- Solutions
98
-
99
- Our Software Development Approach
100
- ---------------------------------
101
-
102
- We follow a complete software development lifecycle to deliver cutting-edge software
103
- solutions, meeting clients’ needs
104
-
105
- 1
106
-
107
- #### Plan
108
-
109
- Understanding the idea and gathering all required information of Project
110
-
111
- 2
112
-
113
- #### Define
114
-
115
- Preparing a final wireframe & timeline of all functions, elements, modules etc.
116
-
117
- 3
118
-
119
- #### Distribute
120
-
121
- Scheduling and dividing work among team of developer as per fixed timeline
122
-
123
- 4
124
-
125
- #### Design
126
-
127
- Researching new trends, tools, and skills for having best UI/UX from market
128
-
129
- 5
130
-
131
- #### Development
132
-
133
- Team leader and developers initiate development as per work distribution
134
-
135
- Custom Software
136
- Development Lifecycle
137
- ---------------------------------------
138
-
139
- 6
140
-
141
- #### Quality Assurance
142
-
143
- Monitoring & ensuring proper quality maintained as per the Deming (PDCA) Cycle
144
-
145
- 7
146
-
147
- #### Testing
148
-
149
- Evaluating and verifying if there’s any gap, error, bug, or requirement implementation is missing before deploying
150
-
151
- 8
152
-
153
- #### Deploy
154
-
155
- Finally, getting product up and running before delivering to clients with all required changes
156
-
157
- 9
158
-
159
- #### Feedback
160
-
161
- Team passively collect and pin notes of opinions and changes from clients about project
162
-
163
- 10
164
-
165
- #### Maintenance
166
-
167
- Dedicated developer is assigned for the project maintenance as requested by clients
168
-
169
- PragetX Brand Accreditations
170
- ----------------------------
171
-
172
- Our culture and quality services are what make us the right fit for your business to partner with us for the next-generation IT services
173
-
174
- !Clutch
175
- \
176
- Clutch Rating\
177
- \
178
- Review\
179
- \
180
- !star
181
-
182
- !GoodFirms
183
- \
184
- GoodFirms Rating\
185
- \
186
- Review\
187
- \
188
- !star
189
-
190
- !Google
191
- \
192
- Google Rating\
193
- \
194
- Review\
195
- \
196
- !star
197
-
198
- !Glassdoor
199
- \
200
- Glassdoor Rating\
201
- \
202
- Review\
203
- \
204
- !star
205
-
206
- !startup_india
207
- \
208
- Recognized by\
209
- \
210
- The Startup India
211
-
212
-
213
-
214
-
215
- Our Software Solution
216
- Development Portfolio
217
- =============================================
218
-
219
- ##### Our software development portfolio demonstrates how our IT experts take businesse’s
220
- requirements and turn them into high-quality customer experiences
221
- and cutting-edge IT solutions.
222
-
223
- Website and Applications
224
- ------------------------
225
-
226
- PPP (Purna Paper Products)!India
227
- -----------------------------------------------------
228
-
229
- ##### Streamlined ERP System with mobile app for enhanced sales management
230
-
231
- ###### Industry: Stationery Wholesalers
232
-
233
- A case study on Purna Paper Products (PPP), a wholesaler based in Rajkot (city in Gujarat, India) that specializes in paper products, stationery, and related items.
234
-
235
- View Case Study !
236
-
237
-
238
- !ppp
239
-
240
- MyPandit!India
241
- -----------------------------------
242
-
243
- ##### An on-demand astrology services providing cross-platform mobile app development solution
244
-
245
- ###### Industry: Astrology
246
-
247
- The application is designed to connect users with qualified astrologers who offer accurate readings and guidance on various aspects of their lives, such as careers, relationships, and health.
248
-
249
- View Case Study !
250
-
251
-
252
- !mypandit
253
-
254
- Hungry Veels!India
255
- ---------------------------------------
256
-
257
- ##### A cross-platform mobile app development solution for ordering food online
258
-
259
- ###### Industry: Logistics
260
-
261
- Hungry Veels is an emerging online food ordering and delivery mobile application providing its services across India.
262
-
263
- View Case Study !
264
-
265
-
266
- !hungry veels
267
-
268
- Folo App!India
269
- -----------------------------------
270
-
271
- ##### An on-demand astrology services providing cross-platform mobile app development solution
272
-
273
- ###### Industry: Astrology
274
-
275
- Folo App is an Astrology-based app that connects astrologers from across India to provide their online astrology services on a per-minute charging business model.
276
-
277
- View Case Study !
278
-
279
-
280
- !folo app
281
-
282
- ELC Tutoring!India
283
- ------------------------------------------------
284
-
285
- ##### A reward-based e-learning WordPress website development solution
286
-
287
- ###### Industry: Education
288
-
289
- ELC Tutorial stands for the Every Lesson Counts Tutorial, which is an e-learning website based in the UK. It specializes in providing tutoring education for 11+ entrance tests, St. Anselm’s tests, and Upton Hall tests, along with Maths and English tuition classes for 3-6-year-old kids and GCSEs.
290
-
291
- View Case Study !
292
-
293
-
294
- !elc tutoring
295
-
296
- NeoGrowth!India
297
- ------------------------------------
298
-
299
- ##### Website KYC routing solution implementation in React.js
300
-
301
- ###### Industry: Finance
302
-
303
- A FinTech web app development solution helps businesses to apply for loans to accomplish their goals with minimal interest rates with complete transparency and stipulations of the RBI’s directives.
304
-
305
- View Case Study !
306
-
307
-
308
- !neogrowth
309
-
310
- SchoolOwls!India
311
- ---------------------------------------------
312
-
313
- ##### An e-learning WordPress website development solution
314
-
315
- ###### Industry: Education
316
-
317
- School Owls is an online education platform which creates and provides fun-based, quality Mathematics, cursive writing, reading, and different types of worksheets for children, pursuing primary education (from kindergarten to grade 8).
318
-
319
- View Case Study !
320
-
321
-
322
- !school owls
323
-
324
- Zen Coast University!India
325
- -----------------------------------------------
326
-
327
- ##### An e-learning website development solution in Kejabi
328
-
329
- ###### Industry: Education, E-learning
330
-
331
- Zen Coast University is an e-learning platform developed in the Kejabi framework providing real estate investment related online courses from the industry experts.
332
-
333
- View Case Study !
334
-
335
-
336
- !zen coast university
337
-
338
- Nepal Government App!India
339
- -----------------------------------------------
340
-
341
- ##### A cross-platform mobile application development for the Nepal government
342
-
343
- ###### Industry: Government & Public Sector
344
-
345
- Nepali government app makes Nepal citizens’ work easier to report online problems that occurred in their local regions through an online form to the government officers.
346
-
347
- View Case Study !
348
-
349
-
350
- !nepal government app
351
-
352
- Ayuvani!India
353
- ----------------------------------
354
-
355
- ##### An online ayurvedic doctors’ appointment booking cross-platform mobile application development solution
356
-
357
- ###### Industry: E-booking, Healthcare
358
-
359
- Ayuvani is an online appointment booking application for doctors, which helps patients needing ayurvedic care to quickly consult an Ayurvedic/homoeopathic doctor in the comfort of home.
360
-
361
- View Case Study !
362
-
363
-
364
- !ayuvani
365
-
366
- NFT Marketplace!India
367
- ----------------------------------------------
368
-
369
- ##### NFT Marketplace development with Ethereum Blockchain
370
-
371
- ###### Industry: Blockchain
372
-
373
- An NFT marketplace application backed by ethereum blockchain that allows users to mint and sell NFTs, create and sign smart contracts.
374
-
375
- View Case Study !
376
-
377
-
378
- !nft marketplace
379
-
380
- Scrapbook!India
381
- --------------------------------------------
382
-
383
- ##### Native iOS Mobile Application Development Solution
384
-
385
- ###### Industry: Miscellaneous
386
-
387
- Scrapbook is an iOS mobile application enabling users to fill out their school time memories in the application connected to the iCloud storage system to access it whenever they feel nostalgic about their school time.
388
-
389
- View Case Study !
390
-
391
-
392
- !scrapbook
393
-
394
- Family Hives!India
395
- ------------------------------------------------------------
396
-
397
- ##### Flutter App Testing Project
398
-
399
- ###### Industry: Family Media
400
-
401
- Family Hives is a hybrid mobile application for both Android and iOS mobile devices. It is a unique concept of socialization application that keeps families connected whether they are living together or in remote locations. Read our Family Hive mobile app testing story.
402
-
403
- View Case Study !
404
-
405
-
406
- !family hives
407
-
408
- UrNest!India
409
- ---------------------------------
410
-
411
- ##### Native Cloud Kitchen Mobile App Development Solution
412
-
413
- ###### Industry: Hospitality
414
-
415
- UrNest - a unique cloud-kitchen native iOS application development solution that brings people with different values and cultures together.
416
-
417
- View Case Study !
418
-
419
-
420
- !urnest
421
-
422
- KeepCoolRecs!India
423
- -----------------------------------------
424
-
425
- ##### A native iOS mobile application development
426
-
427
- ###### Industry: Manufacturing
428
-
429
- Image Processing is a native iOS mobile application that lets users scan images to guess the percentage of a green pixel color collection and nearby color code for industrial use.
430
-
431
- View Case Study !
432
-
433
-
434
- !keepcoolrecs
435
-
436
-
437
-
438
- Team That Everyone
439
- Wants to Be Part of
440
- ========================================
441
-
442
- Join Our Visionary Team !
443
-
444
-
445
- Why Work With PragetX?
446
- ----------------------
447
-
448
- At PragetX, we ensure that our team has a great balance between personal and corporate life. Being a thriving IT firm, we give priority to people with a startup mindset, a positive attitude towards learning new things, higher grasping power, creativity, focus, passion, and most importantly, team player quality. We value quality work delivery within the promised timeline.
449
-
450
- !Accelerate Your Career
451
-
452
- #### Accelerate Your Career with PragetX
453
-
454
- Continuous learning, analytical skills, and following the company’s mission, vision, and values at the workplace would help your/any goal-oriented personality build an ethical career.
455
-
456
- !Best Culture and Work Environment
457
-
458
- #### Best Culture and Work Environment
459
-
460
- We like to motivate our team in every difficult phase, giving them the confidence to 'Just Do It!', and bring out their creativity, like a friend, mentor, or well-wisher would do. This culture at PragetX makes it a great place to work.
461
-
462
- Our Work Ethics
463
- ---------------
464
-
465
- ##### Positive work values, ethics, and attitude towards dealing with clients and project difficulties
466
- define PragetX as your ideal IT team
467
-
468
- !5 Working Days a Week
469
-
470
- !Flexible Work
471
-
472
- !Experienced Team
473
-
474
- !Diversify Culture
475
-
476
- !Embracing Change
477
-
478
- !Referral Programs
479
-
480
- !Valid Paid Leaves
481
-
482
- !Work as a Team
483
-
484
- !Value Suggestions
485
-
486
- Perks of Working With PragetX
487
- -----------------------------
488
-
489
- ##### At PragetX, we stand by our mantra ”You Grow, We Grow”. Here employees are considered an important
490
- family member and each action aim to improve their knowledge. Work with us and gather
491
- the life-changing knowledge you need to thrive in this industry.
492
-
493
- !5 Working Days a Week
494
-
495
- !Flexible Work
496
-
497
- !Experienced Team
498
-
499
- !Diversify Culture
500
-
501
- !Embracing Change
502
-
503
- !Referral Programs
504
-
505
- !Valid Paid Leaves
506
-
507
- !Work as a Team
508
-
509
- !Value Suggestions
510
-
511
- !Skill Matters Most
512
-
513
- !Build Future Career
514
-
515
- !Goodies and Gifts
516
-
517
- Insights
518
- --------
519
-
520
- ##### PragetX team is passionate about delivering excellence and
521
- committed to helping clients scale to new heights
522
-
523
- We’re Hiring!
524
- -------------
525
-
526
- ##### We at Pragetx are looking for skillful and talented tech geniuses and creative personalities to be a part of
527
- this evolving and scaling team of visionary leaders who can bring value to this company
528
- that has successfully delivered 45+ projects within a shorter time.
529
-
530
- ##### Business Development Executive (BDE)
531
-
532
- Experience: 2+ years
533
-
534
- Location: Ahmedabad
535
-
536
- Apply Now
537
-
538
- ##### Business Analyst (BA)
539
-
540
- Experience: 1+ years
541
-
542
- Location: Ahmedabad
543
-
544
- Apply Now
545
-
546
- ##### SDE-2 Flutter Developer
547
-
548
- Experience: 2+ years
549
-
550
- Location: Ahmedabad
551
-
552
- Apply Now
553
-
554
- ##### Social Media Specialist
555
-
556
- Experience: 2+ years
557
-
558
- Location: Ahmedabad
559
-
560
- Apply Now
561
-
562
- ##### Sr. Java Developer
563
-
564
- Experience: 2+ years
565
-
566
- Location: Ahmedabad
567
-
568
- Apply Now
569
-
570
- ##### SDE-1 Python Developer
571
-
572
- Experience: 1+ years
573
-
574
- Location: Ahmedabad
575
-
576
- Apply Now
577
-
578
- ##### Sr. HR Recruiter
579
-
580
- Experience: 1+ years
581
-
582
- Location: Ahmedabad
583
-
584
- Apply Now
585
-
586
- Our Offices
587
- -----------
588
-
589
- !Corporate Office
590
-
591
- ##### Corporate Office
592
-
593
- D-509 & D-510, Swati Clover, Shilaj Circle, SP Ring Road, Thaltej, Ahmedabad - 380054
594
-
595
- !Registered Office
596
-
597
- ##### Registered Office
598
-
599
- 501, Pride-410, Nr. Zebar School, B/H Copper Stone, Thaltej, Ahmedabad, Gujarat 380059
600
-
601
- !US Office
602
-
603
- ##### US Office
604
-
605
- PO Box 531 Centerville ga
606
- 31028
607
-
608
- !UK Office
609
-
610
- ##### UK Office
611
-
612
- 379 New Chester Road, Birkenhead,
613
- Liverpool UK
614
-
615
- !BRAZIL Office
616
-
617
- ##### Brazil Office
618
-
619
- Rua Castelo 239 Foz do Iguaçu Paraná
620
-
621
- Mr. Marco Antônio
622
- +55 45 8802-5573
623
- msouza@pragetx.com
624
-
625
-
626
-
627
-
628
-
629
- How can we help you?
630
- ====================
631
-
632
- ##### At PragetX, we have made it easier for businesses to contact us with their requirements for quick consultation and project delivery.
633
-
634
- !Skype
635
-
636
- !Whatsapp
637
-
638
- !Email
639
-
640
- !Google Meet
641
-
642
- !Contact Us
643
-
644
- Have a startup idea &
645
- need to discuss with us?
646
- ------------------------------------------------
647
-
648
- Let us give you our honest opinion.
649
-
650
- ##### Book your **FREE 30 minutes** consultation with:
651
-
652
- Consult our experts !
653
-
654
-
655
- !Andy
656
-
657
- ##### Mr. Sagar Anadkat
658
-
659
- Co-Founder & Business Head!Email
660
- !Call
661
- !Skype
662
-
663
- Our Offices
664
- -----------
665
-
666
- !Corporate Office
667
-
668
- ##### Corporate Office
669
-
670
- D-509 & D-510, Swati Clover, Shilaj Circle, SP Ring Road, Thaltej, Ahmedabad - 380054
671
-
672
- !Registered Office
673
-
674
- ##### Registered Office
675
-
676
- 501, Pride-410, Nr. Zebar School, B/H Copper Stone, Thaltej, Ahmedabad, Gujarat 380059
677
-
678
- !US Office
679
-
680
- ##### US Office
681
-
682
- PO Box 531 Centerville ga
683
- 31028
684
-
685
- !UK Office
686
-
687
- ##### UK Office
688
-
689
- 379 New Chester Road, Birkenhead,
690
- Liverpool UK
691
-
692
- !BRAZIL Office
693
-
694
- ##### Brazil Office
695
-
696
- Rua Castelo 239 Foz do Iguaçu Paraná
697
-
698
- Mr. Marco Antônio
699
- +55 45 8802-5573
700
- msouza@pragetx.com
701
-
702
-
703
-
704
-
705
-
706
- Privacy Policy
707
- ==============
708
-
709
- ##### Last Updated: 22-07-2022
710
-
711
- We, at PragetX Technologies LLP, are committed to protecting the privacy of our visitors, for we do not spam, sell, rent, lease or give away the information to any third party/parties.
712
-
713
- It is projected to describe how we use and process your personal information. Please ensure that by visiting and using pragetx.com, you are agreeing to and accepting the policies that are described in this Privacy Policy.
714
-
715
- This Privacy Policy also explains how we are going to use your personal information and what happens to any personal data that you provide to us. Moreover, we do update the policies of this page from time to time, so please keep reviewing the page on regular basis.
716
-
717
- Information We Collect
718
- ----------------------
719
-
720
- #### (i) Personal Information
721
-
722
- The personal information that we may collect includes your name, contact information, IP addresses, product and service selections, and other information, identifying you. We may also gather and collect personal information from you at different points, including but not limited to the following:
723
-
724
- * At the time of communicating with you as a customer or prospective customer;
725
- * When you prefer to visit our website or make use of the platform;
726
- * While registering you as an end-user of our products or services and one account is specially made for you;
727
- * When you fill out our “Get In Touch” form to get in touch with our experts;
728
-
729
- #### (ii) Non-personal Data
730
-
731
- We may also collect or gather non-personal data or information about users whenever they prefer to interact with our website. Non-personal data and information include the browser name that users access, the type of computer, technical information like operating system and Internet service providers, and other similar information via Google Analytics.
732
-
733
- Cookies
734
- -------
735
-
736
- Our website does not collect any information about users, except for the information contained in Cookies. Talking about cookies, they are small text files, which are mainly saved and retrieved information about your visit to our website. We use cookies to give a personalized experience on our website. Here, you can find how we use cookies:
737
-
738
- * **Session cookies:** generally, session cookies are cached mainly for the duration of your use of our website;
739
- * **Permanent cookies:** permanent cookies are stored in your terminal device for the time specified in the Cookie files parameters or until you delete them.
740
-
741
- You can adjust the settings on your computer in order to decline any cookies if you wish to.
742
-
743
- Disclosing Your Information
744
- ---------------------------
745
-
746
- We assure you that we will not disclose your gathered personal information to any other party than in agreement with this Privacy Policy. Some of the circumstances given below when we may need to share your share:
747
-
748
- * In any situation, when we might have to sell any or all of our business to the buyer.
749
- * We may disclose your personal information when it is legally required by the law.
750
- * To protect fraud and reduce the risk of fraud.
751
-
752
- PragetX Technologies never sell, trade, or rent users’ personal information to others. If required, we may share general demographic data and information that is not linked to any personal information regarding visitors with our trusted business partners, affiliates and advertisers for the purpose mentioned above.
753
-
754
- Security
755
- --------
756
-
757
- Here, we make sure that your shared personal or non-personal information is safe and secure from any unauthorized access, use, loss, or destruction. Personal or non-personal information provided by you is stored on a safe and secured web server that is managed by PragetX Technologies. To protect from authorized access, we have used physical, electronic, and managerial procedures to safeguard and secure the information.
758
-
759
- Third Party Links/Websites
760
- --------------------------
761
-
762
- PragetX Technologies may link to third-party websites and services when required; however, we are not responsible for privacy statements, practices or the contents of such third-party sites.
763
-
764
- Changes to Privacy Policy
765
- -------------------------
766
-
767
- PragetX reserves the right to change, edit or amend this Privacy Policy at any time without any prior notice. When we change, edit or remove any part from this privacy policy, we will mention the updated date at the bottom of this privacy policy page. We encourage our users to keep reviewing this page frequently in order to stay updated with the changes that we perform. The continuing use of our website means that you agree and accept those changes.
768
-
769
- Contact Us
770
- ----------
771
-
772
- If you have any queries about the Terms and Conditions mentioned, feel free to contact us:
773
-
774
- **Email:** hello@pragetx.com
775
-
776
- **With Subject Line:** Regarding PragetX Website Terms and Conditions
777
-
778
-
779
-
780
-
781
-
782
- Terms & Conditions
783
- ==================
784
-
785
- ##### Last Updated: 22-07-2022
786
-
787
- Interpretation
788
- --------------
789
-
790
- The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
791
-
792
- Definitions
793
- -----------
794
-
795
- In purpose to PragetX Website Terms and Condition:
796
-
797
- * **Company** (referred to as either \`"the Company\`", \`"We\`", \`"Us\`" or \`"Our\`" in this Agreement) refers to PragetX Technologies LLP, 501, Pride-410, Nr. Zebar School, B/H Copper Stone, Thaltej, Ahmedabad, Gujarat 380059
798
- * **Country** refers to: India and USA
799
- * **Device** means any device that can access the Service such as a computer, a cellphone or a digital tablet.
800
- * **“Service” and “Platform”** refers to the Website.
801
- * **Service Provider** means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.
802
- * **Terms and Conditions**, also referred to as “Terms of Use” and “Legal Policy”, forming agreement of both the parties, You and the Company regarding the use of the Platform.
803
- * **Website** refers to PragetX, accessible from https://pragetx.com/
804
-
805
- * **You** mean the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.
806
-
807
- Acknowledgement
808
- ---------------
809
-
810
- The PragetX company welcome you to our corporate website, also referred to as PragetX. Use of this website and provided information related to the PragetX IT services on this website is referred to you on acceptance and agreement of the PragetX website terms of use, privacy policy, and copyrights. Your use of this website would be considered as your acceptance of the company website terms & conditions and privacy policy. In circumstances of disagreement, the community request you not to use the website and provide suggestions, if any, via email at hello@pragetx.com
811
- . All corrections and suggestions are appreciated at PragetX Technology LLP, being an open-minded and diverse IT community.
812
-
813
- The rights to make amendments to these website Terms and Conditions are reserved to owners at PragetX when needed and can be applied without any prior notice.
814
-
815
- Website Content Copyright Notice
816
- --------------------------------
817
-
818
- The website properties, including theme, logo, colour palettes, trademarks, text, icons, etc., are the intellectual properties of PragetX and are protected by legal support and corporate intellectual property laws. Any unauthorized of such properties may raise a legal copyright infringement issue and further legal repercussions. The third-party logos, graphics, and properties used in the Platform have been presented with the consent of third parties, and the copyright of such properties is a purely third-party concern. You, thereby, are liable to accept this Service as explicitly lawful property.
819
-
820
- The usages of the graphics on the website are stock photographs purchased from the third-party stock photography websites with licenses. PragetX Technologies LLP does not claim the ownership of these graphics, and they are solely the owner’s concerns.
821
-
822
- Website Internal and External Linking
823
- -------------------------------------
824
-
825
- The platform may contain third-party website links that do not claim Company ownership or governance, as they are solely used for the fact clearance and further information enablement. Thereby, you acknowledge that the company shall not be liable for any further damage or loss caused by those third-party entities.
826
-
827
- We strongly insist You read the third-party website’s Terms and Conditions and Privacy Policies before agreeing with their cookies or providing any personal information.
828
-
829
- Termination
830
- -----------
831
-
832
- In case of the breach of the PragetX website Terms & Conditions, website authorities may terminate or suspend Your access and right to use the Service immediately without any prior notice or warnings.
833
-
834
- \`"AS IS\`" and \`"AS AVAILABLE\`" Disclaimer
835
- ---------------------------------------------
836
-
837
- The Platform services and solutions will be provided to you on an \`"AS IS\`" and \`"AS AVAILABLE\`" support with a legal corporate agreement. The company will discuss the detailed service-based terms and conditions personally while discussing the project scope as personally identifiable information. Your consent to these terms and conditions shall make it lawfully binding on both organizations.
838
-
839
- Content Representation Disclaimer
840
- ---------------------------------
841
-
842
- Being a service-based IT firm, the platform agrees on representing information about the services and technologies that have been collected from multiple third-party sources with a belief to be reliable and worthy to share with the website visitors as a token of information-sharing concerns. However, the platform may contain some mistakes, inaccuracies, grammar, or typo errors.
843
-
844
- The PragetX organization does not claim to provide information that can harm or directly point to the entity. The information shared on the website is based on the right to analyze and speak and share one’s opinion with the geek community. In any case of the third-party harm to the branding, PragetX shall not be held responsible for any kind of damage as the information provided on the platform is fact-checked and represented only to spread awareness about the services we are offering. Hereby, you agree to defend and protect the PragetX reputation from any losses, expenses, or penalties, including attorney fees, paid out of or in response to misuse of the content and services of the site by the user.
845
-
846
- The owners at PragetX do not claim to provide 100% accurate information across the website. With the right to public opinions, PragetX reserves the authority to modify the content, services, and price charts listed on the website at any time without any prior declaimers.
847
-
848
- Governing Law
849
- -------------
850
-
851
- I agree with the company TERMS & CONDITIONS, excluding the country law conflicts. Your Application use behaviour may be subject to international laws. If you have any concerns or want to raise a dispute against the company **Terms & Conditions**, we advise you to first reach out to the Company Website authorities with your concerns and try to solve them internally.
852
-
853
- You represent and warrant that (i) You are not associated with any criminal organization or have roots connected to any country’s \`"Terrorist Support Group\`" or are blacklisted by any country for violating the national or international law policies.
854
-
855
- Contact Us
856
- ----------
857
-
858
- If you have any queries about the Terms and Conditions mentioned, feel free to contact us:
859
-
860
- **Email:** hello@pragetx.com
861
-
862
- **With Subject Line:** Regarding PragetX Website Terms and Conditions
863
-
864
-
865
-
866
-
867
-
868
- ##### A visionary & upcoming leading software development company based in India
869
-
870
- A Dedicated, Agile Team of Developers
871
- At Your Service
872
- =======================================================
873
-
874
- ##### PragetX is an extended team of experienced software developers who are on a mission to help businesses in their digital transformation journey through dedication and the latest technology support.
875
-
876
- PragetX: How It All Started?
877
- ----------------------------
878
-
879
- ###### The idea of PragetX was like a buzzword in our founders’ minds that they couldn’t resist because the change it could bring across the IT sector. That’s how the leaders at PragetX came in front and laid its pillars in 2021 with an aim to be a helping hand to businesses suffering in their digital transformation journey due to a sudden need to transition to remote work settlements. Though it’s just a startup, during just a year of the journey, this visionary team has accomplished many milestones and has served 54+ global brands with extraordinary and compelling results as promised.
880
-
881
- !Build Your Pragetanam with Us
882
-
883
- Build Your _Pragetanam_ with Us
884
- -------------------------------
885
-
886
- ##### Our IT Solutions Define Flexibility & Reliability In All Working Environments
887
-
888
- ###### A team of creative developers, smart leaders, digital content creators, and brand marketers, working together to provide all types of software and marketing-related services to help build your company’s “Pragetanam” with us.
889
-
890
- Get In Touch !
891
-
892
-
893
- We only commit, if we can do it
894
- -------------------------------
895
-
896
- ##### our focused business strategy is designed to enhance client’s existing development methodology and improve their conventional way of business operations.
897
-
898
- * Our Mission
899
- * Our Vision
900
-
901
- ##### You Grow, We Grow.
902
-
903
- Thriving to ease the workload of companies and individuals by providing cutting-edge, innovative, hassle-free software development and marketing solutions.
904
-
905
- We want companies to not compromise on anything because of any factor but to aim for higher and better results in their development budget.
906
-
907
- ##### Our vision is not to outgrow anyone, but to help YOU outgrow YOURSELF
908
-
909
- Our vision is to empower businesses with emerging IT solutions, helping them solve their concerning problems, ease their workloads, and thrive in their digital transformation journey. This way, we can make PragetX - the best and your dream team of developers to collaborate with.
910
-
911
- At PragetX, We Live By Our Mantra
912
- ---------------------------------
913
-
914
- ##### Give us a chance to be your extended IT team and help you achieve your competitive edge
915
-
916
- ##### Listen
917
-
918
- We listen to each important requirement from the client in detail and share valuable suggestions to come up with the best wireframe design.
919
-
920
- ##### Develop
921
-
922
- With best agile methodologies, we develop the project with highly skilled developers and team leaders with a complete software development life cycle.
923
-
924
- ##### Deploy
925
-
926
- We finish developing and testing before the targeted timeline for discussing with our clients to make any necessary changes or modifications needed.
927
-
928
- Work Life At Its Best
929
- ---------------------
930
-
931
- ##### A passionate team that develops an encouraging and innovative work culture that you’re actively looking forward to collaborating with
932
-
933
- !Learning & Development
934
- Development
935
-
936
- !Mindful Personal Guidance
937
- Personal Guidance
938
-
939
- !Constructive Feedback
940
- Feedback
941
-
942
- !Inclusive & Open-Culture
943
- Open-Culture
944
-
945
- !Innovation & Quality First
946
- Quality First
947
-
948
- !Proactive Implementation
949
- Implementation
950
-
951
- !Best & Global Opportunities
952
- Opportunities
953
-
954
- !Work with Latest Technology
955
- Latest Technology
956
-
957
- !Evolving Culture
958
- Culture
959
-
960
- Insights
961
- --------
962
-
963
- ##### PragetX team is passionate about delivering excellence and
964
- committed to helping clients scale to new heights
965
-
966
- Our Core Values
967
- ---------------
968
-
969
- ##### At PragetX, we embrace a well-established set of cultural and professional values which
970
- represent our highest aspirations for how we engage as colleagues, fellows, alumni, partners, and board members
971
-
972
- !Customer Comes First
973
-
974
- Customer Comes First
975
-
976
- All clients of PragetX are our key to success and an essential part of this thriving organization.
977
-
978
- !Satisfaction
979
-
980
- Satisfaction
981
-
982
- A team that sticks to the words given till the project delivery
983
-
984
- !Honesty
985
-
986
- Honesty
987
-
988
- Complete transparency is what we aim for, and we follow through by all means.
989
-
990
- !Integrity
991
-
992
- Integrity
993
-
994
- Our ethics and professionalism to deal with industry problems define our work culture.
995
-
996
- !Accountability
997
-
998
- Accountability
999
-
1000
- No matter how difficult a project is, we strive to achieve the desired benchmarks
1001
-
1002
- !Cognitive Teamwork
1003
-
1004
- Cognitive Teamwork
1005
-
1006
- No project work can be done alone better than teamwork, and that’s what lies at the center of PragetX.
1007
-
1008
- !Passionate Teams
1009
-
1010
- Passionate Teams
1011
-
1012
- A passion to deliver projects with multiple times, cross-verifications and amendments until the objectives are met.
1013
-
1014
- !Skills Above Everything
1015
-
1016
- Skills Above Everything
1017
-
1018
- At PragetX, we choose our team members by assessing their skills rather than giving priority to their degree
1019
-
1020
- !Value to Time
1021
-
1022
- Value to Time
1023
-
1024
- No matter how big or small and easy or difficult a project is, we ensure to meet the deadline every time.
1025
-
1026
-
1027
-
1028
-
1029
- A Modern Age Agile IT Work Approach
1030
- ===================================
1031
-
1032
- ##### Helping businesses get the best breed of the IT solution through a strategic development approach with the assurance
1033
- of faster project delivery without compromising on quality.
1034
-
1035
- Explore Our Offerings!
1036
-
1037
- Agile Collaborations = Faster Software Time-to-Market
1038
- -----------------------------------------------------
1039
-
1040
- ##### Following the client-first approach from knowing and understanding requirements to planning a strategic roadmap by referring to Agile or Waterfall software implementation models, ensuring faster software time-to-market with definitive results at effective rates.
1041
-
1042
- ##### PragetX Technologies LLP understands the importance of client’s requirements for reaching out to any software services providing firm to hire the best team that uses intelligence in analyzing requirements, strategic planning, persistence in following the roadmap, and aptitude in delivering rigorous solutions in less time at ample prices. So, don’t let your business-critical IT investment turn into an insignificant outcome due to improper planning and execution.
1043
-
1044
- !Agile Collaborations1
1045
-
1046
- !Agile Collaborations2
1047
-
1048
- ##### Trust team PragetX as your right-fit emerging IT services providing partner, delivering the state-of-the-art, value-driven, cost-effective, and cutting-edge IT solutions for your evolving business. Our software engineers are very well-skilled and have technological leadership quality and a client-first mindset, which is needed to ensure a smooth implementation and transition of your IT solutions.
1049
-
1050
- ##### Get the right-sized IT development solution for your business-critical software project in terms of logical planning, monitoring, and management approaches within your budget without compromising on quality or outcomes.
1051
-
1052
- PragetX Value Prepositions
1053
- --------------------------
1054
-
1055
- ##### Delivering end-to-end, custom, and value-driven software solutions with satisfactory results in terms of phenomenal user experience so you can ensure your firm’s competitive edge at all times.
1056
-
1057
- ##### Cutting-Edge IT Solutions
1058
-
1059
- Thoroughly understanding the needs of clients to provide them with a feasible IT solution meeting their criteria in terms of development, user experience, and financial investment.
1060
-
1061
- ##### Cognitive Collaborations
1062
-
1063
- Following methodological communication and cognitive collaborations with clients to keep them updated with our progress on the project while ensuring to meet deliverables.
1064
-
1065
- ##### Proactive Project Management
1066
-
1067
- Asking for clients’ feedback on the completion of each project milestone to ensure that the planned project governance and KPIs are met with necessary amendments.
1068
-
1069
- ##### End-Point Confidentiality
1070
-
1071
- Providing end-to-end NDA (Non-Disclosure Agreements) and IPR (Intellectual Property Rights) agreements for your satisfactory IT collaboration with PragetX.
1072
-
1073
- ##### Dedicated Support
1074
-
1075
- Ensuring to meet all your IT service standards, whether your project is under development or already delivered. Get 30-days of free project maintenance support after the delivery.
1076
-
1077
- ##### Value For Money
1078
-
1079
- Regardless of the project difficulties, software engineers at PragetX will ensure to craft a well-defined solution providing guaranteed cutting-edge performance.
1080
-
1081
- Business Models
1082
- ---------------
1083
-
1084
- ##### Understanding unique requirements for different industries, thus, proposing some business engagement models for you to discover the right-fit one meeting your business-critical IT project KPIs.
1085
-
1086
- * Fixed-Priced Model
1087
- * Hourly-Priced Model
1088
- * Hire & Go (Staff Augmentation)
1089
-
1090
- !Fixed Priced Model
1091
-
1092
- #### Fixed-Priced Model
1093
-
1094
- Have clear IT project development requirements and scope in mind and need the exact crafted-in IT solution from us? This business engagement model is for you. Let us know your exact requirements and get the fixed reliable budget with project deliverables with the proper timeline. Ensure minimal interactions with the development team and leave all your project worries to us so that you can focus on your other business competencies.
1095
-
1096
- !Hourly Priced Model
1097
-
1098
- #### Hourly-Priced Model
1099
-
1100
- The project development scope is briefly defined, the requirements are expected to change over time, and need developers to apply their creativity that can sync in with the development as well, then this business engagement is highly recommended. Get a well-defined solution in different short-term milestones by hiring us to work on your project on an hourly basis.
1101
-
1102
- !Hire Go
1103
-
1104
- #### Hire & Go (Staff Augmentation)
1105
-
1106
- Have multiple requirements for us to meet for different projects and need instant onboarding of a resource/developer/software engineer to work dedicated for your company as your employee? Hire dedicated resources or an entire team of developers to extend your technical team capabilities on a contract basis. Hire our developers to work on an hourly basis as your dedicated resource.
1107
-
1108
- Our Development Functions
1109
- -------------------------
1110
-
1111
- !Hidden Brains
1112
-
1113
- * Project Onboarding
1114
-
1115
- Requirement Analysis, Value-Prepositions, Agreement Exchanges, Project Onboarding
1116
-
1117
- * Project Tracking
1118
-
1119
- Roadmap, Team Allocation, Work Distribution, Regular Team Stand-up meetings
1120
-
1121
- * Collab & Communicate
1122
-
1123
- Regular stand-up meetings with clients, Client Feedback, Amendments, Meet deadlines
1124
-
1125
- * Monitoring & Support
1126
-
1127
- Real-time monitoring & documenting team progress to ensure better project management
1128
-
1129
- * Invoicing
1130
-
1131
- Keeping track of services availed for the project to raise the invoice as agreed
1132
-
1133
-
1134
- Why Work With PragetX?
1135
- ----------------------
1136
-
1137
- !Learning & Development1
1138
- Services
1139
-
1140
- !Mindful Personal Guidance1
1141
- Protection
1142
-
1143
- !Constructive Feedback1
1144
- Management
1145
-
1146
- !Inclusive & Open-Culture
1147
- Team
1148
-
1149
- !Innovation & Quality First
1150
- Communication
1151
-
1152
- !Proactive Implementation
1153
- Engagements
1154
-
1155
- !Best & Global Opportunities
1156
- Progress Reports
1157
-
1158
- !Work with Latest Technology
1159
- Transparency
1160
-
1161
- !Evolving Culture
1162
- Reliability
1163
-
1164
- !Learning & Development2
1165
- Ownership
1166
-
1167
- !Mindful Personal Guidance2
1168
- Support
1169
-
1170
- !Constructive Feedback2
1171
- and Maintenance
1172
-
1173
-
1174
-
1175
-
1176
-
1177
- PragetX Referral Program
1178
- ========================
1179
-
1180
- ##### Be Loyal, Earn Royalties
1181
-
1182
- Refer our IT services to your network and a group of people needing our IT expertise to scale up their business IT strengths and get exciting referring rewards and a chance to win PragetX loyalty programs and earn royalties as a part of services or discounts.
1183
-
1184
- What Is A Client Referral Program?
1185
- ----------------------------------
1186
-
1187
- A client/customer referral program is a kind of sales and marketing tactic known as word-of-mouth marketing done by company employees, loyal customers, business partners, etc., to spread awareness about our firm and business to your network as a part of our entity member. PragetX client referral program not only benefits the company but also the clients and referrals in terms of discounts on our IT services, cash prizes, winning exciting referral vouchers, and many benefits.
1188
-
1189
- ##### Perks of Referrals
1190
-
1191
- * 1st Referral Success - 5% Commission Straight from the project value
1192
- * 5th Referral Success - 8% Commission Straight from the project value and get 60 days of free dedicated IT maintenance and support services.
1193
- * 10th Referral Success - Earn PragetX Loyalty - 15% Project Partnership and much more.
1194
-
1195
- !Custom Software Development
1196
-
1197
- Referral Reward Avail Terms & Conditions
1198
- ----------------------------------------
1199
-
1200
- * Provide correct and accurate information to avail the referral program rewards.
1201
- * Once the client referral form is filled and received, wait for 12 hours to get your referral ID, which must be shared with the client to confirm and avail the referral rewards.
1202
- * The referral ID is only valid for one referral, and for another referral, another referral ID must be requested to the PragetX Sales team by mailing at hello@pragetx.com
1203
- .
1204
- * The referral ID is valid for a particular referral period only, and must be utilized within the proposed time to become a potential candidate for the referral reward program.
1205
- * The referral program will remain null and void if the client referral and services asked by him doesn’t meet our service portfolio criteria.
1206
- * The referral reward cannot be clubbed with another offer raised by the company.
1207
- * Your personal and financial data are kept safe and confidential by PragetX and will not be used or accessed without your consent.
1208
-
1209
- A Good Client Referral To PragetX
1210
- ---------------------------------
1211
-
1212
- We provide our IT services to all sorts of industries, including IT sectors, manufacturing, supply chain, hospitality, banking and finance, hospitals, real estate, media & entertainment, telecommunications, etc., and all sizes of companies, such as startups, mid-sized, and large enterprises. So, all global industries and sized businesses can be our good client referrals in need for dedicated IT services.
1213
-
1214
- Our Best IT Services For Referrals
1215
- ----------------------------------
1216
-
1217
- ##### We would be happy to get referrals for all the IT services we provide from our portfolio; however, here are the selected services, we’d like to target more.
1218
-
1219
- !Hidden Brains
1220
-
1221
- * Software Development
1222
-
1223
- Custom enterprise software development, Web 3.0, Maintenance & Support
1224
-
1225
- * Web App Development
1226
-
1227
- Frond-end, Back-end, e-commerce, PWA, Maintenance & Support, Consultation
1228
-
1229
- * Mobile App Development
1230
-
1231
- Native, Hybrid, IoT/Embedded, QA & Testing, API Integration, Consultation
1232
-
1233
- * UI/UX Designing
1234
-
1235
- Consultation, Web & Mobile App UI/UX, Visual Template, AR, UI/UX Testing
1236
-
1237
- * Staff Augmentation
1238
-
1239
- Hire developers from our pool of resources. Check out our Hire Team section!
1240
-
1241
-
1242
- ### “Let PragetX Technologies LLP be your ideal IT partner delivering cutting-edge IT services at the affordable rates”
1243
-
1244
- Become A Partner !
1245
-
1246
-
1247
-
1248
-
1249
- Explore New Age of IT
1250
- Collaborations!
1251
- =======================================
1252
-
1253
- ##### Offshoring Partner | Outsourcing Partner | Staff Augmentation
1254
-
1255
- Let PragetX Technologies LLP to be your trusted, dedicate, and reliable extended IT team
1256
- practicing Agile methodologies to deliver better, cutting-edge solutions on time.
1257
-
1258
- Consult Today!
1259
-
1260
- Partner With PragetX
1261
- --------------------
1262
-
1263
- In this COVID-19 era, when many new online businesses came to the market and elevated the market competition. So, to ensure the competitive edge and ongoing business, in the IT industry, the new vertical of B2B collaboration came into the limelight for small businesses as an active source of revenue generation.
1264
-
1265
- At PragetX Technologies LLP, we understand that you need a trusted and reliable IT partner, who will always ensure to meet your development standards and help you build cutting-edge software solutions, improve its performance, and maintain its sustainability by all standards at affordable rates. So, partner with the dedicated IT team having a remarkable track record in providing satisfactory results to the clients.
1266
-
1267
- After all, at PragetX client satisfaction is what lies at the center.
1268
-
1269
- !Build Innovative Community
1270
- Community
1271
-
1272
- !Cognitive Collaboration
1273
- Collaboration
1274
-
1275
- !Achieve Business Growth
1276
- Growth
1277
-
1278
- #### "Whether your firm do B2B IT collaboration for hiring dedicated resources, outsourcing your business-critical process, offshoring IT services or maintenance, or interested in collaborated in complete IT business, partnering with PragetX will indeed unlock extraordinary opportunity and create value for your business."
1279
-
1280
- PragetX Trust Factors
1281
- ---------------------
1282
-
1283
- ##### Our IT Solutions Define Flexibility & Reliability In All Working Environments
1284
-
1285
- Pick A Rewarding Partner Program For Your Business
1286
- --------------------------------------------------
1287
-
1288
- !Custom Software Development Company
1289
-
1290
- Outsourcing Partner
1291
- -------------------
1292
-
1293
- No matter which industry your business is from, in today’s intense market competition, you also need a trusted IT services partner to help you out with your business-critical IT solution maintenance and support. Outsource your IT needs to PragetX with confidence at the best negotiable budget.
1294
-
1295
- * Expert IT consultation
1296
- * High-quality services
1297
- * Impressive Return On Investment (ROI)
1298
- * Get cost-effective IT services bundle
1299
- * Focus more on core business competencies
1300
-
1301
- Offshoring Partner
1302
- ------------------
1303
-
1304
- Looking for the highly reliable Offshore IT services provider partner in India? Share your business IT offshoring requirements with PragetX and get the best deal under your budget with utmost reliability.
1305
-
1306
- * Offshore IT services on fixed-price or hourly business engagement models
1307
- * Let IT experts work as your extended IT team
1308
- * Top-notch IT services experience
1309
- * Get the best IT consultation from the industry experts
1310
- * Get cost-effective IT solutions and services
1311
- * Improve your business focus cohesively
1312
-
1313
- !Custom Software Development Company
1314
-
1315
- !Custom Software Development Company
1316
-
1317
- Business Development Partner
1318
- ----------------------------
1319
-
1320
- Are you a company, consultancy, or individual agent, hiring companies to work on your client projects? Leverage PragetX to be your dedicated IT services and solutions provider to work on your third-party projects at reasonable prices.
1321
-
1322
- * Enroll on referring and earn programs
1323
- * Become our loyal business partner and earn royalties
1324
- * Earn massive profits
1325
-
1326
- Affiliate Partner
1327
- -----------------
1328
-
1329
- Become our sales and marketing partner and refer our services to your network and after the completion of their onboarding and first payment, earn a certain amount of referral bonus/rewards in terms of cash, service benefits, or vouchers.
1330
-
1331
- * Enroll on refer and earn programs
1332
- * Become our loyal business partner and earn royalties
1333
- * Earn massive profits
1334
-
1335
- !Custom Software Development Company
1336
-
1337
- !Custom Software Development Company
1338
-
1339
- Staff Augmentation Partner
1340
- --------------------------
1341
-
1342
- Getting many projects but not having enough IT resources to align on such projects or need dedicated IT resources to deliver your project under a close and strict deadline? Hire the best and most experienced team of developers, software engineers, QA testing engineers, and branding & marketing managers from PragetX under a feasible budget.
1343
-
1344
- * Get your flexible and extended IT strength
1345
- * Choose your dedicated IT talent from a pool of resources
1346
- * Improve your operation efficiency
1347
- * Assign IT tasks and projects with confidence
1348
- * Cut costs without compromising on quality
1349
- * Achieve cost-effectiveness and time-effectiveness
1350
- * Ensure competitive edge of your business
1351
-
1352
-
1353
-
1354
- PragetX Internship & Training Program
1355
- =====================================
1356
-
1357
- ##### Today’s Student is Tomorrow’s Potential Leader
1358
-
1359
- Embrace yourself to work in the leading-edge technological world with an evolving firm that has the potential to kick-start your career as an IT professional.
1360
-
1361
- Apply Now !
1362
-
1363
-
1364
- Internship & Training Experience at PragetX
1365
- -------------------------------------------
1366
-
1367
- Jump-start your career as a developer, marketer, and designer with the PragetX Internship program with the training opportunity to get trained with an experienced IT team. A well-researched, well-planned, and free-of-cost IT training program for just-graduated students who have the enthusiasm to take a productive approach and kick-start their IT industry journey with hands-on experience in working on clients’ projects.
1368
-
1369
- As a PragetX intern, you’ll not only gain experience in working on live clients’ projects but also develop skills to deal with business challenges, brainstorm and figure out new approaches to development, and most importantly, establish better communication & collaboration with the team members.
1370
-
1371
- Thrive in the IT industry with PragetX as you lead the way while bringing out the best of you with necessary skill development for the industry.
1372
-
1373
- #### Who You Are?
1374
-
1375
- You must be a student currently pursuing your college education in IT, Computer Science, or relevant streams. You’re a college graduate with a relevant degree and skills to work in the IT sector. Likewise, you’re looking for a head start on your career as a web or mobile app developer. Then the PragetX internship program is solely made for you to experience the real industry workload with free IT certification courses. Explore today!
1376
-
1377
- #### What You Will Do At PragetX?
1378
-
1379
- The internship and training program at PragetX is carefully designed by considering industry requirements. This program ensures that you’ll get trained with experts, work side-by-side with the developer’s team, learn IT communication & collaboration tactics to retain clients, problem-solving mindset, and much more. Give your eagerness a chance and enroll in the PragetX internship and training program today!
1380
-
1381
- !Custom Software Development Company
1382
-
1383
- Intern Eligibility Criteria
1384
- ---------------------------
1385
-
1386
- * Education qualification: BE/ME (IT, CE, or CS), BSc./MSc. (Computer), or relative IT degree
1387
- 1. A university student (about to graduate)
1388
- 2. A university graduate
1389
- * Worked on personal or college IT projects.
1390
- * Basic knowledge of tools & technologies that you’ll be dealing with throughout your career as a developer.
1391
- * Professional communication and collaboration skills to discuss projects or give suggestions to team members.
1392
- * Adaptive to learning new things and exploring new opportunities (Proactive Research & Development Skills)
1393
- * Having a problem-solving mindset
1394
-
1395
- Why Should IT Students Choose PragetX As Your Internship?
1396
- ---------------------------------------------------------
1397
-
1398
- ##### At PragetX, we stand by our mantra “You Grow, We Grow“. Here employees are considered an important
1399
- family member and each action aim to improve their knowledge. Work with us and gather
1400
- the life-changing knowledge you need to thrive in this industry.
1401
-
1402
- !5 Working Days a Week
1403
-
1404
- !Flexible Work
1405
-
1406
- !Experienced Team
1407
-
1408
- !Diversify Culture
1409
-
1410
- !Embracing Change
1411
-
1412
- !Referral Programs
1413
-
1414
- !Valid Paid Leaves
1415
-
1416
- !Work as a Team
1417
-
1418
- !Value Suggestions
1419
-
1420
- !Skill Matters Most
1421
-
1422
- !Build Future Career
1423
-
1424
- !Goodies and Gifts
1425
-
1426
- Hiring Process at PragetX
1427
- -------------------------
1428
-
1429
- !Application Screening
1430
-
1431
- ##### Application Screening
1432
-
1433
- Submit your interview application online with your resume or email it to mailto:hello@pragetx.com
1434
- .
1435
-
1436
- !HR Interview Round
1437
-
1438
- ##### HR Interview Round
1439
-
1440
- Once we get your resume, HR will screen your CV and call you for a basic introduction interview. .
1441
-
1442
- !Personal Interview
1443
-
1444
- ##### Personal Interview
1445
-
1446
- Once you clear your HR round, the PI round will be arranged with the technical person for further interview. .
1447
-
1448
- !Experiential Assessment
1449
-
1450
- ##### Experiential Assessment
1451
-
1452
- If the technical interviewer agree with your PI, he will share a small technical assignment with you with deadline. .
1453
-
1454
- !Negotiation
1455
-
1456
- ##### Negotiation
1457
-
1458
- Once you deliver the assessment and meet the company criteria, the salary negotiation round will come. .
1459
-
1460
- !Offer
1461
-
1462
- ##### Offer
1463
-
1464
- After the salary agreement of both parties, the offer letter will be shared with you with the joining date. .
1465
-
1466
- Testimonials of Interns
1467
- -----------------------
1468
-
1469
- !Parth Patel - ReactJS Developer
1470
-
1471
- #### Parth Patel - ReactJS Developer
1472
-
1473
- ###### **A Great Place to Work for Freshers**
1474
-
1475
- Staff is Friendly, Flexible Timings, 5 days working. Deadlines are very strict so need to buck up, which is also good to improve our working speed.
1476
-
1477
- !Pramod Pipaliya - Data Scientist
1478
-
1479
- #### Pramod Pipaliya - Data Scientist
1480
-
1481
- ###### **Excellent Work Place**
1482
-
1483
- Nice place to Work. All Members are friendly and co-ordinate with each other for 5 day's working, Supportive, Friendly, Career growth, so no downside for my review.
1484
-
1485
- !Sagar Patel - NodeJS Developer
1486
-
1487
- #### Sagar Patel - NodeJS Developer
1488
-
1489
- ###### **Proud of PragetX and Team**
1490
-
1491
- Good job with good work, so I have no problem....in company.....working with team with enjoyment.
1492
-
1493
- !Rugved Patel - ReactJS Developer
1494
-
1495
- #### Rugved Patel - ReactJS Developer
1496
-
1497
- ###### **Family environment, great place to work**
1498
-
1499
- No Unfair Company Policies, On-Time Salary, Family Environment, you will get overtime if you have to work on weekends, Paid Leave, and flexible timing. Startup companies need fast learners.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pragetx_scraper/pragetx_scraper/__init__.py ADDED
File without changes
pragetx_scraper/pragetx_scraper/items.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Define here the models for your scraped items
2
+ #
3
+ # See documentation in:
4
+ # https://docs.scrapy.org/en/latest/topics/items.html
5
+
6
+ import scrapy
7
+
8
+
9
+ class PragetxScraperItem(scrapy.Item):
10
+ # define the fields for your item here like:
11
+ # name = scrapy.Field()
12
+ pass
pragetx_scraper/pragetx_scraper/middlewares.py ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Define here the models for your spider middleware
2
+ #
3
+ # See documentation in:
4
+ # https://docs.scrapy.org/en/latest/topics/spider-middleware.html
5
+
6
+ from scrapy import signals
7
+
8
+ # useful for handling different item types with a single interface
9
+ from itemadapter import is_item, ItemAdapter
10
+
11
+
12
+ class PragetxScraperSpiderMiddleware:
13
+ # Not all methods need to be defined. If a method is not defined,
14
+ # scrapy acts as if the spider middleware does not modify the
15
+ # passed objects.
16
+
17
+ @classmethod
18
+ def from_crawler(cls, crawler):
19
+ # This method is used by Scrapy to create your spiders.
20
+ s = cls()
21
+ crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
22
+ return s
23
+
24
+ def process_spider_input(self, response, spider):
25
+ # Called for each response that goes through the spider
26
+ # middleware and into the spider.
27
+
28
+ # Should return None or raise an exception.
29
+ return None
30
+
31
+ def process_spider_output(self, response, result, spider):
32
+ # Called with the results returned from the Spider, after
33
+ # it has processed the response.
34
+
35
+ # Must return an iterable of Request, or item objects.
36
+ for i in result:
37
+ yield i
38
+
39
+ def process_spider_exception(self, response, exception, spider):
40
+ # Called when a spider or process_spider_input() method
41
+ # (from other spider middleware) raises an exception.
42
+
43
+ # Should return either None or an iterable of Request or item objects.
44
+ pass
45
+
46
+ def process_start_requests(self, start_requests, spider):
47
+ # Called with the start requests of the spider, and works
48
+ # similarly to the process_spider_output() method, except
49
+ # that it doesn’t have a response associated.
50
+
51
+ # Must return only requests (not items).
52
+ for r in start_requests:
53
+ yield r
54
+
55
+ def spider_opened(self, spider):
56
+ spider.logger.info("Spider opened: %s" % spider.name)
57
+
58
+
59
+ class PragetxScraperDownloaderMiddleware:
60
+ # Not all methods need to be defined. If a method is not defined,
61
+ # scrapy acts as if the downloader middleware does not modify the
62
+ # passed objects.
63
+
64
+ @classmethod
65
+ def from_crawler(cls, crawler):
66
+ # This method is used by Scrapy to create your spiders.
67
+ s = cls()
68
+ crawler.signals.connect(s.spider_opened, signal=signals.spider_opened)
69
+ return s
70
+
71
+ def process_request(self, request, spider):
72
+ # Called for each request that goes through the downloader
73
+ # middleware.
74
+
75
+ # Must either:
76
+ # - return None: continue processing this request
77
+ # - or return a Response object
78
+ # - or return a Request object
79
+ # - or raise IgnoreRequest: process_exception() methods of
80
+ # installed downloader middleware will be called
81
+ return None
82
+
83
+ def process_response(self, request, response, spider):
84
+ # Called with the response returned from the downloader.
85
+
86
+ # Must either;
87
+ # - return a Response object
88
+ # - return a Request object
89
+ # - or raise IgnoreRequest
90
+ return response
91
+
92
+ def process_exception(self, request, exception, spider):
93
+ # Called when a download handler or a process_request()
94
+ # (from other downloader middleware) raises an exception.
95
+
96
+ # Must either:
97
+ # - return None: continue processing this exception
98
+ # - return a Response object: stops process_exception() chain
99
+ # - return a Request object: stops process_exception() chain
100
+ pass
101
+
102
+ def spider_opened(self, spider):
103
+ spider.logger.info("Spider opened: %s" % spider.name)
pragetx_scraper/pragetx_scraper/pipelines.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Define your item pipelines here
2
+ #
3
+ # Don't forget to add your pipeline to the ITEM_PIPELINES setting
4
+ # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
5
+
6
+
7
+ # useful for handling different item types with a single interface
8
+ from itemadapter import ItemAdapter
9
+
10
+
11
+ class PragetxScraperPipeline:
12
+ def process_item(self, item, spider):
13
+ return item
pragetx_scraper/pragetx_scraper/settings.py ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Scrapy settings for pragetx_scraper project
2
+ #
3
+ # For simplicity, this file contains only settings considered important or
4
+ # commonly used. You can find more settings consulting the documentation:
5
+ #
6
+ # https://docs.scrapy.org/en/latest/topics/settings.html
7
+ # https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
8
+ # https://docs.scrapy.org/en/latest/topics/spider-middleware.html
9
+
10
+ BOT_NAME = "pragetx_scraper"
11
+
12
+ SPIDER_MODULES = ["pragetx_scraper.spiders"]
13
+ NEWSPIDER_MODULE = "pragetx_scraper.spiders"
14
+
15
+
16
+ # Crawl responsibly by identifying yourself (and your website) on the user-agent
17
+ #USER_AGENT = "pragetx_scraper (+http://www.yourdomain.com)"
18
+
19
+ # Obey robots.txt rules
20
+ ROBOTSTXT_OBEY = False
21
+
22
+ # Configure maximum concurrent requests performed by Scrapy (default: 16)
23
+ #CONCURRENT_REQUESTS = 32
24
+
25
+ # Configure a delay for requests for the same website (default: 0)
26
+ # See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
27
+ # See also autothrottle settings and docs
28
+ #DOWNLOAD_DELAY = 3
29
+ # The download delay setting will honor only one of:
30
+ #CONCURRENT_REQUESTS_PER_DOMAIN = 16
31
+ #CONCURRENT_REQUESTS_PER_IP = 16
32
+
33
+ # Disable cookies (enabled by default)
34
+ #COOKIES_ENABLED = False
35
+
36
+ # Disable Telnet Console (enabled by default)
37
+ #TELNETCONSOLE_ENABLED = False
38
+
39
+ # Override the default request headers:
40
+ #DEFAULT_REQUEST_HEADERS = {
41
+ # "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
42
+ # "Accept-Language": "en",
43
+ #}
44
+
45
+ # Enable or disable spider middlewares
46
+ # See https://docs.scrapy.org/en/latest/topics/spider-middleware.html
47
+ #SPIDER_MIDDLEWARES = {
48
+ # "pragetx_scraper.middlewares.PragetxScraperSpiderMiddleware": 543,
49
+ #}
50
+
51
+ # Enable or disable downloader middlewares
52
+ # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
53
+ #DOWNLOADER_MIDDLEWARES = {
54
+ # "pragetx_scraper.middlewares.PragetxScraperDownloaderMiddleware": 543,
55
+ #}
56
+
57
+ # Enable or disable extensions
58
+ # See https://docs.scrapy.org/en/latest/topics/extensions.html
59
+ #EXTENSIONS = {
60
+ # "scrapy.extensions.telnet.TelnetConsole": None,
61
+ #}
62
+
63
+ # Configure item pipelines
64
+ # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
65
+ #ITEM_PIPELINES = {
66
+ # "pragetx_scraper.pipelines.PragetxScraperPipeline": 300,
67
+ #}
68
+
69
+ # Enable and configure the AutoThrottle extension (disabled by default)
70
+ # See https://docs.scrapy.org/en/latest/topics/autothrottle.html
71
+ #AUTOTHROTTLE_ENABLED = True
72
+ # The initial download delay
73
+ #AUTOTHROTTLE_START_DELAY = 5
74
+ # The maximum download delay to be set in case of high latencies
75
+ #AUTOTHROTTLE_MAX_DELAY = 60
76
+ # The average number of requests Scrapy should be sending in parallel to
77
+ # each remote server
78
+ #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
79
+ # Enable showing throttling stats for every response received:
80
+ #AUTOTHROTTLE_DEBUG = False
81
+
82
+ # Enable and configure HTTP caching (disabled by default)
83
+ # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
84
+ #HTTPCACHE_ENABLED = True
85
+ #HTTPCACHE_EXPIRATION_SECS = 0
86
+ #HTTPCACHE_DIR = "httpcache"
87
+ #HTTPCACHE_IGNORE_HTTP_CODES = []
88
+ #HTTPCACHE_STORAGE = "scrapy.extensions.httpcache.FilesystemCacheStorage"
89
+
90
+ # Set settings whose default value is deprecated to a future-proof value
91
+ REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7"
92
+ FEED_EXPORT_ENCODING = "utf-8"
93
+
94
+ DOWNLOAD_HANDLERS = {
95
+ "http": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",
96
+ "https": "scrapy_playwright.handler.ScrapyPlaywrightDownloadHandler",
97
+ }
98
+
99
+ TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
100
+
101
+ # from shutil import which
102
+
103
+ # SELENIUM_DRIVER_NAME = 'chrome'
104
+ # SELENIUM_DRIVER_EXECUTABLE_PATH = None
105
+ # SELENIUM_DRIVER_ARGUMENTS=['--headless']
106
+
107
+ # DOWNLOADER_MIDDLEWARES = {
108
+ # 'scrapy_selenium.SeleniumMiddleware': 800
109
+ # }
110
+
111
+ # SPLASH_URL = 'http://192.168.29.74:8050'
112
+
113
+ # DOWNLOADER_MIDDLEWARES = {
114
+ # 'scrapyjs.SplashMiddleware': 725,
115
+ # }
116
+
117
+ # DUPEFILTER_CLASS = 'scrapyjs.SplashAwareDupeFilter'
pragetx_scraper/pragetx_scraper/spiders/__init__.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # This package will contain the spiders of your Scrapy project
2
+ #
3
+ # Please refer to the documentation for information on how to create and manage
4
+ # your spiders.
pragetx_scraper/pragetx_scraper/spiders/pages.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import scrapy
2
+ import os
3
+ from markdownify import MarkdownConverter
4
+
5
+ class ImageBlockConverter(MarkdownConverter):
6
+ """
7
+ Create a custom MarkdownConverter that adds two newlines after an image
8
+ """
9
+ def convert_img(self, el, text, convert_as_inline):
10
+ # print("el", el)
11
+ # print("text", text)
12
+ # print("conve", convert_as_inline)
13
+ alt_text = el.get('alt')
14
+ # print("alt text:", alt_text)
15
+ return f"IMAGE: {alt_text}\n"
16
+
17
+ # Create shorthand method for conversion
18
+ def md(html, **options):
19
+ return ImageBlockConverter(**options).convert(html)
20
+
21
+ class PagesSpider(scrapy.Spider):
22
+ name = "pages"
23
+ allowed_domains = ["pragetx.com"]
24
+ start_urls = ["https://pragetx.com"]
25
+
26
+ def start_requests(self):
27
+ url = "https://pragetx.com"
28
+ print("Starting request")
29
+ print("URL", url)
30
+ yield scrapy.Request(url, meta={'playwright': True})
31
+
32
+ def parse(self, response):
33
+ if not os.path.exists("data"):
34
+ os.makedirs("data")
35
+ with open(f"data/{response.url.strip('/').split('//')[-1].replace('/', '.')}.md", "w") as f:
36
+ file_content = f"""# {response.url}\n\n"""
37
+ file_content += md(response.text)
38
+ f.write(file_content)
39
+ yield {
40
+ "url": response.url,
41
+ "title": response.css("title::text").get(),
42
+ "body": md(response.text),
43
+ }
44
+ for link in response.css("a::attr(href)").getall():
45
+ try:
46
+ yield response.follow(response.urljoin(link), callback=self.parse)
47
+ except:
48
+ pass
49
+
pragetx_scraper/scrapy.cfg ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Automatically created by: scrapy startproject
2
+ #
3
+ # For more information about the [deploy] section see:
4
+ # https://scrapyd.readthedocs.io/en/latest/deploy.html
5
+
6
+ [settings]
7
+ default = pragetx_scraper.settings
8
+
9
+ [deploy]
10
+ #url = http://localhost:6800/
11
+ project = pragetx_scraper
requirements.txt CHANGED
@@ -6,19 +6,26 @@ annotated-types==0.7.0
6
  anyio==4.4.0
7
  asgiref==3.8.1
8
  attrs==23.2.0
 
9
  backoff==2.2.1
10
  bcrypt==4.1.3
 
11
  build==1.2.1
12
  cachetools==5.3.3
13
  certifi==2024.2.2
 
14
  charset-normalizer==3.3.2
15
  chroma-hnswlib==0.7.3
16
  chromadb==0.5.0
17
  click==8.1.7
18
  coloredlogs==15.0.1
 
19
  contourpy==1.2.1
 
 
20
  cycler==0.12.1
21
  dataclasses-json==0.6.6
 
22
  Deprecated==1.2.14
23
  dnspython==2.6.1
24
  email_validator==2.1.1
@@ -27,7 +34,7 @@ fastapi-cli==0.0.4
27
  ffmpy==0.3.2
28
  filelock==3.14.0
29
  flatbuffers==24.3.25
30
- fonttools==4.52.1
31
  frozenlist==1.4.1
32
  fsspec==2024.5.0
33
  google-auth==2.29.0
@@ -43,10 +50,16 @@ httpx==0.27.0
43
  hugchat==0.4.6
44
  huggingface-hub==0.23.2
45
  humanfriendly==10.0
 
46
  idna==3.7
47
  importlib-metadata==7.0.0
48
  importlib_resources==6.4.0
 
 
 
49
  Jinja2==3.1.4
 
 
50
  jsonpatch==1.33
51
  jsonpointer==2.4
52
  jsonschema==4.22.0
@@ -59,7 +72,9 @@ langchain-community==0.2.1
59
  langchain-core==0.2.1
60
  langchain-text-splitters==0.2.0
61
  langsmith==0.1.63
 
62
  markdown-it-py==3.0.0
 
63
  MarkupSafe==2.1.5
64
  marshmallow==3.21.2
65
  matplotlib==3.9.0
@@ -69,7 +84,20 @@ monotonic==1.6
69
  mpmath==1.3.0
70
  multidict==6.0.5
71
  mypy-extensions==1.0.0
 
72
  numpy==1.26.4
 
 
 
 
 
 
 
 
 
 
 
 
73
  oauthlib==3.2.2
74
  onnxruntime==1.18.0
75
  opentelemetry-api==1.24.0
@@ -86,15 +114,22 @@ orjson==3.10.3
86
  overrides==7.7.0
87
  packaging==23.2
88
  pandas==2.2.2
 
89
  pillow==10.3.0
 
90
  posthog==3.5.0
 
91
  protobuf==4.25.3
92
  pyasn1==0.6.0
93
  pyasn1_modules==0.4.0
 
94
  pydantic==2.7.1
95
  pydantic_core==2.18.2
 
96
  pydub==0.25.1
 
97
  Pygments==2.18.0
 
98
  pyparsing==3.1.2
99
  PyPika==0.48.9
100
  pyproject_hooks==1.1.0
@@ -103,37 +138,56 @@ python-dotenv==1.0.1
103
  python-multipart==0.0.9
104
  pytz==2024.1
105
  PyYAML==6.0.1
 
106
  referencing==0.35.1
 
107
  requests==2.32.2
 
108
  requests-oauthlib==2.0.0
109
  requests-toolbelt==1.0.0
110
  rich==13.7.1
111
  rpds-py==0.18.1
112
  rsa==4.9
113
  ruff==0.4.5
 
 
 
 
 
114
  semantic-version==2.10.0
 
 
115
  shellingham==1.5.4
116
  six==1.16.0
117
  sniffio==1.3.1
 
118
  SQLAlchemy==2.0.30
119
  starlette==0.37.2
120
  sympy==1.12
121
  tenacity==8.3.0
 
 
122
  tokenizers==0.19.1
123
  tomlkit==0.12.0
124
  toolz==0.12.1
 
125
  tqdm==4.66.4
 
 
 
126
  typer==0.12.3
127
  typing-inspect==0.9.0
128
  typing_extensions==4.12.0
129
  tzdata==2024.1
130
  ujson==5.10.0
131
  urllib3==2.2.1
132
- uvicorn==0.29.0
133
  uvloop==0.19.0
134
- watchfiles==0.21.0
 
135
  websocket-client==1.8.0
136
  websockets==11.0.3
137
  wrapt==1.16.0
138
  yarl==1.9.4
139
  zipp==3.19.0
 
 
6
  anyio==4.4.0
7
  asgiref==3.8.1
8
  attrs==23.2.0
9
+ Automat==22.10.0
10
  backoff==2.2.1
11
  bcrypt==4.1.3
12
+ beautifulsoup4==4.12.3
13
  build==1.2.1
14
  cachetools==5.3.3
15
  certifi==2024.2.2
16
+ cffi==1.16.0
17
  charset-normalizer==3.3.2
18
  chroma-hnswlib==0.7.3
19
  chromadb==0.5.0
20
  click==8.1.7
21
  coloredlogs==15.0.1
22
+ constantly==23.10.4
23
  contourpy==1.2.1
24
+ cryptography==42.0.7
25
+ cssselect==1.2.0
26
  cycler==0.12.1
27
  dataclasses-json==0.6.6
28
+ defusedxml==0.7.1
29
  Deprecated==1.2.14
30
  dnspython==2.6.1
31
  email_validator==2.1.1
 
34
  ffmpy==0.3.2
35
  filelock==3.14.0
36
  flatbuffers==24.3.25
37
+ fonttools==4.52.4
38
  frozenlist==1.4.1
39
  fsspec==2024.5.0
40
  google-auth==2.29.0
 
50
  hugchat==0.4.6
51
  huggingface-hub==0.23.2
52
  humanfriendly==10.0
53
+ hyperlink==21.0.0
54
  idna==3.7
55
  importlib-metadata==7.0.0
56
  importlib_resources==6.4.0
57
+ incremental==22.10.0
58
+ itemadapter==0.9.0
59
+ itemloaders==1.2.0
60
  Jinja2==3.1.4
61
+ jmespath==1.0.1
62
+ joblib==1.4.2
63
  jsonpatch==1.33
64
  jsonpointer==2.4
65
  jsonschema==4.22.0
 
72
  langchain-core==0.2.1
73
  langchain-text-splitters==0.2.0
74
  langsmith==0.1.63
75
+ lxml==5.2.2
76
  markdown-it-py==3.0.0
77
+ markdownify==0.12.1
78
  MarkupSafe==2.1.5
79
  marshmallow==3.21.2
80
  matplotlib==3.9.0
 
84
  mpmath==1.3.0
85
  multidict==6.0.5
86
  mypy-extensions==1.0.0
87
+ networkx==3.3
88
  numpy==1.26.4
89
+ nvidia-cublas-cu12==12.1.3.1
90
+ nvidia-cuda-cupti-cu12==12.1.105
91
+ nvidia-cuda-nvrtc-cu12==12.1.105
92
+ nvidia-cuda-runtime-cu12==12.1.105
93
+ nvidia-cudnn-cu12==8.9.2.26
94
+ nvidia-cufft-cu12==11.0.2.54
95
+ nvidia-curand-cu12==10.3.2.106
96
+ nvidia-cusolver-cu12==11.4.5.107
97
+ nvidia-cusparse-cu12==12.1.0.106
98
+ nvidia-nccl-cu12==2.20.5
99
+ nvidia-nvjitlink-cu12==12.5.40
100
+ nvidia-nvtx-cu12==12.1.105
101
  oauthlib==3.2.2
102
  onnxruntime==1.18.0
103
  opentelemetry-api==1.24.0
 
114
  overrides==7.7.0
115
  packaging==23.2
116
  pandas==2.2.2
117
+ parsel==1.9.1
118
  pillow==10.3.0
119
+ playwright==1.44.0
120
  posthog==3.5.0
121
+ Protego==0.3.1
122
  protobuf==4.25.3
123
  pyasn1==0.6.0
124
  pyasn1_modules==0.4.0
125
+ pycparser==2.22
126
  pydantic==2.7.1
127
  pydantic_core==2.18.2
128
+ PyDispatcher==2.0.7
129
  pydub==0.25.1
130
+ pyee==11.1.0
131
  Pygments==2.18.0
132
+ pyOpenSSL==24.1.0
133
  pyparsing==3.1.2
134
  PyPika==0.48.9
135
  pyproject_hooks==1.1.0
 
138
  python-multipart==0.0.9
139
  pytz==2024.1
140
  PyYAML==6.0.1
141
+ queuelib==1.7.0
142
  referencing==0.35.1
143
+ regex==2024.5.15
144
  requests==2.32.2
145
+ requests-file==2.1.0
146
  requests-oauthlib==2.0.0
147
  requests-toolbelt==1.0.0
148
  rich==13.7.1
149
  rpds-py==0.18.1
150
  rsa==4.9
151
  ruff==0.4.5
152
+ safetensors==0.4.3
153
+ scikit-learn==1.5.0
154
+ scipy==1.13.1
155
+ Scrapy==2.11.2
156
+ scrapy-playwright==0.0.34
157
  semantic-version==2.10.0
158
+ sentence-transformers==2.7.0
159
+ service-identity==24.1.0
160
  shellingham==1.5.4
161
  six==1.16.0
162
  sniffio==1.3.1
163
+ soupsieve==2.5
164
  SQLAlchemy==2.0.30
165
  starlette==0.37.2
166
  sympy==1.12
167
  tenacity==8.3.0
168
+ threadpoolctl==3.5.0
169
+ tldextract==5.1.2
170
  tokenizers==0.19.1
171
  tomlkit==0.12.0
172
  toolz==0.12.1
173
+ torch==2.3.0
174
  tqdm==4.66.4
175
+ transformers==4.41.1
176
+ triton==2.3.0
177
+ Twisted==24.3.0
178
  typer==0.12.3
179
  typing-inspect==0.9.0
180
  typing_extensions==4.12.0
181
  tzdata==2024.1
182
  ujson==5.10.0
183
  urllib3==2.2.1
184
+ uvicorn==0.30.0
185
  uvloop==0.19.0
186
+ w3lib==2.1.2
187
+ watchfiles==0.22.0
188
  websocket-client==1.8.0
189
  websockets==11.0.3
190
  wrapt==1.16.0
191
  yarl==1.9.4
192
  zipp==3.19.0
193
+ zope.interface==6.4.post2
settings.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ # settings.py
2
+
3
+ SPLASH_URL = 'http://192.168.29.74:8050'
4
+
5
+ DOWNLOADER_MIDDLEWARES = {
6
+ 'scrapyjs.SplashMiddleware': 725,
7
+ }
8
+
9
+ DUPEFILTER_CLASS = 'scrapyjs.SplashAwareDupeFilter'
setup.py CHANGED
@@ -3,12 +3,32 @@ from langchain.text_splitter import CharacterTextSplitter
3
  from langchain.document_loaders import TextLoader
4
  from langchain_community.embeddings import HuggingFaceEmbeddings
5
 
 
 
 
 
 
 
6
 
7
- loader = TextLoader('./pragetx.md')
8
- documents = loader.load()
9
- text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=4)
10
- docs = text_splitter.split_documents(documents)
11
-
12
- embeddings = HuggingFaceEmbeddings()
13
-
14
- chroma = Chroma.from_documents(docs, embeddings, persist_directory='./pragetx_chroma')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  from langchain.document_loaders import TextLoader
4
  from langchain_community.embeddings import HuggingFaceEmbeddings
5
 
6
+ # get all files in pragetx_scraper/data
7
+ import os
8
+ import glob
9
+ import shutil
10
+ # get all files in pragetx_scraper/data
11
+ files = glob.glob('pragetx_scraper/data/*.md')
12
 
13
+ # check if folder named pragetx_chroma exists
14
+ if os.path.exists('pragetx_chroma'):
15
+ shutil.rmtree('pragetx_chroma')
16
+ chroma = Chroma(persist_directory='./pragetx_chroma', embedding_function=HuggingFaceEmbeddings(), collection_name='pragetx')
17
+ for file in files:
18
+ print(f'Processing {file}')
19
+ loader = TextLoader(file)
20
+ documents = loader.load()
21
+ text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=4)
22
+ docs = text_splitter.split_documents(documents)
23
+ url = None
24
+ with open(file, 'r') as f:
25
+ text = f.read()
26
+ # url is in first line of the file in # <url> format
27
+ url = text.split('\n')[0].replace('# ', '')
28
+ for idx, text in enumerate(docs):
29
+ # print(f'Processing document {idx}')
30
+ # print(text.page_content)
31
+ # print(docs[idx].metadata)
32
+ docs[idx].metadata['url'] = url
33
+ print(docs[idx].metadata)
34
+ chroma.add_documents(docs)