File size: 3,682 Bytes
8aeb51c
60de072
df82699
 
51f379b
 
60de072
884bc6d
4f16120
ce79908
30fc153
51f379b
 
ab53231
51f379b
60de072
30fc153
6fa29da
 
51f379b
7e82822
 
 
 
 
78e6035
 
2b7dd70
78e6035
 
 
 
 
 
60de072
51f379b
 
 
 
 
 
caeca8b
 
e9a5302
51f379b
ab53231
 
 
51f379b
 
 
 
 
 
 
 
 
 
 
 
 
caeca8b
4911b2b
e9a5302
91c8243
266c81e
51f379b
 
c767ae8
4911b2b
51f379b
 
 
 
60de072
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import os
from ibm_watson_machine_learning.foundation_models import Model
from ibm_watson_machine_learning.metanames import GenTextParamsMetaNames as GenParams
from ibm_watson_machine_learning.foundation_models.utils.enums import ModelTypes, DecodingMethods
import gradio as gr


# Set up the API key and project ID for IBM Watson
watsonx_API = os.environ.get("watsonx_API") 
project_id = os.environ.get("project_id")

# Generation parameters
gen_parms = {
    "max_new_tokens": 512,  # Adjust as needed 
    "temperature": 0.7  # Adjust for creativity
}

# Model and project settings
model_id = "meta-llama/llama-2-13b-chat"

credentials={
        "apikey": watsonx_API,
        "url": "https://us-south.ml.cloud.ibm.com"
    }

model = Model(
    model_id = 'meta-llama/llama-2-13b-chat', # you can also specify like: ModelTypes.LLAMA_2_70B_CHAT
    params = gen_parms,
    credentials={
        "apikey": watsonx_API,
        "url": "https://us-south.ml.cloud.ibm.com"
    },
    project_id= project_id
    )

# Initialize the model
model = Model(model_id, credentials, gen_parms, project_id)

# Function to generate customized career advice
def generate_career_advice(field, position_name, current_qualifications, likes, skills):
    # Craft the prompt for the model 
    prompt = f"Generate a customized career advice using desired career field: {field}, \
    dream job: {position_name}, \
    current qualifications and certifications: {current_qualifications}, \
    likes: {likes}, \
    skills: {skills}. Include tips on which career paths make a good fit and are in demand, \
    what additional qualifications, courses, training or certifications to take, networking, \
    gaining experience, etc. Use a brief style and limit your answer within 512 tokens or less."

    generated_response = model.generate(prompt, gen_parms)

    # Extract the generated text
    career_advice = generated_response["results"][0]["generated_text"]
    return career_advice


# Create Gradio interface for the cover letter generation application
career_advice_app = gr.Interface(
    fn=generate_career_advice,
    allow_flagging="never", # Deactivate the flag function in gradio as it is not needed.
    inputs=[
        gr.Textbox(label="Desired Career Field (e.g., healthcare, trades, social service, etc., or enter 'not sure')", placeholder="Enter the field which you are interested in... or type 'not sure'."),
        gr.Textbox(label="Your Dream Job (e.g., nurse, personal support worker, software developer, plumber, etc., or enter 'not sure')", placeholder="Enter the name of the position you are interested in... or type 'not sure'"),
        gr.Textbox(label="Current Qualifications and or Certifications (e.g., studying in high school, high school diploma, college diploma, etc.)", placeholder="Enter your current qualifications ..."),
        gr.Textbox(label="Likes (e.g., I like working with my hands, I like to work outside, I like to help people, I like teaching, ...)", placeholder="Enter activities you like ...", lines=10),
        gr.Textbox(label="Skills (e.g., I am good at math, science, languages, computers, research, hand tools, etc.)", placeholder="Enter your skills ...", lines=10),
    ],
    outputs=gr.Textbox(label="Customized Career Advice"),
    title="Customized AI-Powered Career Advice - by Wael Nawara",
    description="This App will generate an AI-powered customized career advice based on the career field which you select, your dream job, current qualifications, likes and skills. A word of caution: even AI makes mistakes!"
)

# Launch the application
career_advice_app.launch(server_name="0.0.0.0", debug=True, server_port=7860, share=True)