cconsti commited on
Commit
f2183a0
·
verified ·
1 Parent(s): 06395ba

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from flask import Flask, request, jsonify
3
+ import openai
4
+
5
+ app = Flask(__name__)
6
+
7
+ # Load your OpenAI API key
8
+ # - Either from environment variables or from a .env file using dotenv
9
+ openai.api_key = os.environ.get("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")
10
+
11
+ @app.route("/generate-cover-letter", methods=["POST"])
12
+ def generate_cover_letter():
13
+ # Example JSON payload:
14
+ # {
15
+ # "position": "Data Scientist",
16
+ # "company": "BigCorp",
17
+ # "skills": "Machine Learning, Python, R",
18
+ # "experience_years": 5,
19
+ # "candidate_name": "John Doe"
20
+ # }
21
+
22
+ data = request.json
23
+ position = data.get("position", "Software Engineer")
24
+ company = data.get("company", "SomeCompany")
25
+ skills = data.get("skills", "Python, Data Analysis")
26
+ experience_years = data.get("experience_years", 3)
27
+ candidate_name = data.get("candidate_name", "Candidate")
28
+
29
+ # Construct a prompt (prompt engineering) to guide the model
30
+ prompt = f"""
31
+ You are a professional cover letter writing assistant.
32
+ The user is applying for the position of {position} at {company}.
33
+ They have {experience_years} years of experience in {skills}.
34
+ Their name is {candidate_name}.
35
+
36
+ Please write a compelling, professional cover letter in the first person
37
+ that highlights relevant skills, experience, and achievements.
38
+ Ensure the letter is clear, concise, and well-structured.
39
+ """
40
+
41
+ # Call the OpenAI API
42
+ try:
43
+ response = openai.ChatCompletion.create(
44
+ model="gpt-4"
45
+ messages=[
46
+ {"role": "system", "content": "You are an expert cover letter writer."},
47
+ {"role": "user", "content": prompt}
48
+ ],
49
+ temperature=0.7,
50
+ max_tokens=600
51
+ )
52
+ generated_text = response["choices"][0]["message"]["content"].strip()
53
+
54
+ return jsonify({
55
+ "cover_letter": generated_text
56
+ }), 200
57
+ except Exception as e:
58
+ return jsonify({"error": str(e)}), 500
59
+
60
+ if __name__ == "__main__":
61
+ # Run Flask app
62
+ app.run(host="0.0.0.0", port=5000, debug=True)