Raheel Abdul Rehman commited on
Commit
b13d185
·
1 Parent(s): 435ca27

Prod Push

Browse files
data/vectorstores/index.faiss ADDED
Binary file (10.8 kB). View file
 
data/vectorstores/index.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b79c7326d68980b35e2f8291624decd13bf2344e498c7c35d7f66cf2678ea11
3
+ size 5539
logs/app.log ADDED
@@ -0,0 +1,617 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 2025-11-20 23:08:10,622 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
2
+ 2025-11-20 23:08:10,622 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
3
+ 2025-11-20 23:08:17,004 [WARNING] huggingface_hub.file_download - Xet Storage is enabled for this repo, but the 'hf_xet' package is not installed. Falling back to regular HTTP download. For better performance, install the package with: `pip install huggingface_hub[hf_xet]` or `pip install hf_xet`
4
+ 2025-11-20 23:09:49,272 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
5
+ 2025-11-20 23:09:49,272 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
6
+ 2025-11-20 23:28:12,897 [INFO] __main__ - Resume Ingestor Run Complete
7
+ 2025-11-20 23:33:51,442 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
8
+ 2025-11-20 23:33:51,443 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
9
+ 2025-11-20 23:34:20,607 [INFO] __main__ - ===== Processing Resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\data\resume_path\Raheel_Rehman.pdf =====
10
+ 2025-11-20 23:34:20,610 [ERROR] __main__ - PDF extraction failed for c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\data\resume_path\Raheel_Rehman.pdf: no such file: 'c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\data\resume_path\Raheel_Rehman.pdf'
11
+ 2025-11-20 23:34:20,611 [ERROR] __main__ - Resume text empty or unreadable.
12
+ 2025-11-20 23:34:20,611 [INFO] __main__ - Resume Ingestor Run Complete
13
+ 2025-11-20 23:35:01,902 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
14
+ 2025-11-20 23:35:01,902 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
15
+ 2025-11-20 23:35:06,186 [INFO] __main__ - ===== Processing Resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf =====
16
+ 2025-11-20 23:35:06,295 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf
17
+ 2025-11-20 23:35:06,507 [INFO] __main__ - Resume processed: 1 chunks embedded.
18
+ 2025-11-20 23:35:06,532 [INFO] __main__ - Resume Ingestor Run Complete
19
+ 2025-11-20 23:40:43,380 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
20
+ 2025-11-20 23:40:43,381 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
21
+ 2025-11-20 23:40:47,642 [INFO] __main__ - ===== Processing Resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf =====
22
+ 2025-11-20 23:40:47,657 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf
23
+ 2025-11-20 23:40:47,739 [INFO] __main__ - Resume processed: 1 chunks embedded.
24
+ 2025-11-20 23:40:47,755 [INFO] __main__ - Resume Ingestor Run Complete
25
+ 2025-11-20 23:46:55,033 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
26
+ 2025-11-20 23:46:55,033 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
27
+ 2025-11-20 23:48:39,196 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
28
+ 2025-11-20 23:48:39,197 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
29
+ 2025-11-20 23:52:00,466 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
30
+ 2025-11-20 23:52:00,466 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
31
+ 2025-11-20 23:52:04,710 [INFO] __main__ - ===== Processing LinkedIn Profile: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\linkedin_path\Profile.pdf =====
32
+ 2025-11-20 23:52:04,740 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\linkedin_path\Profile.pdf
33
+ 2025-11-20 23:52:04,822 [INFO] __main__ - LinkedIn processed: 1 chunks embedded.
34
+ 2025-11-20 23:52:04,824 [INFO] __main__ - Saved LinkedIn FAISS index : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\linkedin.index
35
+ 2025-11-20 23:52:04,825 [INFO] __main__ - Saved LinkedIn metadata : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\linkedin_metadata.json
36
+ 2025-11-20 23:52:04,826 [INFO] __main__ - LinkedIn Ingestor Run Complete
37
+ 2025-11-21 00:38:17,583 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
38
+ 2025-11-21 00:38:17,583 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
39
+ 2025-11-21 00:38:21,446 [INFO] __main__ - Initializing Vector Retriever
40
+ 2025-11-21 00:39:55,949 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
41
+ 2025-11-21 00:39:55,950 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
42
+ 2025-11-21 00:40:00,364 [INFO] __main__ - Initializing Vector Retriever
43
+ 2025-11-21 00:40:00,366 [INFO] __main__ - Loaded Resume vectorstore.
44
+ 2025-11-21 00:40:00,367 [INFO] __main__ - Loaded LinkedIn vectorstore.
45
+ 2025-11-21 15:51:36,580 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
46
+ 2025-11-21 15:51:36,581 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
47
+ 2025-11-21 15:51:37,195 [INFO] __main__ - ===== Processing Resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf =====
48
+ 2025-11-21 15:51:37,267 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf
49
+ 2025-11-21 15:51:37,462 [INFO] __main__ - Resume processed: 3 chunks embedded.
50
+ 2025-11-21 15:51:37,463 [INFO] __main__ - Saved FAISS index : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\resume.index
51
+ 2025-11-21 15:51:37,465 [INFO] __main__ - Saved resume metadata : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\resume_metadata.json
52
+ 2025-11-21 15:51:37,466 [INFO] __main__ - Resume Ingestor Run Complete
53
+ 2025-11-21 15:51:59,571 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
54
+ 2025-11-21 15:51:59,572 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
55
+ 2025-11-21 15:51:59,788 [INFO] __main__ - ===== Processing LinkedIn Profile: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\linkedin_path\Profile.pdf =====
56
+ 2025-11-21 15:51:59,821 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\linkedin_path\Profile.pdf
57
+ 2025-11-21 15:51:59,990 [INFO] __main__ - LinkedIn processed: 3 chunks embedded.
58
+ 2025-11-21 15:51:59,991 [INFO] __main__ - Saved LinkedIn FAISS index : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\linkedin.index
59
+ 2025-11-21 15:51:59,993 [INFO] __main__ - Saved LinkedIn metadata : c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores\linkedin_metadata.json
60
+ 2025-11-21 15:51:59,994 [INFO] __main__ - LinkedIn Ingestor Run Complete
61
+ 2025-11-21 15:52:22,742 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
62
+ 2025-11-21 15:52:22,743 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
63
+ 2025-11-21 15:52:22,935 [INFO] __main__ - Initializing Vector Retriever
64
+ 2025-11-21 15:52:22,956 [INFO] __main__ - Loaded Resume vectorstore.
65
+ 2025-11-21 15:52:22,977 [INFO] __main__ - Loaded LinkedIn vectorstore.
66
+ 2025-11-21 17:04:32,172 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
67
+ 2025-11-21 17:04:32,173 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
68
+ 2025-11-21 17:04:38,161 [INFO] __main__ - Initializing Vector Retriever
69
+ 2025-11-21 17:04:38,191 [INFO] __main__ - Loaded Resume vectorstore.
70
+ 2025-11-21 17:04:38,206 [INFO] __main__ - Loaded LinkedIn vectorstore.
71
+ 2025-11-21 17:10:29,060 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
72
+ 2025-11-21 17:10:29,061 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
73
+ 2025-11-21 17:10:33,478 [INFO] __main__ - Initializing Vector Retriever...
74
+ 2025-11-21 17:10:33,479 [INFO] __main__ - Loaded resume.index
75
+ 2025-11-21 17:10:33,480 [INFO] __main__ - Loaded resume metadata: 3 chunks
76
+ 2025-11-21 17:15:06,951 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
77
+ 2025-11-21 17:15:06,952 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
78
+ 2025-11-21 17:15:13,322 [INFO] __main__ - ===== Processing Resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf =====
79
+ 2025-11-21 17:15:13,404 [INFO] __main__ - Deleted temporary file: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\resume_path\Raheel_Rehman.pdf
80
+ 2025-11-21 17:15:13,755 [INFO] __main__ - Resume vectorstore saved.
81
+ 2025-11-21 17:15:13,756 [INFO] __main__ - Resume Ingestor Run Complete
82
+ 2025-11-21 17:18:08,136 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
83
+ 2025-11-21 17:18:08,136 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
84
+ 2025-11-21 17:18:12,361 [INFO] __main__ - Initializing Vector Retriever...
85
+ 2025-11-21 17:18:12,363 [INFO] __main__ - Loaded resume.index
86
+ 2025-11-21 17:18:12,364 [INFO] __main__ - Loaded resume metadata: 5 chunks
87
+ 2025-11-21 18:03:44,489 [INFO] __main__ - Extracting text
88
+ 2025-11-21 18:03:44,655 [INFO] __main__ - Cleaning personal info
89
+ 2025-11-21 18:03:44,656 [INFO] __main__ - Chunking resume
90
+ 2025-11-21 18:03:44,657 [INFO] __main__ - Total chunks created: 7
91
+ 2025-11-21 18:03:44,661 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
92
+ 2025-11-21 18:03:44,661 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
93
+ 2025-11-21 18:03:49,479 [INFO] __main__ - Embedding chunks
94
+ 2025-11-21 18:03:49,807 [INFO] __main__ - Building FAISS index...
95
+ 2025-11-21 18:03:49,810 [INFO] __main__ -
96
+ Resume index build successful
97
+ 2025-11-21 18:04:57,914 [INFO] __main__ - Extracting text
98
+ 2025-11-21 18:04:58,062 [INFO] __main__ - Cleaning personal info
99
+ 2025-11-21 18:04:58,064 [INFO] __main__ - Chunking resume
100
+ 2025-11-21 18:04:58,064 [INFO] __main__ - Total chunks created: 7
101
+ 2025-11-21 18:04:58,068 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
102
+ 2025-11-21 18:04:58,068 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
103
+ 2025-11-21 18:05:02,097 [INFO] __main__ - Embedding chunks
104
+ 2025-11-21 18:05:02,385 [INFO] __main__ - Building FAISS index...
105
+ 2025-11-21 18:05:02,388 [INFO] __main__ -
106
+ Resume index build successful
107
+ 2025-11-21 18:05:02,388 [INFO] __main__ - Index saved to: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\agents\..\data\vectorstores
108
+ 2025-11-21 18:05:02,389 [INFO] __main__ - Metadata saved to: resume_metadata.json
109
+ 2025-11-21 18:05:02,389 [INFO] __main__ - Resume Ingestor Run Complete
110
+ 2025-11-21 18:05:31,838 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
111
+ 2025-11-21 18:05:31,839 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
112
+ 2025-11-21 18:05:35,867 [INFO] __main__ - Initializing Vector Retriever...
113
+ 2025-11-21 18:05:35,868 [INFO] __main__ - Loaded resume.index
114
+ 2025-11-21 18:05:35,869 [INFO] __main__ - Loaded resume metadata: 7 chunks
115
+ 2025-11-21 18:08:32,851 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
116
+ 2025-11-21 18:08:32,852 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
117
+ 2025-11-21 18:08:37,314 [INFO] __main__ - Initializing Vector Retriever...
118
+ 2025-11-21 18:08:37,316 [INFO] __main__ - Loaded resume.index
119
+ 2025-11-21 18:08:37,317 [INFO] __main__ - Loaded resume metadata: 7 chunks
120
+ 2025-11-21 18:10:13,906 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
121
+ 2025-11-21 18:10:13,907 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
122
+ 2025-11-21 18:10:17,940 [INFO] __main__ - Initializing Vector Retriever...
123
+ 2025-11-21 18:10:17,941 [INFO] __main__ - Loaded resume.index
124
+ 2025-11-21 18:10:17,942 [INFO] __main__ - Loaded resume metadata: 7 chunks
125
+ 2025-11-21 18:22:04,939 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
126
+ 2025-11-21 18:22:04,939 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: all-MiniLM-L6-v2
127
+ 2025-11-21 18:22:09,210 [INFO] __main__ - Resume Ingestor Run Complete
128
+ 2025-11-21 18:23:57,316 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
129
+ 2025-11-21 18:23:57,317 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: all-MiniLM-L6-v2
130
+ 2025-11-21 18:24:01,596 [INFO] __main__ - Resume Ingestor Run Complete
131
+ 2025-11-21 18:24:37,084 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
132
+ 2025-11-21 18:24:37,084 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
133
+ 2025-11-21 18:24:41,245 [INFO] __main__ - Initializing Vector Retriever...
134
+ 2025-11-21 18:24:41,246 [INFO] __main__ - Loaded resume.index
135
+ 2025-11-21 18:24:41,247 [INFO] __main__ - Loaded resume metadata: 8 chunks
136
+ 2025-11-21 18:25:27,769 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
137
+ 2025-11-21 18:25:27,770 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
138
+ 2025-11-21 18:25:31,821 [INFO] __main__ - Initializing Vector Retriever...
139
+ 2025-11-21 18:25:31,822 [INFO] __main__ - Loaded resume.index
140
+ 2025-11-21 18:25:31,823 [INFO] __main__ - Loaded resume metadata: 8 chunks
141
+ 2025-11-21 21:04:35,477 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\..\data\resume_path\Raheel_Rehman.pdf
142
+ 2025-11-21 21:05:20,744 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
143
+ 2025-11-21 21:05:21,506 [INFO] __main__ - Paragraphs extracted: 1
144
+ 2025-11-21 21:05:21,506 [INFO] __main__ - Building FAISS index�
145
+ 2025-11-21 21:23:42,501 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
146
+ 2025-11-21 21:23:42,811 [INFO] __main__ - Paragraphs extracted: 1
147
+ 2025-11-21 21:23:42,812 [INFO] __main__ - Building FAISS index�
148
+ 2025-11-21 21:24:54,169 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
149
+ 2025-11-21 21:24:54,417 [INFO] __main__ - Paragraphs extracted: 1
150
+ 2025-11-21 21:24:54,418 [INFO] __main__ - Building FAISS index�
151
+ 2025-11-21 21:25:33,095 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
152
+ 2025-11-21 21:25:33,368 [INFO] __main__ - Paragraphs extracted: 1
153
+ 2025-11-21 21:25:33,368 [INFO] __main__ - Building FAISS index�
154
+ 2025-11-21 21:27:20,261 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
155
+ 2025-11-21 21:27:20,562 [INFO] __main__ - Paragraphs extracted: 1
156
+ 2025-11-21 21:27:20,563 [INFO] __main__ - Building FAISS index�
157
+ 2025-11-21 21:28:55,470 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
158
+ 2025-11-21 21:28:55,713 [INFO] __main__ - Paragraphs extracted: 1
159
+ 2025-11-21 21:28:55,713 [INFO] __main__ - Building FAISS index�
160
+ 2025-11-21 21:29:06,793 [INFO] httpx - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
161
+ 2025-11-21 21:29:06,794 [INFO] openai._base_client - Retrying request to /embeddings in 0.394946 seconds
162
+ 2025-11-21 21:29:08,096 [INFO] httpx - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
163
+ 2025-11-21 21:29:08,097 [INFO] openai._base_client - Retrying request to /embeddings in 0.868206 seconds
164
+ 2025-11-21 21:29:09,926 [INFO] httpx - HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 429 Too Many Requests"
165
+ 2025-11-21 21:31:46,974 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
166
+ 2025-11-21 21:31:47,208 [INFO] __main__ - Paragraphs extracted: 1
167
+ 2025-11-21 21:31:47,208 [INFO] __main__ - Building FAISS index�
168
+ 2025-11-21 21:31:47,213 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
169
+ 2025-11-21 21:31:47,213 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
170
+ 2025-11-21 21:31:51,449 [INFO] faiss.loader - Loading faiss with AVX2 support.
171
+ 2025-11-21 21:31:51,601 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
172
+ 2025-11-21 21:31:51,613 [INFO] __main__ - Ingestion complete
173
+ 2025-11-21 21:31:51,614 [INFO] __main__ - Ingestion Run Succefull
174
+ 2025-11-21 21:39:17,888 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
175
+ 2025-11-21 21:39:18,120 [INFO] __main__ - Chunks created: 7
176
+ 2025-11-21 21:39:18,120 [INFO] __main__ - Building FAISS index�
177
+ 2025-11-21 21:39:18,124 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
178
+ 2025-11-21 21:39:18,125 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
179
+ 2025-11-21 21:39:22,543 [INFO] faiss.loader - Loading faiss with AVX2 support.
180
+ 2025-11-21 21:39:22,691 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
181
+ 2025-11-21 21:40:44,374 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
182
+ 2025-11-21 21:40:44,598 [INFO] __main__ - Chunks created: 7
183
+ 2025-11-21 21:40:44,599 [INFO] __main__ - Building FAISS index�
184
+ 2025-11-21 21:40:44,603 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
185
+ 2025-11-21 21:40:44,604 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
186
+ 2025-11-21 21:40:48,921 [INFO] faiss.loader - Loading faiss with AVX2 support.
187
+ 2025-11-21 21:40:49,059 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
188
+ 2025-11-21 21:41:23,472 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
189
+ 2025-11-21 21:41:23,742 [INFO] __main__ - Chunks created: 7
190
+ 2025-11-21 21:41:23,742 [INFO] __main__ - Building FAISS index�
191
+ 2025-11-21 21:41:23,746 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
192
+ 2025-11-21 21:41:23,747 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
193
+ 2025-11-21 21:41:28,372 [INFO] faiss.loader - Loading faiss with AVX2 support.
194
+ 2025-11-21 21:41:28,532 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
195
+ 2025-11-21 21:41:28,541 [INFO] __main__ - Ingestion complete
196
+ 2025-11-21 21:41:28,542 [INFO] __main__ - Ingestion Run Successful
197
+ 2025-11-22 17:33:44,071 [INFO] __main__ - Ingestion Run Successful
198
+ 2025-11-22 17:44:32,121 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
199
+ 2025-11-22 17:44:32,121 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
200
+ 2025-11-22 17:44:51,815 [INFO] __main__ - Ingestion Run Successful
201
+ 2025-11-22 17:46:57,348 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
202
+ 2025-11-22 17:46:57,348 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
203
+ 2025-11-22 17:47:14,213 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
204
+ 2025-11-22 17:47:14,213 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
205
+ 2025-11-22 17:47:17,865 [INFO] faiss.loader - Loading faiss with AVX2 support.
206
+ 2025-11-22 17:47:17,888 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
207
+ 2025-11-22 17:47:17,895 [INFO] __main__ - Loaded existing FAISS index
208
+ 2025-11-22 17:47:18,270 [INFO] __main__ - Added 18 GitHub chunks
209
+ 2025-11-22 17:47:18,273 [INFO] __main__ - Vectorstore updated successfully
210
+ 2025-11-22 17:47:18,273 [INFO] __main__ - Ingestion Run Successful
211
+ 2025-11-22 18:00:58,107 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
212
+ 2025-11-22 18:00:58,108 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
213
+ 2025-11-22 18:02:05,994 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
214
+ 2025-11-22 18:02:05,994 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
215
+ 2025-11-22 18:02:11,242 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
216
+ 2025-11-22 18:02:11,243 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
217
+ 2025-11-22 18:02:14,485 [INFO] faiss.loader - Loading faiss with AVX2 support.
218
+ 2025-11-22 18:02:14,506 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
219
+ 2025-11-22 18:02:14,513 [INFO] __main__ - Loaded existing FAISS index
220
+ 2025-11-22 18:02:14,548 [INFO] __main__ - Added 1 GitHub chunks
221
+ 2025-11-22 18:02:14,552 [INFO] __main__ - Vectorstore updated successfully
222
+ 2025-11-22 18:02:14,553 [INFO] __main__ - Ingestion Run Successful
223
+ 2025-11-22 18:06:05,105 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
224
+ 2025-11-22 18:06:05,106 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
225
+ 2025-11-22 18:06:10,493 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
226
+ 2025-11-22 18:06:10,494 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
227
+ 2025-11-22 18:06:13,918 [INFO] faiss.loader - Loading faiss with AVX2 support.
228
+ 2025-11-22 18:06:13,940 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
229
+ 2025-11-22 18:06:13,947 [INFO] __main__ - Loaded existing FAISS index
230
+ 2025-11-22 18:06:13,981 [INFO] __main__ - Added 1 GitHub chunks
231
+ 2025-11-22 18:06:13,984 [INFO] __main__ - Vectorstore updated successfully
232
+ 2025-11-22 18:06:13,985 [INFO] __main__ - Ingestion Run Successful
233
+ 2025-11-22 18:11:23,657 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
234
+ 2025-11-22 18:11:23,658 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
235
+ 2025-11-22 18:14:53,432 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
236
+ 2025-11-22 18:14:53,433 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
237
+ 2025-11-22 18:16:03,960 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
238
+ 2025-11-22 18:16:03,961 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
239
+ 2025-11-22 18:16:24,791 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
240
+ 2025-11-22 18:16:24,792 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
241
+ 2025-11-22 18:16:28,163 [INFO] faiss.loader - Loading faiss with AVX2 support.
242
+ 2025-11-22 18:16:28,193 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
243
+ 2025-11-22 18:16:28,200 [INFO] __main__ - Loaded existing FAISS index
244
+ 2025-11-22 18:16:28,403 [INFO] __main__ - Added 18 GitHub chunks
245
+ 2025-11-22 18:16:28,408 [INFO] __main__ - Vectorstore updated successfully
246
+ 2025-11-22 18:16:28,410 [INFO] __main__ - Ingestion Run Successful
247
+ 2025-11-22 18:17:42,192 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
248
+ 2025-11-22 18:17:42,414 [INFO] __main__ - Chunks created: 7
249
+ 2025-11-22 18:17:42,415 [INFO] __main__ - Building FAISS index�
250
+ 2025-11-22 18:17:42,419 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
251
+ 2025-11-22 18:17:42,419 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
252
+ 2025-11-22 18:17:46,865 [INFO] faiss.loader - Loading faiss with AVX2 support.
253
+ 2025-11-22 18:17:46,890 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
254
+ 2025-11-22 18:17:46,902 [INFO] __main__ - Ingestion complete
255
+ 2025-11-22 18:17:46,903 [INFO] __main__ - Ingestion Run Successful
256
+ 2025-11-22 18:18:09,339 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
257
+ 2025-11-22 18:18:09,339 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
258
+ 2025-11-22 18:18:29,257 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
259
+ 2025-11-22 18:18:29,259 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
260
+ 2025-11-22 18:18:32,831 [INFO] faiss.loader - Loading faiss with AVX2 support.
261
+ 2025-11-22 18:18:32,850 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
262
+ 2025-11-22 18:18:32,860 [INFO] __main__ - Loaded existing FAISS index
263
+ 2025-11-22 18:18:33,028 [INFO] __main__ - Added 18 GitHub chunks
264
+ 2025-11-22 18:18:33,030 [INFO] __main__ - Vectorstore updated successfully
265
+ 2025-11-22 18:18:33,031 [INFO] __main__ - Ingestion Run Successful
266
+ 2025-11-22 21:53:20,450 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
267
+ 2025-11-22 21:53:20,451 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
268
+ 2025-11-22 21:53:58,305 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
269
+ 2025-11-22 21:53:58,305 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
270
+ 2025-11-22 21:54:02,199 [INFO] faiss.loader - Loading faiss with AVX2 support.
271
+ 2025-11-22 21:54:02,227 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
272
+ 2025-11-22 21:54:02,235 [INFO] __main__ - Loaded existing FAISS index
273
+ 2025-11-22 21:54:04,134 [INFO] __main__ - Added 151 GitHub chunks
274
+ 2025-11-22 21:54:04,138 [INFO] __main__ - Vectorstore updated successfully
275
+ 2025-11-22 21:54:04,139 [INFO] __main__ - Ingestion Run Successful
276
+ 2025-11-22 22:32:04,579 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
277
+ 2025-11-22 22:32:04,580 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
278
+ 2025-11-22 22:32:40,217 [INFO] faiss.loader - Loading faiss with AVX2 support.
279
+ 2025-11-22 22:32:40,238 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
280
+ 2025-11-22 22:32:40,248 [INFO] __main__ - Loaded existing FAISS index
281
+ 2025-11-22 22:36:41,330 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
282
+ 2025-11-22 22:36:41,331 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
283
+ 2025-11-22 22:37:17,003 [INFO] faiss.loader - Loading faiss with AVX2 support.
284
+ 2025-11-22 22:37:17,032 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
285
+ 2025-11-22 22:37:17,042 [INFO] __main__ - Loaded existing FAISS index
286
+ 2025-11-22 22:43:16,107 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
287
+ 2025-11-22 22:43:16,342 [INFO] __main__ - Chunks created: 7
288
+ 2025-11-22 22:43:16,343 [INFO] __main__ - Building FAISS index�
289
+ 2025-11-22 22:43:16,349 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
290
+ 2025-11-22 22:43:16,349 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
291
+ 2025-11-22 22:43:21,587 [INFO] faiss.loader - Loading faiss with AVX2 support.
292
+ 2025-11-22 22:43:21,616 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
293
+ 2025-11-22 22:43:21,631 [INFO] __main__ - Ingestion complete
294
+ 2025-11-22 22:43:21,632 [INFO] __main__ - Ingestion Run Successful
295
+ 2025-11-22 22:48:48,538 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
296
+ 2025-11-22 22:48:48,539 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
297
+ 2025-11-22 22:49:09,425 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
298
+ 2025-11-22 22:49:09,426 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
299
+ 2025-11-22 22:49:12,891 [INFO] faiss.loader - Loading faiss with AVX2 support.
300
+ 2025-11-22 22:49:12,914 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
301
+ 2025-11-22 22:49:12,923 [INFO] __main__ - Loaded existing FAISS index
302
+ 2025-11-22 22:49:13,108 [INFO] __main__ - Added 18 GitHub chunks
303
+ 2025-11-22 22:49:13,111 [INFO] __main__ - Vectorstore updated successfully
304
+ 2025-11-22 22:49:13,112 [INFO] __main__ - Ingestion Run Successful
305
+ 2025-11-22 22:50:48,627 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
306
+ 2025-11-22 22:50:48,955 [INFO] __main__ - Chunks created: 7
307
+ 2025-11-22 22:50:48,955 [INFO] __main__ - Building FAISS index�
308
+ 2025-11-22 22:50:48,960 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
309
+ 2025-11-22 22:50:48,961 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
310
+ 2025-11-22 22:50:53,572 [INFO] faiss.loader - Loading faiss with AVX2 support.
311
+ 2025-11-22 22:50:53,592 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
312
+ 2025-11-22 22:50:53,603 [INFO] __main__ - Ingestion complete
313
+ 2025-11-22 22:50:53,604 [INFO] __main__ - Ingestion Run Successful
314
+ 2025-11-22 22:51:10,965 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
315
+ 2025-11-22 22:51:10,966 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
316
+ 2025-11-22 22:51:52,957 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
317
+ 2025-11-22 22:51:52,957 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
318
+ 2025-11-22 22:51:56,833 [INFO] faiss.loader - Loading faiss with AVX2 support.
319
+ 2025-11-22 22:51:56,854 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
320
+ 2025-11-22 22:51:56,863 [INFO] __main__ - Loaded existing FAISS index
321
+ 2025-11-22 22:51:58,561 [INFO] __main__ - Added 151 GitHub chunks
322
+ 2025-11-22 22:51:58,564 [INFO] __main__ - Vectorstore updated successfully
323
+ 2025-11-22 22:51:58,565 [INFO] __main__ - Ingestion Run Successful
324
+ 2025-11-22 23:03:10,037 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
325
+ 2025-11-22 23:03:10,038 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
326
+ 2025-11-22 23:03:44,393 [INFO] faiss.loader - Loading faiss with AVX2 support.
327
+ 2025-11-22 23:03:44,417 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
328
+ 2025-11-22 23:03:44,428 [INFO] __main__ - Loaded existing FAISS index
329
+ 2025-11-22 23:03:45,954 [INFO] __main__ - Added 121 GitHub chunks
330
+ 2025-11-22 23:03:45,958 [INFO] __main__ - Vectorstore updated successfully
331
+ 2025-11-22 23:03:45,959 [INFO] __main__ - Ingestion Run Successful
332
+ 2025-11-22 23:04:36,943 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
333
+ 2025-11-22 23:04:37,266 [INFO] __main__ - Chunks created: 7
334
+ 2025-11-22 23:04:37,267 [INFO] __main__ - Building FAISS index�
335
+ 2025-11-22 23:04:37,272 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
336
+ 2025-11-22 23:04:37,273 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
337
+ 2025-11-22 23:04:41,718 [INFO] faiss.loader - Loading faiss with AVX2 support.
338
+ 2025-11-22 23:04:41,743 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
339
+ 2025-11-22 23:04:41,759 [INFO] __main__ - Ingestion complete
340
+ 2025-11-22 23:04:41,761 [INFO] __main__ - Ingestion Run Successful
341
+ 2025-11-22 23:05:31,614 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
342
+ 2025-11-22 23:05:31,614 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
343
+ 2025-11-22 23:06:01,089 [INFO] faiss.loader - Loading faiss with AVX2 support.
344
+ 2025-11-22 23:06:01,120 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
345
+ 2025-11-22 23:06:01,130 [INFO] __main__ - Loaded existing FAISS index
346
+ 2025-11-22 23:06:02,591 [INFO] __main__ - Added 121 GitHub chunks
347
+ 2025-11-22 23:06:02,594 [INFO] __main__ - Vectorstore updated successfully
348
+ 2025-11-22 23:06:02,595 [INFO] __main__ - Ingestion Run Successful
349
+ 2025-11-22 23:11:03,376 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
350
+ 2025-11-22 23:11:03,377 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
351
+ 2025-11-22 23:11:40,512 [INFO] faiss.loader - Loading faiss with AVX2 support.
352
+ 2025-11-22 23:11:40,543 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
353
+ 2025-11-22 23:11:40,551 [INFO] __main__ - Loaded existing FAISS index
354
+ 2025-11-22 23:11:42,133 [INFO] __main__ - Added 128 GitHub chunks
355
+ 2025-11-22 23:11:42,137 [INFO] __main__ - Vectorstore updated successfully
356
+ 2025-11-22 23:11:42,138 [INFO] __main__ - Ingestion Run Successful
357
+ 2025-11-22 23:15:42,814 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
358
+ 2025-11-22 23:15:43,144 [INFO] __main__ - Chunks created: 7
359
+ 2025-11-22 23:15:43,145 [INFO] __main__ - Building FAISS index�
360
+ 2025-11-22 23:15:43,150 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
361
+ 2025-11-22 23:15:43,150 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
362
+ 2025-11-22 23:15:47,332 [INFO] faiss.loader - Loading faiss with AVX2 support.
363
+ 2025-11-22 23:15:47,360 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
364
+ 2025-11-22 23:15:47,374 [INFO] __main__ - Ingestion complete
365
+ 2025-11-22 23:15:47,375 [INFO] __main__ - Ingestion Run Successful
366
+ 2025-11-22 23:16:17,704 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
367
+ 2025-11-22 23:16:17,705 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
368
+ 2025-11-22 23:16:55,264 [INFO] faiss.loader - Loading faiss with AVX2 support.
369
+ 2025-11-22 23:16:55,286 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
370
+ 2025-11-22 23:16:55,296 [INFO] __main__ - Loaded existing FAISS index
371
+ 2025-11-22 23:16:56,955 [INFO] __main__ - Added 128 GitHub chunks
372
+ 2025-11-22 23:16:56,959 [INFO] __main__ - Vectorstore updated successfully
373
+ 2025-11-22 23:16:56,960 [INFO] __main__ - Ingestion Run Successful
374
+ 2025-11-23 01:23:55,311 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
375
+ 2025-11-23 01:23:55,313 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
376
+ 2025-11-23 01:23:59,240 [INFO] faiss.loader - Loading faiss with AVX2 support.
377
+ 2025-11-23 01:23:59,268 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
378
+ 2025-11-23 01:25:12,791 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
379
+ 2025-11-23 01:25:12,792 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
380
+ 2025-11-23 01:25:16,720 [INFO] faiss.loader - Loading faiss with AVX2 support.
381
+ 2025-11-23 01:25:16,757 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
382
+ 2025-11-23 01:26:22,371 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
383
+ 2025-11-23 01:26:22,371 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
384
+ 2025-11-23 01:26:26,445 [INFO] faiss.loader - Loading faiss with AVX2 support.
385
+ 2025-11-23 01:26:26,489 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
386
+ 2025-11-23 01:26:28,234 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
387
+ 2025-11-23 01:26:28,391 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
388
+ 2025-11-23 01:27:51,912 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
389
+ 2025-11-23 01:27:51,913 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
390
+ 2025-11-23 01:27:56,449 [INFO] faiss.loader - Loading faiss with AVX2 support.
391
+ 2025-11-23 01:27:56,481 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
392
+ 2025-11-23 01:27:58,247 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
393
+ 2025-11-23 01:27:58,320 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
394
+ 2025-11-23 01:29:50,115 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
395
+ 2025-11-23 01:29:50,115 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
396
+ 2025-11-23 01:29:54,177 [INFO] faiss.loader - Loading faiss with AVX2 support.
397
+ 2025-11-23 01:29:54,210 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
398
+ 2025-11-23 01:29:55,995 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
399
+ 2025-11-23 01:29:56,158 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
400
+ 2025-11-23 01:30:35,378 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
401
+ 2025-11-23 01:30:35,378 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
402
+ 2025-11-23 01:30:39,458 [INFO] faiss.loader - Loading faiss with AVX2 support.
403
+ 2025-11-23 01:30:39,494 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
404
+ 2025-11-23 01:30:40,732 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
405
+ 2025-11-23 01:30:40,779 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
406
+ 2025-11-23 01:30:41,352 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
407
+ 2025-11-23 01:30:41,469 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
408
+ 2025-11-23 17:19:23,597 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
409
+ 2025-11-23 17:19:23,598 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
410
+ 2025-11-23 17:19:28,655 [INFO] faiss.loader - Loading faiss with AVX2 support.
411
+ 2025-11-23 17:19:28,926 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
412
+ 2025-11-23 17:19:30,677 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
413
+ 2025-11-23 17:19:30,745 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
414
+ 2025-11-23 17:19:30,957 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
415
+ 2025-11-23 17:19:30,978 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
416
+ 2025-11-23 17:22:22,101 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
417
+ 2025-11-23 17:22:22,101 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
418
+ 2025-11-23 17:22:26,196 [INFO] faiss.loader - Loading faiss with AVX2 support.
419
+ 2025-11-23 17:22:26,230 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
420
+ 2025-11-23 17:22:27,450 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
421
+ 2025-11-23 17:22:27,496 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
422
+ 2025-11-23 17:22:28,092 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
423
+ 2025-11-23 17:22:28,293 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
424
+ 2025-11-23 17:26:08,404 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
425
+ 2025-11-23 17:26:08,404 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
426
+ 2025-11-23 17:26:13,003 [INFO] faiss.loader - Loading faiss with AVX2 support.
427
+ 2025-11-23 17:26:13,037 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
428
+ 2025-11-23 17:26:14,254 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
429
+ 2025-11-23 17:26:14,296 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
430
+ 2025-11-23 17:26:14,899 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
431
+ 2025-11-23 17:26:15,044 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
432
+ 2025-11-23 17:26:21,853 [INFO] __main__ - User message received: hello
433
+ 2025-11-23 17:26:24,192 [INFO] __main__ - Intent detected: CHAT
434
+ 2025-11-23 17:26:38,469 [INFO] __main__ - User message received: i wanna know more about the candidate
435
+ tell me about him
436
+ 2025-11-23 17:26:39,770 [INFO] __main__ - Intent detected: CHAT
437
+ 2025-11-23 17:29:22,379 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
438
+ 2025-11-23 17:29:22,380 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
439
+ 2025-11-23 17:29:26,479 [INFO] faiss.loader - Loading faiss with AVX2 support.
440
+ 2025-11-23 17:29:26,511 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
441
+ 2025-11-23 17:29:27,677 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
442
+ 2025-11-23 17:29:27,698 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
443
+ 2025-11-23 17:29:28,324 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
444
+ 2025-11-23 17:29:28,565 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
445
+ 2025-11-23 17:32:10,356 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
446
+ 2025-11-23 17:32:10,357 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
447
+ 2025-11-23 17:32:14,506 [INFO] faiss.loader - Loading faiss with AVX2 support.
448
+ 2025-11-23 17:32:14,541 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
449
+ 2025-11-23 17:32:15,715 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
450
+ 2025-11-23 17:32:15,762 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
451
+ 2025-11-23 17:32:16,351 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
452
+ 2025-11-23 17:32:16,518 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
453
+ 2025-11-23 17:34:34,623 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
454
+ 2025-11-23 17:34:34,624 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
455
+ 2025-11-23 17:34:38,632 [INFO] faiss.loader - Loading faiss with AVX2 support.
456
+ 2025-11-23 17:34:38,662 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
457
+ 2025-11-23 17:34:39,837 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
458
+ 2025-11-23 17:34:39,877 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
459
+ 2025-11-23 17:34:40,497 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
460
+ 2025-11-23 17:34:40,640 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
461
+ 2025-11-23 17:35:30,591 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
462
+ 2025-11-23 17:35:30,591 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
463
+ 2025-11-23 17:35:35,642 [INFO] faiss.loader - Loading faiss with AVX2 support.
464
+ 2025-11-23 17:35:35,671 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
465
+ 2025-11-23 17:35:36,841 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
466
+ 2025-11-23 17:35:36,882 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
467
+ 2025-11-23 17:35:37,467 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
468
+ 2025-11-23 17:35:37,628 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
469
+ 2025-11-23 17:44:34,052 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
470
+ 2025-11-23 17:44:34,052 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
471
+ 2025-11-23 17:44:37,955 [INFO] faiss.loader - Loading faiss with AVX2 support.
472
+ 2025-11-23 17:44:37,985 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
473
+ 2025-11-23 17:44:39,162 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
474
+ 2025-11-23 17:44:39,200 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
475
+ 2025-11-23 17:44:39,824 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
476
+ 2025-11-23 17:44:39,967 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
477
+ 2025-11-23 17:46:37,739 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
478
+ 2025-11-23 17:46:37,740 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
479
+ 2025-11-23 17:46:41,697 [INFO] faiss.loader - Loading faiss with AVX2 support.
480
+ 2025-11-23 17:46:41,727 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
481
+ 2025-11-23 17:46:42,895 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
482
+ 2025-11-23 17:46:42,918 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
483
+ 2025-11-23 17:46:43,524 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
484
+ 2025-11-23 17:46:43,646 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
485
+ 2025-11-23 17:48:06,896 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
486
+ 2025-11-23 17:48:06,897 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
487
+ 2025-11-23 17:48:10,713 [INFO] faiss.loader - Loading faiss with AVX2 support.
488
+ 2025-11-23 17:48:10,743 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
489
+ 2025-11-23 17:48:11,936 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
490
+ 2025-11-23 17:48:11,958 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
491
+ 2025-11-23 17:48:12,578 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
492
+ 2025-11-23 17:48:12,714 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
493
+ 2025-11-23 17:56:16,017 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
494
+ 2025-11-23 17:56:16,018 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
495
+ 2025-11-23 17:56:21,227 [INFO] faiss.loader - Loading faiss with AVX2 support.
496
+ 2025-11-23 17:56:21,257 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
497
+ 2025-11-23 17:56:22,403 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
498
+ 2025-11-23 17:56:22,445 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
499
+ 2025-11-23 17:56:23,046 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
500
+ 2025-11-23 17:56:23,253 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
501
+ 2025-11-23 19:27:57,083 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
502
+ 2025-11-23 19:27:57,083 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
503
+ 2025-11-23 19:28:02,064 [INFO] faiss.loader - Loading faiss with AVX2 support.
504
+ 2025-11-23 19:28:02,095 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
505
+ 2025-11-23 19:28:03,279 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
506
+ 2025-11-23 19:28:03,326 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
507
+ 2025-11-23 19:28:03,875 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
508
+ 2025-11-23 19:28:04,037 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
509
+ 2025-11-23 19:28:44,482 [WARNING] huggingface_hub.inference._providers._common - Our latest automated health check on model 'mistralai/Mistral-7B-Instruct-v0.3' for provider 'novita' did not complete successfully. Inference call might fail.
510
+ 2025-11-23 19:29:27,122 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
511
+ 2025-11-23 19:29:27,123 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
512
+ 2025-11-23 19:29:31,292 [INFO] faiss.loader - Loading faiss with AVX2 support.
513
+ 2025-11-23 19:29:31,321 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
514
+ 2025-11-23 19:29:32,505 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
515
+ 2025-11-23 19:29:32,548 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
516
+ 2025-11-23 19:29:33,094 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
517
+ 2025-11-23 19:29:33,311 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
518
+ 2025-11-23 19:34:47,678 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
519
+ 2025-11-23 19:34:47,679 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
520
+ 2025-11-23 19:34:51,540 [INFO] faiss.loader - Loading faiss with AVX2 support.
521
+ 2025-11-23 19:34:51,576 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
522
+ 2025-11-23 19:34:52,728 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
523
+ 2025-11-23 19:34:52,769 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
524
+ 2025-11-23 19:34:53,451 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
525
+ 2025-11-23 19:34:53,611 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
526
+ 2025-11-23 19:38:25,833 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
527
+ 2025-11-23 19:38:25,834 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
528
+ 2025-11-23 19:38:29,855 [INFO] faiss.loader - Loading faiss with AVX2 support.
529
+ 2025-11-23 19:38:29,900 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
530
+ 2025-11-23 19:38:31,383 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
531
+ 2025-11-23 19:38:31,438 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
532
+ 2025-11-23 19:38:31,821 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
533
+ 2025-11-23 19:38:32,173 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
534
+ 2025-11-23 19:40:20,843 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
535
+ 2025-11-23 19:40:20,844 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
536
+ 2025-11-23 19:40:25,094 [INFO] faiss.loader - Loading faiss with AVX2 support.
537
+ 2025-11-23 19:40:25,124 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
538
+ 2025-11-23 19:40:26,297 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
539
+ 2025-11-23 19:40:26,338 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
540
+ 2025-11-23 19:40:26,886 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
541
+ 2025-11-23 19:40:27,132 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
542
+ 2025-11-23 19:50:34,744 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
543
+ 2025-11-23 19:50:34,745 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
544
+ 2025-11-23 19:50:38,679 [INFO] faiss.loader - Loading faiss with AVX2 support.
545
+ 2025-11-23 19:50:38,713 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
546
+ 2025-11-23 19:50:39,903 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
547
+ 2025-11-23 19:50:39,939 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
548
+ 2025-11-23 19:50:40,540 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
549
+ 2025-11-23 19:50:40,745 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
550
+ 2025-11-23 19:51:48,570 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
551
+ 2025-11-23 19:51:48,570 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
552
+ 2025-11-23 19:51:52,733 [INFO] faiss.loader - Loading faiss with AVX2 support.
553
+ 2025-11-23 19:51:52,762 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
554
+ 2025-11-23 19:51:53,939 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
555
+ 2025-11-23 19:51:53,973 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
556
+ 2025-11-23 19:51:54,600 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
557
+ 2025-11-23 19:51:55,595 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
558
+ 2025-11-23 19:55:44,979 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
559
+ 2025-11-23 19:55:46,140 [INFO] __main__ - Chunks created: 7
560
+ 2025-11-23 19:55:46,141 [INFO] __main__ - Building FAISS index�
561
+ 2025-11-23 19:55:46,147 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
562
+ 2025-11-23 19:55:46,148 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
563
+ 2025-11-23 19:55:50,883 [INFO] faiss.loader - Loading faiss with AVX2 support.
564
+ 2025-11-23 19:55:50,929 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
565
+ 2025-11-23 19:55:50,957 [INFO] __main__ - Ingestion complete
566
+ 2025-11-23 19:55:50,958 [INFO] __main__ - Ingestion Run Successful
567
+ 2025-11-23 19:56:57,479 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
568
+ 2025-11-23 19:56:57,480 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
569
+ 2025-11-23 19:57:01,460 [INFO] faiss.loader - Loading faiss with AVX2 support.
570
+ 2025-11-23 19:57:01,493 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
571
+ 2025-11-23 19:57:02,688 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
572
+ 2025-11-23 19:57:02,720 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
573
+ 2025-11-23 19:57:03,239 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
574
+ 2025-11-23 19:57:03,454 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
575
+ 2025-11-23 19:59:21,082 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
576
+ 2025-11-23 19:59:21,083 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
577
+ 2025-11-23 19:59:25,430 [INFO] faiss.loader - Loading faiss with AVX2 support.
578
+ 2025-11-23 19:59:25,460 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
579
+ 2025-11-23 19:59:26,645 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
580
+ 2025-11-23 19:59:26,673 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
581
+ 2025-11-23 19:59:27,322 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
582
+ 2025-11-23 19:59:27,469 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
583
+ 2025-11-23 20:01:15,851 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
584
+ 2025-11-23 20:01:15,852 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
585
+ 2025-11-23 20:01:38,180 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
586
+ 2025-11-23 20:01:38,181 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
587
+ 2025-11-23 20:01:41,608 [INFO] faiss.loader - Loading faiss with AVX2 support.
588
+ 2025-11-23 20:01:41,633 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
589
+ 2025-11-23 20:01:41,641 [INFO] __main__ - Loaded existing FAISS index
590
+ 2025-11-23 20:01:41,876 [INFO] __main__ - Added 20 GitHub chunks
591
+ 2025-11-23 20:01:41,879 [INFO] __main__ - Vectorstore updated successfully
592
+ 2025-11-23 20:01:41,879 [INFO] __main__ - Ingestion Run Successful
593
+ 2025-11-23 20:02:13,017 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
594
+ 2025-11-23 20:02:13,018 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
595
+ 2025-11-23 20:02:16,941 [INFO] faiss.loader - Loading faiss with AVX2 support.
596
+ 2025-11-23 20:02:16,976 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
597
+ 2025-11-23 20:02:18,137 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
598
+ 2025-11-23 20:02:18,178 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
599
+ 2025-11-23 20:02:18,795 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
600
+ 2025-11-23 20:02:18,968 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
601
+ 2025-11-23 20:05:18,436 [INFO] __main__ - Processing resume: c:\Users\rahee\OneDrive\Documents\GitHub\GenAI_Career_Agent\data\resume_path\Raheel_Rehman.pdf
602
+ 2025-11-23 20:05:18,758 [INFO] __main__ - Chunks created: 7
603
+ 2025-11-23 20:05:18,759 [INFO] __main__ - Building FAISS index�
604
+ 2025-11-23 20:05:18,764 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
605
+ 2025-11-23 20:05:18,764 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
606
+ 2025-11-23 20:05:22,980 [INFO] faiss.loader - Loading faiss with AVX2 support.
607
+ 2025-11-23 20:05:23,008 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
608
+ 2025-11-23 20:05:23,021 [INFO] __main__ - Ingestion complete
609
+ 2025-11-23 20:05:23,021 [INFO] __main__ - Ingestion Run Successful
610
+ 2025-11-23 20:05:45,893 [INFO] sentence_transformers.SentenceTransformer - Use pytorch device_name: cpu
611
+ 2025-11-23 20:05:45,893 [INFO] sentence_transformers.SentenceTransformer - Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2
612
+ 2025-11-23 20:05:49,915 [INFO] faiss.loader - Loading faiss with AVX2 support.
613
+ 2025-11-23 20:05:49,946 [INFO] faiss.loader - Successfully loaded faiss with AVX2 support.
614
+ 2025-11-23 20:05:51,091 [INFO] httpx - HTTP Request: GET http://127.0.0.1:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
615
+ 2025-11-23 20:05:51,137 [INFO] httpx - HTTP Request: HEAD http://127.0.0.1:7860/ "HTTP/1.1 200 OK"
616
+ 2025-11-23 20:05:51,809 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
617
+ 2025-11-23 20:05:51,974 [INFO] httpx - HTTP Request: GET https://api.gradio.app/pkg-version "HTTP/1.1 200 OK"
rag/__init__.py ADDED
File without changes
rag/analysis_chain.py ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from huggingface_hub import InferenceClient
3
+
4
+ from langchain_community.vectorstores import FAISS
5
+ from langchain_huggingface import HuggingFaceEmbeddings
6
+ from langchain_core.prompts import ChatPromptTemplate
7
+ from langchain_core.runnables import RunnablePassthrough
8
+ from langchain_core.output_parsers import StrOutputParser
9
+ from langchain_core.runnables import RunnableLambda
10
+
11
+
12
+ # =====================================================
13
+ # 1. INITIALIZATION SECTION (run ONCE)
14
+ # =====================================================
15
+
16
+ HF_API_TOKEN = os.getenv("HUGGINGFACE_API_TOKEN")
17
+ if not HF_API_TOKEN:
18
+ raise RuntimeError("Set HUGGINGFACE_API_TOKEN.")
19
+
20
+ MODEL_NAME = "" # When in use insert model name as parameter here
21
+
22
+ # Initialize remote LLM client ONCE
23
+ client = InferenceClient(
24
+ model=MODEL_NAME,
25
+ token=HF_API_TOKEN
26
+ )
27
+
28
+ # LLM wrapper
29
+ def hf_llm(prompt: str) -> str:
30
+ response = client.chat_completion(
31
+ messages=[{"role": "user", "content": prompt}],
32
+ max_tokens=400,
33
+ temperature=0.3
34
+ )
35
+ return response.choices[0].message["content"]
36
+
37
+
38
+ # -----------------------------
39
+ # Vectorstore initialization
40
+ # -----------------------------
41
+ def init_vectorstore():
42
+ base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
43
+ vector_store_path = os.path.join(base_dir, "data", "vectorstores")
44
+
45
+ embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
46
+
47
+ vectorstore = FAISS.load_local(
48
+ folder_path=vector_store_path,
49
+ embeddings=embeddings,
50
+ allow_dangerous_deserialization=True,
51
+ )
52
+ return vectorstore
53
+
54
+ vectorstore = init_vectorstore()
55
+ retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
56
+ # =====================================================
57
+ # 2. BUILD RAG ANALYSIS CHAIN (no re-init)
58
+ # =====================================================
59
+
60
+ def build_analysis_chain(retriever, llm_callable):
61
+ """
62
+ retriever -> FAISS retriever already initialized
63
+ llm_callable -> function that takes string prompt and returns string
64
+ """
65
+ vectorstore = init_vectorstore()
66
+ retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
67
+ prompt = ChatPromptTemplate.from_template(
68
+ """
69
+ You are a professional Resume Analyst AI.
70
+ Return a professional summary and hold a conversation keeping the following metrics in mind:
71
+
72
+ {{
73
+ "job_fit_score": 0-100,
74
+ "fit_summary": "<3 sentence summary>",
75
+ "strengths": ["..."],
76
+ "missing_skills": ["..."],
77
+ "recommendations": ["..."]
78
+ }}
79
+
80
+ RETRIEVED RESUME CONTENT:
81
+ {context}
82
+
83
+ JOB DESCRIPTION:
84
+ {job_description}
85
+
86
+ Analyze and return JSON only.
87
+ """
88
+ )
89
+
90
+
91
+ chain = (
92
+ {
93
+ "context": retriever,
94
+ "job_description": RunnablePassthrough(),
95
+ }
96
+ | prompt
97
+ | RunnableLambda(lambda chat_prompt_value: hf_llm(chat_prompt_value.to_string()))
98
+ | StrOutputParser()
99
+ )
100
+
101
+ return chain
102
+
103
+
104
+ # =====================================================
105
+ # 3. MAIN FUNCTION FOR ANALYSIS
106
+ # =====================================================
107
+
108
+ def analyze_resume_against_job(job_description: str, retriever, llm_callable):
109
+ chain = build_analysis_chain(retriever, llm_callable)
110
+ return chain.invoke(job_description)
111
+
112
+ __all__ = [
113
+ "retriever",
114
+ "vectorstore",
115
+ "hf_llm",
116
+ "analyze_resume_against_job",
117
+ "build_analysis_chain"
118
+ ]
119
+
120
+ # =====================================================
121
+ # 4. Example test run
122
+ # =====================================================
123
+
124
+ if __name__ == "__main__":
125
+ job_desc = "What is the user's machine learning experience?"
126
+ result = analyze_resume_against_job(
127
+ job_description=job_desc,
128
+ retriever=retriever,
129
+ llm_callable=hf_llm
130
+ )
131
+ print("=== ANALYSIS ===")
132
+ print(result)
rag/github_ingestion.py ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import re
4
+ import requests
5
+ from langchain_community.vectorstores import FAISS
6
+ from langchain_community.embeddings import HuggingFaceEmbeddings
7
+ from langchain_core.documents import Document
8
+ from langchain_text_splitters import RecursiveCharacterTextSplitter
9
+
10
+ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
11
+ from rag.logger import get_logger # pylint: disable=import-error
12
+ logger = get_logger(__name__)
13
+
14
+ base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
15
+ vector_store_path = os.path.join(base_dir, 'data', 'vectorstores')
16
+
17
+ embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
18
+
19
+
20
+ def clean_personal_info(text: str) -> str:
21
+ patterns = [
22
+ r"\b[\w\.-]+@[\w\.-]+\.\w+\b",
23
+ r"\b\d{10}\b",
24
+ r"\b(?:\+?\d{1,3})?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b",
25
+ r"(http|https)://\S+",
26
+ r"linkedin\.com/\S+",
27
+ r"github\.com/\S+",
28
+ r"@[A-Za-z0-9_]+",
29
+ r"\d{1,4}\s+\w+\s+(Street|St|Road|Rd|Avenue|Ave|Lane|Ln)",
30
+ ]
31
+
32
+ cleaned = text
33
+ for p in patterns:
34
+ cleaned = re.sub(p, "[REMOVED]", cleaned, flags=re.IGNORECASE)
35
+
36
+ return cleaned
37
+
38
+
39
+ def fetch_github_data(username: str):
40
+ """
41
+ Fetch GitHub user profile and all public repos using an optional personal access token.
42
+ Handles authentication and pagination.
43
+ """
44
+ token = os.getenv("GITHUB_TOKEN")
45
+ headers = {"Authorization": f"token {token}"} if token else {}
46
+
47
+ # --- User profile ---
48
+ user_resp = requests.get(f"https://api.github.com/users/{username}", headers=headers).json()
49
+ if isinstance(user_resp, dict) and "message" in user_resp:
50
+ raise Exception(f"GitHub API error (user): {user_resp['message']}")
51
+
52
+ # --- Repositories with pagination ---
53
+ repos = []
54
+ page = 1
55
+ per_page = 100
56
+ while True:
57
+ repos_resp = requests.get(
58
+ f"https://api.github.com/users/{username}/repos",
59
+ headers=headers,
60
+ params={"per_page": per_page, "page": page}
61
+ ).json()
62
+
63
+ if isinstance(repos_resp, dict) and repos_resp.get("message"):
64
+ raise Exception(f"GitHub API error (repos): {repos_resp['message']}")
65
+ if not repos_resp:
66
+ break
67
+
68
+ repos.extend(repos_resp)
69
+ if len(repos_resp) < per_page:
70
+ break
71
+ page += 1
72
+ logger.info('Completed fetching github data')
73
+ return user_resp, repos
74
+
75
+
76
+ # -----------------------------
77
+ # Format GitHub Data
78
+ # -----------------------------
79
+ def format_github_data(username: str):
80
+ """
81
+ Converts GitHub profile + repo info into structured text for RAG ingestion.
82
+ """
83
+ user, repos = fetch_github_data(username)
84
+
85
+ lines = []
86
+
87
+ # --- Profile summary ---
88
+ lines.append(f"GitHub User: {user.get('name', username)}")
89
+ lines.append(f"Bio: {user.get('bio', 'No bio')}")
90
+ lines.append(f"Public Repos: {user.get('public_repos', 0)}")
91
+ lines.append(f"Followers: {user.get('followers', 0)}, Following: {user.get('following', 0)}")
92
+ lines.append("\n--- Repositories ---\n")
93
+
94
+ # --- Repos ---
95
+ token = os.getenv("GITHUB_TOKEN")
96
+ headers = {"Authorization": f"token {token}"} if token else {}
97
+
98
+ for repo in repos:
99
+ if not isinstance(repo, dict):
100
+ continue
101
+
102
+ lines.append(f"Repository: {repo.get('name', 'Unknown')}")
103
+ lines.append(f"Description: {repo.get('description', 'No description')}")
104
+ lines.append(f"Stars: {repo.get('stargazers_count', 0)}, Forks: {repo.get('forks_count', 0)}")
105
+
106
+ # Languages
107
+ lang_data = {}
108
+ lang_url = repo.get("languages_url")
109
+ if lang_url:
110
+ try:
111
+ lang_data = requests.get(lang_url, headers=headers).json()
112
+ except Exception:
113
+ lang_data = {}
114
+
115
+ if isinstance(lang_data, dict) and lang_data:
116
+ lang_summary = ", ".join([f"{k} ({v} bytes)" for k, v in lang_data.items()])
117
+ else:
118
+ lang_summary = "No language data"
119
+
120
+ lines.append(f"Languages: {lang_summary}")
121
+ lines.append("")
122
+ logger.info('Completed formatting Github data')
123
+ return "\n".join(lines)
124
+
125
+
126
+ def github_to_documents(username: str):
127
+ raw_text = format_github_data(username)
128
+
129
+ cleaned = clean_personal_info(raw_text)
130
+
131
+ paragraphs = [p.strip() for p in cleaned.split("\n\n") if p.strip()]
132
+
133
+ docs = []
134
+ paragraph_id = 0
135
+
136
+ for para in paragraphs:
137
+ docs.append(
138
+ Document(
139
+ page_content=para,
140
+ metadata={
141
+ "source": "github",
142
+ "username": username,
143
+ "paragraph_id": paragraph_id,
144
+ }
145
+ )
146
+ )
147
+ paragraph_id += 1
148
+
149
+ splitter = RecursiveCharacterTextSplitter(
150
+ chunk_size=700,
151
+ chunk_overlap=200,
152
+ separators=["\n\n", "\n", " ", ""],
153
+ )
154
+
155
+ chunks = splitter.split_documents(docs)
156
+ return chunks
157
+
158
+ def add_github_to_vectorstore(username: str):
159
+ docs = github_to_documents(username)
160
+
161
+ embeddings = HuggingFaceEmbeddings(
162
+ model_name="sentence-transformers/all-MiniLM-L6-v2"
163
+ )
164
+
165
+ index_path = os.path.join(vector_store_path, "index.faiss")
166
+
167
+ if os.path.exists(index_path):
168
+ vectorstore = FAISS.load_local(
169
+ vector_store_path,
170
+ embeddings,
171
+ allow_dangerous_deserialization=True
172
+ )
173
+ logger.info("Loaded existing FAISS index")
174
+ else:
175
+ vectorstore = FAISS.from_documents([], embeddings)
176
+ logger.info("Created new FAISS index")
177
+
178
+ vectorstore.add_documents(docs)
179
+ logger.info(f"Added {len(docs)} GitHub chunks")
180
+
181
+ vectorstore.save_local(vector_store_path)
182
+ logger.info("Vectorstore updated successfully")
183
+
184
+
185
+ if __name__ == '__main__':
186
+ add_github_to_vectorstore(username='Raheel31')
187
+ logger.info("Ingestion Run Successful")
rag/ingest.py ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import re
4
+ from langchain_community.document_loaders import PyPDFLoader
5
+ from langchain_community.embeddings import HuggingFaceEmbeddings
6
+ from langchain_community.vectorstores import FAISS
7
+ from langchain_core.documents import Document
8
+ from langchain_text_splitters import RecursiveCharacterTextSplitter
9
+
10
+
11
+ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
12
+ from rag.logger import get_logger # pylint: disable=import-error
13
+ logger = get_logger(__name__)
14
+
15
+ base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ vector_store_path = os.path.join(base_dir, 'data', 'vectorstores')
17
+
18
+ # -------------------------------------------------
19
+ # PERSONAL INFO CLEANER
20
+ # -------------------------------------------------
21
+ def clean_personal_info(text: str) -> str:
22
+ patterns = [
23
+ r"\b[\w\.-]+@[\w\.-]+\.\w+\b",
24
+ r"\b\d{10}\b",
25
+ r"\b(?:\+?\d{1,3})?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b",
26
+ r"(http|https)://\S+",
27
+ r"linkedin\.com/\S+",
28
+ r"github\.com/\S+",
29
+ r"@[A-Za-z0-9_]+",
30
+ r"\d{1,4}\s+\w+\s+(Street|St|Road|Rd|Avenue|Ave|Lane|Ln)",
31
+ ]
32
+
33
+ cleaned = text
34
+ for p in patterns:
35
+ cleaned = re.sub(p, "[REMOVED]", cleaned, flags=re.IGNORECASE)
36
+
37
+ return cleaned
38
+
39
+ # -------------------------------------------------
40
+ # LOAD, CLEAN, PARAGRAPH SPLIT, CHUNK
41
+ # -------------------------------------------------
42
+ def load_and_prepare_documents(pdf_path: str):
43
+ loader = PyPDFLoader(pdf_path)
44
+ pages = loader.load()
45
+
46
+ processed_docs = []
47
+ paragraph_id = 0
48
+
49
+ for page_num, page in enumerate(pages):
50
+ # Step 1 — clean personal info
51
+ clean_text = clean_personal_info(page.page_content)
52
+
53
+ # Step 2 — paragraph split
54
+ paragraphs = [p.strip() for p in clean_text.split("\n\n") if p.strip()]
55
+
56
+ for para in paragraphs:
57
+ processed_docs.append(
58
+ Document(
59
+ page_content=para,
60
+ metadata={
61
+ "source": pdf_path,
62
+ "page": page_num,
63
+ "paragraph_id": paragraph_id,
64
+ }
65
+ )
66
+ )
67
+ paragraph_id += 1
68
+
69
+ # Step 3 — chunking (makes it RAG-ready)
70
+ text_splitter = RecursiveCharacterTextSplitter(
71
+ chunk_size=700,
72
+ chunk_overlap=200,
73
+ separators=["\n\n", "\n", " ", ""],
74
+ )
75
+
76
+ final_chunks = text_splitter.split_documents(processed_docs)
77
+ logger.info('Loaded pdf data')
78
+ return final_chunks
79
+
80
+ # -------------------------------------------------
81
+ # BUILD VECTORSTORE
82
+ # -------------------------------------------------
83
+ def build_vectorstore(docs):
84
+ embeddings = HuggingFaceEmbeddings(
85
+ model_name="sentence-transformers/all-MiniLM-L6-v2"
86
+ )
87
+
88
+ vectorstore = FAISS.from_documents(docs, embeddings)
89
+
90
+ vectorstore.save_local(vector_store_path)
91
+ logger.info(f"Vectorstore built with {len(docs)} chunks")
92
+
93
+ # -------------------------------------------------
94
+ # MAIN PIPELINE
95
+ # -------------------------------------------------
96
+ def ingest_resume(pdf_path: str):
97
+ logger.info(f"Processing resume: {pdf_path}")
98
+
99
+ parsed_docs = load_and_prepare_documents(pdf_path)
100
+ logger.info(f"Chunks created: {len(parsed_docs)}")
101
+
102
+ logger.info("Building FAISS index…")
103
+ build_vectorstore(parsed_docs)
104
+
105
+ logger.info("Ingestion complete")
106
+
107
+
108
+ if __name__ == "__main__":
109
+ file_path = os.path.join(base_dir, 'data', 'resume_path', 'Raheel_Rehman.pdf')
110
+ ingest_resume(pdf_path=file_path)
111
+ logger.info("Ingestion Run Successful")
rag/logger.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import os
3
+
4
+ BASE_DIR = os.path.dirname(os.path.abspath(__file__))
5
+
6
+ LOG_FILE = os.path.join(BASE_DIR, "..", "logs","app.log")
7
+
8
+ logging.basicConfig(
9
+ level=logging.INFO,
10
+ format="%(asctime)s [%(levelname)s] %(name)s - %(message)s",
11
+ handlers=[
12
+ logging.FileHandler(LOG_FILE),
13
+ logging.StreamHandler()
14
+ ]
15
+ )
16
+
17
+ def get_logger(name: str):
18
+ """
19
+ Logger functoin to capture all data runs
20
+
21
+ Args:
22
+ name (str): Receives the log frome ach function
23
+ """
24
+ return logging.getLogger(name)
rag/retieval.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ from langchain_community.vectorstores import FAISS
4
+ from langchain_community.embeddings import HuggingFaceEmbeddings
5
+
6
+ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
7
+ from rag.logger import get_logger # pylint: disable=import-error
8
+ logger = get_logger(__name__)
9
+
10
+ def load_vectorstore():
11
+ embeddings = HuggingFaceEmbeddings(
12
+ model_name="sentence-transformers/all-MiniLM-L6-v2"
13
+ )
14
+
15
+ base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16
+ vectorstore_path = os.path.join(base_dir, "data", "vectorstores")
17
+
18
+ if not os.path.exists(vectorstore_path):
19
+ raise FileNotFoundError(
20
+ f"Vectorstore not found at: {vectorstore_path}\nRun ingest.py first."
21
+ )
22
+
23
+ vectorstore = FAISS.load_local(
24
+ vectorstore_path,
25
+ embeddings,
26
+ allow_dangerous_deserialization=True
27
+ )
28
+ logger.info('Vector store loaded')
29
+ return vectorstore
30
+
31
+ def get_retriever(top_k: int = 5):
32
+ vectorstore = load_vectorstore()
33
+
34
+ # LangChain wrapper - preferred
35
+ retriever = vectorstore.as_retriever(
36
+ search_kwargs={"k": top_k}
37
+ )
38
+ logger.info('Retrieval Complete')
39
+ return retriever
40
+
41
+
42
+ def search(query: str, top_k: int = 5):
43
+ vectorstore = load_vectorstore()
44
+
45
+ results = vectorstore.similarity_search(query, k=top_k)
46
+
47
+ return results
48
+
49
+ if __name__ == "__main__":
50
+ query = "GITHUB REPO DATA"
51
+ results = search(query, top_k=5)
52
+
53
+ print("\n=== SIMILARITY RESULTS ===")
54
+ for r in results:
55
+ print("\n--- CHUNK ---")
56
+ print(r.page_content)
57
+ print("Metadata:", r.metadata)