Skip to content

Commit 17e28f0

Browse files
committed
refact job_recommendation_system.py import
1 parent f412932 commit 17e28f0

File tree

1 file changed

+27
-45
lines changed

1 file changed

+27
-45
lines changed
Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,57 @@
11
# job_recommendation_system.py
22

3-
from neo4j_model import Neo4jModel
4-
from resume_processor import ResumeProcessor
5-
from retrieval_engine import RetrievalEngine
6-
from recommendation_generator import RecommendationGenerator
7-
from view import CLIView
8-
import sys
3+
import logging
94

10-
def main():
11-
12-
13-
# Redirect standard output to a file
14-
sys.stdout = open('output.log', 'w')
15-
16-
# Your code here
17-
print("Lots of output")
5+
from .neo4j_model import Neo4jModel
6+
from .recommendation_generator import RecommendationGenerator
7+
from .resume_processor import ResumeProcessor
8+
from .retrieval_engine import RetrievalEngine
9+
from .view import CLIView
1810

1911

12+
def job_recommend(resume_text, user_id):
2013
# Setup Logging
21-
import logging
2214
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
2315
logger = logging.getLogger(__name__)
24-
16+
17+
# Get Resume Input from User
18+
if not resume_text.strip():
19+
logger.error(f'No resume text provided, user_id: {user_id}.')
20+
return 'Error: No resume text provided.'
21+
2522
# Neo4j Connection Details
2623
NEO4J_URI = "neo4j+ssc://7bf5a48e.databases.neo4j.io" # Replace with your Neo4j URI
27-
NEO4J_USERNAME = "neo4j" # Replace with your Neo4j username
28-
NEO4J_PASSWORD = "oxsK7V5_86emZlYQlvCfQHfVWS95wXz29OhtU8GAdFc" # Replace with your Neo4j password
24+
NEO4J_USERNAME = "neo4j" # Replace with your Neo4j username
25+
NEO4J_PASSWORD = "oxsK7V5_86emZlYQlvCfQHfVWS95wXz29OhtU8GAdFc" # Replace with your Neo4j password
2926

3027
# Initialize Model
3128
neo4j_model = Neo4jModel(
3229
uri=NEO4J_URI,
3330
username=NEO4J_USERNAME,
3431
password=NEO4J_PASSWORD
3532
)
36-
33+
34+
node_label = "JTitle" # Adjust as needed; could be dynamic based on user input or other criteria
35+
3736
# Initialize Controller Components
3837
resume_processor = ResumeProcessor()
3938
retrieval_engine = RetrievalEngine(resume_processor, neo4j_model)
4039
recommendation_generator = RecommendationGenerator()
41-
40+
4241
# Initialize View
4342
view = CLIView()
44-
45-
# Get Resume Input from User
46-
resume_text = view.get_resume_input()
47-
48-
if not resume_text.strip():
49-
logger.error("No resume text provided.")
50-
print("Error: No resume text provided.")
51-
return
52-
53-
# Perform Mixed Retrieval for 'JD' Node Label
54-
node_label = "JD" # Adjust as needed; could be dynamic based on user input or other criteria
43+
44+
# Perform Mixed Retrieval
5545
similar_docs, graph_results = retrieval_engine.perform_mixed_retrieval(resume_text, node_label=node_label)
56-
46+
5747
if not similar_docs and not graph_results:
58-
print("No job recommendations found based on your resume.")
59-
return
60-
48+
return 'No job recommendations found based on your resume.'
49+
6150
# Generate Recommendations
6251
try:
6352
recommendations = recommendation_generator.generate_recommendations(similar_docs, graph_results)
6453
except Exception as e:
65-
print("Error: Failed to generate job recommendations.")
66-
return
67-
68-
# Display Recommendations
69-
view.display_recommendations(recommendations)
54+
return 'Error: Failed to generate job recommendations.'
7055

71-
# Close the file
72-
sys.stdout.close()
73-
74-
if __name__ == "__main__":
75-
main()
56+
# Display Recommendations
57+
return view.display_recommendations(recommendations)

0 commit comments

Comments
 (0)