File size: 3,490 Bytes
f71f174 509ca73 423a42f 509ca73 423a42f 509ca73 6d8186b 509ca73 25f7cba 7497699 423a42f 509ca73 423a42f 509ca73 423a42f 24c6700 509ca73 423a42f 509ca73 10928c5 423a42f 509ca73 423a42f 24c6700 423a42f 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 |
from flask import Flask, request, jsonify
from huggingface_hub import InferenceClient
import gradio as gr
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('/recommend', methods=['POST'])
def recommend(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')
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 course recommendation for student based on below details.
Degree: {user_degree}
Stream: {user_stream}
Current Semester: {user_semester}
Based on above details recommend the courses that realtes to above details
Note: Output should bevalid 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
yield output
return jsonify({"ans":output})
@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) |