famfin-api / app /services /date_extractor.py
AhmadYarAI's picture
Integrate the Open AI
9edd781
import json
from datetime import datetime
from openai import OpenAI
from app.core.config import settings
SYSTEM_PROMPT = """
Extract the month and year from the user message.
Return strictly in JSON format:
{
"year": 2025,
"month": 12
}
If no date is found, return current month and year.
"""
class DateExtractor:
def __init__(self):
if not settings.OPENAI_API_KEY:
self.client = None
else:
self.client = OpenAI(api_key=settings.OPENAI_API_KEY)
def extract_month_year(self, user_message: str):
now = datetime.utcnow()
if not self.client:
return {
"year": now.year,
"month": now.month
}
try:
response = self.client.chat.completions.create(
model=settings.OPENAI_MODEL,
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": user_message}
],
temperature=0
)
content = response.choices[0].message.content.strip()
parsed = json.loads(content)
return parsed
except Exception:
return {
"year": now.year,
"month": now.month
}