# import gradio as gr
# import os
# from mistralai.client import MistralClient
# from mistralai.models.chat_completion import ChatMessage
# # Ensure the environment variable for the API key is set
# api_key = os.getenv("MISTRAL_API_KEY")
# if not api_key:
# raise ValueError("MISTRAL_API_KEY environment variable not set")
# model = "mistral-tiny"
# client = MistralClient(api_key=api_key)
# def generate_goals(input_var):
# messages = [
# ChatMessage(role="user", content=f"Generate 10 specific, industry relevant goals for {input_var} using Python and Pandas. Each goal should include a brief name and a one-sentence description of the task or skill. Focus on practical applications in educational assessment, covering areas such as data processing, statistical analysis, visualization, and advanced techniques")
# ]
# try:
# response = client.chat(model=model, messages=messages)
# content = response.choices[0].message.content
# return content
# except Exception as e:
# return f"An error occurred: {str(e)}"
# # HTML content
# html_content = """
#
#
#
#
#
# Comprehensive Exam Data Analysis with Pandas - 30 Industry Goals with Connections
#
#
#
#
# Comprehensive Exam Data Analysis with Pandas - 30 Industry Goals with Connections
#
#
#
#
#
#
#
#
# """
# # Gradio interface
# iface = gr.Interface(
# fn=generate_goals,
# inputs=gr.Textbox(label="Goal Name"),
# outputs=gr.Textbox(label="Generated Goals"),
# title="Exam Data Analysis Goals Generator",
# description="Click on a goal in the visualization to generate related goals.",
# allow_flagging="never",
# theme="default",
# css=html_content
# )
# if __name__ == "__main__":
# iface.launch()
from flask import Flask, request, jsonify, render_template_string
import os
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
app = Flask(__name__)
# Mistral AI setup
api_key = os.getenv("MISTRAL_API_KEY")
if not api_key:
raise ValueError("MISTRAL_API_KEY environment variable not set")
model = "mistral-tiny"
client = MistralClient(api_key=api_key)
def generate_goals(input_var):
messages = [
ChatMessage(role="user", content=f"Generate 5 specific, industry relevant goals for {input_var} using Python and Pandas in exam data analysis. Each goal should include a brief name and a one-sentence description of the task or skill.")
]
try:
response = client.chat(model=model, messages=messages)
return response.choices[0].message.content
except Exception as e:
return f"An error occurred: {str(e)}"
html_content = """
Exam Data Analysis Goals Generator
Exam Data Analysis Goals Generator
"""
@app.route('/')
def index():
return render_template_string(html_content)
@app.route('/generate_goals', methods=['POST'])
def generate_goals_api():
input_var = request.json['input_var']
goals = generate_goals(input_var)
return jsonify({'goals': goals})
if __name__ == "__main__":
app.run(host='0.0.0.0', port=7860)
# imp
# from http.server import HTTPServer, SimpleHTTPRequestHandler
# from pyngrok import ngrok
# import os
# from mistralai.client import MistralClient
# from mistralai.models.chat_completion import ChatMessage
# import json
# # Mistral AI setup
# api_key = os.getenv("MISTRAL_API_KEY")
# if not api_key:
# raise ValueError("MISTRAL_API_KEY environment variable not set")
# model = "mistral-tiny"
# client = MistralClient(api_key=api_key)
# def generate_goals(input_var):
# messages = [
# ChatMessage(role="user", content=f"Generate 5 specific, industry relevant goals for {input_var} using Python and Pandas in exam data analysis. Each goal should include a brief name and a one-sentence description of the task or skill.")
# ]
# try:
# response = client.chat(model=model, messages=messages)
# return response.choices[0].message.content
# except Exception as e:
# return f"An error occurred: {str(e)}"
# html_content = """
#
#
#
#
#
# Exam Data Analysis Goals Generator
#
#
#
#
# Exam Data Analysis Goals Generator
#
#
#
#
#
# """
# class MyHandler(SimpleHTTPRequestHandler):
# def do_GET(self):
# self.send_response(200)
# self.send_header('Content-type', 'text/html')
# self.end_headers()
# self.wfile.write(html_content.encode())
# def do_POST(self):
# if self.path == '/generate_goals':
# content_length = int(self.headers['Content-Length'])
# post_data = self.rfile.read(content_length)
# data = json.loads(post_data.decode('utf-8'))
# input_var = data['input_var']
# goals = generate_goals(input_var)
# self.send_response(200)
# self.send_header('Content-type', 'application/json')
# self.end_headers()
# self.wfile.write(json.dumps({'goals': goals}).encode())
# else:
# self.send_error(404)
# if __name__ == '__main__':
# port = 7860
# server = HTTPServer(('', port), MyHandler)
# public_url = ngrok.connect(port).public_url
# print(f" * ngrok tunnel \"{public_url}\" -> \"http://127.0.0.1:{port}\"")
# server.serve_forever()
# here
# from http.server import HTTPServer, SimpleHTTPRequestHandler
# import os
# from mistralai.client import MistralClient
# from mistralai.models.chat_completion import ChatMessage
# import json
# # Mistral AI setup
# api_key = os.getenv("MISTRAL_API_KEY")
# if not api_key:
# raise ValueError("MISTRAL_API_KEY environment variable not set")
# model = "mistral-tiny"
# client = MistralClient(api_key=api_key)
# def generate_goals(input_var):
# messages = [
# ChatMessage(role="user", content=f"Generate 5 specific, industry relevant goals for {input_var} using Python and Pandas in exam data analysis. Each goal should include a brief name and a one-sentence description of the task or skill.")
# ]
# try:
# response = client.chat(model=model, messages=messages)
# return response.choices[0].message.content
# except Exception as e:
# return f"An error occurred: {str(e)}"
# html_content = """
#
#
#
#
#
# Exam Data Analysis Goals Generator
#
#
#
#
# Exam Data Analysis Goals Generator
#
#
#
#
#
# """
# class MyHandler(SimpleHTTPRequestHandler):
# def do_GET(self):
# self.send_response(200)
# self.send_header('Content-type', 'text/html')
# self.end_headers()
# self.wfile.write(html_content.encode())
# def do_POST(self):
# if self.path == '/generate_goals':
# try:
# content_length = int(self.headers['Content-Length'])
# post_data = self.rfile.read(content_length)
# data = json.loads(post_data.decode('utf-8'))
# input_var = data['input_var']
# goals = generate_goals(input_var)
# response = json.dumps({'goals': goals}).encode()
# self.send_response(200)
# self.send_header('Content-type', 'application/json')
# self.send_header('Content-Length', str(len(response)))
# self.end_headers()
# self.wfile.write(response)
# except Exception as e:
# logging.error(f"Error handling POST request: {str(e)}")
# self.send_error(500, f"Internal server error: {str(e)}")
# else:
# self.send_error(404)
# def run_server(port):
# try:
# server = ThreadingHTTPServer(('0.0.0.0', port), MyHandler)
# print(f"Server running on port {port}")
# server.serve_forever()
# except Exception as e:
# logging.error(f"Error running server: {str(e)}")
# traceback.print_exc()
# if __name__ == '__main__':
# port = int(os.environ.get("PORT", 7860))
# run_server(port)