Spaces:
Sleeping
Sleeping
File size: 3,585 Bytes
f71f174 509ca73 423a42f 822dfd5 509ca73 423a42f 509ca73 6d8186b 509ca73 25f7cba 7497699 423a42f 8b77a26 772d03e e60d9fc 24c6700 772d03e 24c6700 25f7cba 423a42f c34d039 24c6700 25f7cba 24c6700 25f7cba 24c6700 ef1e39e 423a42f 24c6700 423a42f 24c6700 509ca73 |
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
from flask import Flask, request, jsonify
from huggingface_hub import InferenceClient
client = InferenceClient(
"mistralai/Mistral-7B-Instruct-v0.1"
)
app = Flask(__name__)
file_path = "mentor.txt"
with open(file_path, "r") as file:
mentors_data = file.read()
@app.route('/')
def home():
return jsonify({"message": "Welcome to the Recommendation API!"})
def format_prompt(message):
prompt = "<s>"
prompt += f"[INST] {message} [/INST]"
prompt += "</s>"
return prompt
@app.route('/get_course', methods=['POST'])
def recommend():
temperature = 0.9
max_new_tokens = 256
top_p = 0.95
repetition_penalty = 1.0
if request.method == 'POST':
content = request.json
user_degree = content.get('degree')
user_stream = content.get('stream')
user_semester = content.get('semester')
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
prompt = f""" prompt:
You need to act like as recommendation engine for course recommendation for a student based on below details.
Degree: {user_degree}
Stream: {user_stream}
Current Semester: {user_semester}
Based on above details recommend the courses that relate to the above details
Note: Output should be valid json format in below format:
{{"course1:course_name, course2:course_name, course3:course_name,...}}
"""
formatted_prompt = format_prompt(prompt)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
for response in stream:
output += response.token.text
return jsonify({"ans": output})
else:
return jsonify({"error": "Invalid request method"})
@app.route('/get_mentor', methods=['POST'])
def mentor():
temperature=0.9
max_new_tokens=256
top_p=0.95
repetition_penalty=1.0
content = request.json
user_degree = content.get('degree')
user_stream = content.get('stream')
user_semester = content.get('semester')
courses = content.get('courses')
temperature = float(temperature)
if temperature < 1e-2:
temperature = 1e-2
top_p = float(top_p)
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
prompt = f""" prompt:
You need to act like as recommendataion engine for mentor recommendation for student based on below details also the list of mentors with their experience is attached.
Degree: {user_degree}
Stream: {user_stream}
Current Semester: {user_semester}
courses opted:{courses}
Mentor list= {mentors_data}
Based on above details recommend the mentor that realtes to above details
Note: Output should be valid json format in below format:
{{"mentor1:mentor_name,mentor2:mentor_name,mentor3:mentor_name,...}}
"""
formatted_prompt = format_prompt(prompt)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
for response in stream:
output += response.token.text
yield output
return jsonify({"ans":output})
if __name__ == '__main__':
app.run(debug=True) |