update get_ai_response

This commit is contained in:
2026-02-01 16:51:45 +03:30
parent 06014b267f
commit 1532cb4ebf
16 changed files with 9 additions and 79 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -148,84 +148,8 @@ MODELS_SCHEMA = {
}
}
from datetime import datetime, timedelta
from django.utils import timezone
def apply_date_filter(queryset, date_filter):
if not date_filter:
return queryset
field = date_filter.get("field", "Date")
filter_type = date_filter.get("type")
value = date_filter.get("value")
now = timezone.now()
# امروز
if filter_type == "today":
start = now.replace(hour=0, minute=0, second=0, microsecond=0)
end = start + timedelta(days=1)
return queryset.filter(
**{f"{field}__gte": start, f"{field}__lt": end}
)
# دیروز
if filter_type == "yesterday":
start = (now - timedelta(days=1)).replace(
hour=0, minute=0, second=0, microsecond=0
)
end = start + timedelta(days=1)
return queryset.filter(
**{f"{field}__gte": start, f"{field}__lt": end}
)
# n روز گذشته
if filter_type == "last_n_days" and value:
start = now - timedelta(days=int(value))
return queryset.filter(**{f"{field}__gte": start})
# این هفته
if filter_type == "this_week":
start = now - timedelta(days=now.weekday())
start = start.replace(hour=0, minute=0, second=0, microsecond=0)
return queryset.filter(**{f"{field}__gte": start})
# این ماه
if filter_type == "this_month":
start = now.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
return queryset.filter(**{f"{field}__gte": start})
# n ماه گذشته
if filter_type == "last_n_month" and value:
start = now
for _ in range(int(value)):
start = (start.replace(day=1) - timedelta(days=1)).replace(day=1)
start = start.replace(hour=0, minute=0, second=0, microsecond=0)
return queryset.filter(**{f"{field}__gte": start})
# این سال
if filter_type == "this_year":
start = now.replace(
month=1, day=1, hour=0, minute=0, second=0, microsecond=0
)
return queryset.filter(**{f"{field}__gte": start})
# n سال گذشته
if filter_type == "last_n_year" and value:
start = now.replace(
year=now.year - int(value),
month=1,
day=1,
hour=0,
minute=0,
second=0,
microsecond=0
)
return queryset.filter(**{f"{field}__gte": start})
return queryset
def clean_gpt_json(text):
"""

View File

@@ -3,5 +3,5 @@ from django.urls import path
from chat.views import get_ai_response
urlpatterns = [
path("get_ai_response/", get_ai_response),
path("ask/", get_ai_response),
]

View File

@@ -1,5 +1,4 @@
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
@@ -7,7 +6,7 @@ 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
from chat.schema import get_filters_from_question
API_KEY = "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" # ⚠️ جایگزین با کلیدت کن
RSI_URL='https://rsibackend.rasadyar.com/app/get_ai_response/'
@@ -37,6 +36,7 @@ def get_ai_response(request):
verify=False
)
result_data = result_data.json()
# تولید پاسخ نهایی با GPT
prompt = f"""