Files
Houshyar_Backend/chat/views.py
2026-02-01 16:40:43 +03:30

67 lines
2.1 KiB
Python

import requests
from django.db.models import Sum
from django.views.decorators.csrf import csrf_exempt
from rest_framework import status
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from openai import OpenAI
from schema import get_filters_from_question, apply_date_filter
API_KEY = "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" # ⚠️ جایگزین با کلیدت کن
RSI_URL='https://rsibackend.rasadyar.com/app/get_ai_response/'
client = OpenAI(api_key=API_KEY, timeout=60)
@api_view(['POST'])
@permission_classes([AllowAny])
@csrf_exempt
def get_ai_response(request):
question = request.data.get('question')
if not question:
return Response(
{"error": "Question is required"},
status=status.HTTP_400_BAD_REQUEST
)
filters_json = get_filters_from_question(question)
models_info = filters_json.get("models", [])
req_data={
"models_info":models_info
}
result_data = requests.post(
url=RSI_URL,
json=req_data,
verify=False
)
# تولید پاسخ نهایی با GPT
prompt = f"""
سوال کاربر: "{question}"
داده‌های به‌دست‌آمده:
{result_data}
لطفاً یک پاسخ کاملاً روان، خودمونی و قابل فهم برای کاربر فارسی‌زبان تولید کن.
"""
try:
response_final = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[{"role": "user", "content": prompt}]
)
answer = response_final.choices[0].message.content.strip()
except Exception as e:
print("Error generating GPT response:", e)
answer = "متأسفانه در تولید پاسخ مشکلی پیش آمد."
return Response(
{
"answer": answer,
"data": result_data
},
status=status.HTTP_200_OK
)