|
@@ -148,11 +148,11 @@ def vision(message, image_url=None, image_b64=None):
|
|
|
result = {"status": "error", "message": "Please try again"}, 405
|
|
|
return result
|
|
|
|
|
|
-def suggest_schedule(sched, message: list, assistant_id=None, timestamp=None):
|
|
|
+def suggest_schedule(sched: list, message: list, assistant_id=None, timestamp=None):
|
|
|
result = {}
|
|
|
if timestamp is None:
|
|
|
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
|
|
- message[-1]["content"] = f"{message[-1]['content']} Sekarang jam {timestamp}.\n\n{json.dumps(sched)}"
|
|
|
+ message[-1]["content"] = f"{message[-1]['content']} Sekarang jam {timestamp}. Berikut contoh form nya jika ingin mengisi meeting:\nTitle:\nDeskripsi:\nWaktu Mulai:\nWaktu Selesai:\nLokasi:\nPartisipan: @User1 @User2 @User3\n\nBerikut jadwalnya:\n{json.dumps(sched)}"
|
|
|
try:
|
|
|
if assistant_id:
|
|
|
runs = app.openai_client.beta.threads.create_and_run_poll(
|
|
@@ -186,9 +186,13 @@ def suggest_schedule(sched, message: list, assistant_id=None, timestamp=None):
|
|
|
return result
|
|
|
|
|
|
|
|
|
-def convert_to_schedule(message: list):
|
|
|
+def convert_to_schedule(message: list, sched: list = None):
|
|
|
result = {}
|
|
|
- message[-1]["content"] = f'{message[-1]["content"]} Ubah menjadi format json seperti berikut:\n\n{{"start_time": "2025-10-01 11:00", "end_time": "2025-10-01 13:00", "description": "Deskripsi kegiatan" }}'
|
|
|
+ if sched is not None:
|
|
|
+ message[-1][
|
|
|
+ "content"] = f'{message[-1]["content"]}\n\nBerikut jadwalnya:\n{sched}\n\n Jika tidak ada bentrok jadwal keluarkan menjadi format json seperti berikut:\n\n{{"start_time": "2025-10-01 11:00", "end_time": "2025-10-01 13:00", "title": "Judul kegiatan", "description": "Deskripsi kegiatan", "location": "Lokasi kegiatan" }}\n\nJika bentrok keluarkan informasi dalam bentuk json sebagai berikut:\n\n{{"role": "assistant", "content": "Contoh pesan jadwal bentrok"}}'
|
|
|
+ else:
|
|
|
+ message[-1]["content"] = f'{message[-1]["content"]} Ubah menjadi format json seperti berikut:\n\n{{"start_time": "2025-10-01 11:00", "end_time": "2025-10-01 13:00", "title": "Judul Kegiatan", "description": "Deskripsi kegiatan", "location": "Lokasi kegiatan" }}'
|
|
|
try:
|
|
|
json_response = app.openai_client.chat.completions.create(
|
|
|
model="gpt-4o",
|
|
@@ -275,7 +279,7 @@ def gpt():
|
|
|
chat_model = assistant.model
|
|
|
else:
|
|
|
chat_messages = app.chat_messages.copy()
|
|
|
- if 'schedule' in json_payload:
|
|
|
+ if 'schedule' in json_payload and 'convert_schedule' not in json_payload:
|
|
|
timestamp = None
|
|
|
if 'timestamp' in json_payload:
|
|
|
timestamp = json_payload["timestamp"]
|
|
@@ -283,8 +287,9 @@ def gpt():
|
|
|
message = json_payload["payload"].copy()
|
|
|
return suggest_schedule(sched, message, assistant_id, timestamp)
|
|
|
elif 'convert_schedule' in json_payload:
|
|
|
+ sched = json_payload["schedule"].copy() if 'schedule' in json_payload else None
|
|
|
if json_payload['convert_schedule'] == "1":
|
|
|
- return convert_to_schedule(json_payload['payload'].copy())
|
|
|
+ return convert_to_schedule(json_payload['payload'].copy(), sched)
|
|
|
json_payload = json_payload['payload']
|
|
|
if isinstance(json_payload, dict):
|
|
|
json_payload = [json_payload]
|