Spaces:
Sleeping
Sleeping
| import os | |
| from openai import OpenAI | |
| from flask import Flask, request, jsonify, render_template, send_file | |
| app = Flask(__name__) | |
| client = OpenAI( | |
| base_url="https://router.huggingface.co/v1", | |
| api_key=os.environ["HF_TOKEN"], | |
| ) | |
| app = Flask(__name__) | |
| def index(): | |
| return render_template("index.html") | |
| def write(): | |
| WRITE_PROMPT = """ | |
| You are TaskBot AI created by Advay Singh. | |
| Task: | |
| Write high-quality content based on the user's request. | |
| Rules: | |
| - Output only the requested content. | |
| - Do not say "Here is your essay/speech". | |
| - Do not chat with the user. | |
| """ | |
| if request.method == "GET": | |
| return render_template("write.html") | |
| if request.method == "POST": | |
| # Getting data from form | |
| question = request.form.get("question", "").strip() | |
| types = request.form.get("type", "").strip() | |
| word_limit = request.form.get("word_limit", "").strip() | |
| if not question: | |
| return jsonify({"error": "Please provide a question."}), 400 | |
| if word_limit: | |
| try: | |
| word_limit = float(word_limit) | |
| except ValueError: | |
| return jsonify({"error": "Word limit must be a number."}), 400 | |
| else: | |
| word_limit = None | |
| try: | |
| completion = client.chat.completions.create( | |
| model="Qwen/Qwen2.5-7B-Instruct:together", | |
| messages=[ | |
| { | |
| "role": "system", | |
| "content": WRITE_PROMPT | |
| }, | |
| { | |
| "role": "user", | |
| "content": f"Write a {types if types else 'paragraph'} on the topic '{question} in about {word_limit} words.'" | |
| } | |
| ], | |
| ) | |
| response = completion.choices[0].message.content | |
| print(f"WRITE ABOUT: \n{question} in {types} in minimum {word_limit}\n------------------------- \n AI RESPONSE: {response} \n--------------------------") | |
| return jsonify({"answer": response}) | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return jsonify({"error": "An error occurred while processing your request."}), 500 | |
| def summarize(): | |
| SUMMARIZE_PROMPT = """ | |
| You are TaskBot AI created by Advay Singh. | |
| Task: | |
| Summarize the given text. | |
| Rules: | |
| - Output ONLY the summary. | |
| - Do not add introductions like "Here is the summary". | |
| - Do not chat with the user. | |
| """ | |
| if request.method == "GET": | |
| return render_template("summarize.html") | |
| if request.method == "POST": | |
| question = request.form.get("question", "").strip() | |
| types = request.form.get("type") | |
| minimum_lines_points = request.form.get("num_of_lines_points") | |
| if not question: | |
| return jsonify({"error": "Please provide a question."}), 400 | |
| try: | |
| completion = client.chat.completions.create( | |
| model="Qwen/Qwen2.5-7B-Instruct:together", | |
| messages=[ | |
| { | |
| "role": "system", | |
| "content": SUMMARIZE_PROMPT | |
| }, | |
| { | |
| "role": "user", | |
| "content": f"SUMMARIZE: \n{question} in {types} in minimum {minimum_lines_points} {types}" | |
| } | |
| ], | |
| ) | |
| response = completion.choices[0].message.content | |
| print(f"SUMMARIZE: \n{question} in {types} in minimum {minimum_lines_points} {types}\n------------------------- \n AI RESPONSE: {response} \n--------------------------") | |
| return jsonify({"answer": response}) | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return jsonify({"error": "An error occurred while processing your request."}), 500 | |
| def translate(): | |
| TRANSLATE_PROMPT = """ | |
| You are TaskBot AI created by Advay Singh. | |
| Task: | |
| Translate the given text to the requested language. | |
| Rules: | |
| - Output ONLY the translated text. | |
| - Do not add explanations. | |
| - Do not say "Here is the translation" or something else like that, just give the answer directly. | |
| """ | |
| if request.method == "GET": | |
| return render_template("translate.html") | |
| if request.method == "POST": | |
| question = request.form.get("question", "").strip() | |
| translate_from = request.form.get("translate_from", "").strip() | |
| translate_to = request.form.get("translate_to", "").strip() | |
| if not question: | |
| return jsonify({"error": "Please provide a question."}), 400 | |
| try: | |
| completion = client.chat.completions.create( | |
| model="Qwen/Qwen2.5-7B-Instruct:together", | |
| messages=[ | |
| { | |
| "role": "system", | |
| "content": TRANSLATE_PROMPT | |
| }, | |
| { | |
| "role": "user", | |
| "content": f"translate {question} from {translate_from} to {translate_to}." | |
| } | |
| ], | |
| ) | |
| response = completion.choices[0].message.content | |
| print(f"Translate: {question} from {translate_from} to {translate_to}\n------------------------- \n AI RESPONSE: {response} \n--------------------------") | |
| return jsonify({"answer": response}) | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return jsonify({"error": "An error occurred while processing your request."}), 500 | |
| def ask(): | |
| CHAT_PROMPT = """ | |
| You are TaskBot AI created by Advay Singh. | |
| Respond normally and conversationally. | |
| Never mention the underlying AI model. | |
| """ | |
| question = request.form.get("question", "").strip() | |
| if not question: | |
| return jsonify({"error": "Please provide a question."}), 400 | |
| try: | |
| completion = client.chat.completions.create( | |
| model="Qwen/Qwen2.5-7B-Instruct:together", | |
| messages=[ | |
| { | |
| "role": "system", | |
| "content": CHAT_PROMPT | |
| }, | |
| { | |
| "role": "user", | |
| "content": f"{question}" | |
| } | |
| ], | |
| ) | |
| response = completion.choices[0].message.content | |
| print(f"QUESTION: \n{question} \n-------------------------------- AI RESPONSE: \n{response} \n --------------------------------") | |
| return jsonify({"answer": response}) | |
| except Exception as e: | |
| print(f"Error: {e}") | |
| return jsonify({"error": "An error occurred while processing your request."}), 500 | |
| if __name__ == '__main__': | |
| app.run(host="0.0.0.0", port=7860) |