ソースを参照

schedule meeting

kevin 10 ヶ月 前
コミット
5f17c10339
1 ファイル変更11 行追加6 行削除
  1. 11 6
      main.py

+ 11 - 6
main.py

@@ -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]