from flask import Flask, request, jsonify import pymongo import requests import json app = Flask(__name__) # MongoDB bağlantısı mongo_client = pymongo.MongoClient('mongodb://localhost:27017/') db = mongo_client['EgitimDatabase'] collection = db['test'] # Model API Endpoint MODEL_API_URL = "https://api.example.com/model" # Hugging Face API URL veya başka bir model URL'si MODEL_API_KEY = "YOUR_API_KEY" # API anahtarınız def get_model_prediction(title, keywords, subheadings): headers = { 'Authorization': f'Bearer {MODEL_API_KEY}', 'Content-Type': 'application/json' } payload = { 'title': title, 'keywords': keywords, 'subheadings': subheadings } try: response = requests.post(MODEL_API_URL, headers=headers, json=payload) response.raise_for_status() # HTTP hatalarını yakalar result = response.json() return result except requests.exceptions.HTTPError as http_err: return {'error': f'HTTP error occurred: {http_err}'} except Exception as err: return {'error': f'Other error occurred: {err}'} @app.route('/predict', methods=['POST']) def predict(): data = request.json title = data.get('title') keywords = data.get('keywords') subheadings = data.get('subheadings') # Giriş verilerini doğrulama if not title or not keywords or not subheadings: return jsonify({'error': 'Title, keywords, and subheadings are required'}), 400 # MongoDB'den ilgili verileri çekme query = { 'title': title, 'keywords': {'$in': keywords.split(',')}, 'subheadings': {'$in': subheadings.split(',')} } try: documents = list(collection.find(query)) except Exception as e: return jsonify({'error': f'Error querying MongoDB: {e}'}), 500 # Model API'den tahmin alma predictions = [] for doc in documents: result = get_model_prediction(doc['title'], doc['keywords'], doc['subheadings']) predictions.append(result) # Sonuçları döndürme response = { 'title': title, 'keywords': keywords, 'subheadings': subheadings, 'predictions': predictions } return jsonify(response) if __name__ == "__main__": app.run(host='0.0.0.0', port=8080)