Browse Source

feat: support time format (#4138)

Yeuoly 11 months ago
parent
commit
e7fe7ec0f6

+ 4 - 3
api/core/tools/provider/builtin/time/tools/current_time.py

@@ -17,11 +17,12 @@ class CurrentTimeTool(BuiltinTool):
         """
         # get timezone
         tz = tool_parameters.get('timezone', 'UTC')
+        fm = tool_parameters.get('format') or '%Y-%m-%d %H:%M:%S %Z'
         if tz == 'UTC':
-            return self.create_text_message(f'{datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S %Z")}')
-
+            return self.create_text_message(f'{datetime.now(timezone.utc).strftime(fm)}')
+        
         try:
             tz = pytz_timezone(tz)
         except:
             return self.create_text_message(f'Invalid timezone: {tz}')
-        return self.create_text_message(f'{datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S %Z")}')
+        return self.create_text_message(f'{datetime.now(tz).strftime(fm)}')

+ 13 - 0
api/core/tools/provider/builtin/time/tools/current_time.yaml

@@ -12,6 +12,19 @@ description:
     pt_BR: A tool for getting the current time.
   llm: A tool for getting the current time.
 parameters:
+  - name: format
+    type: string
+    required: false
+    label:
+      en_US: Format
+      zh_Hans: 格式
+      pt_BR: Format
+    human_description:
+      en_US: Time format in strftime standard.
+      zh_Hans: strftime 标准的时间格式。
+      pt_BR: Time format in strftime standard.
+    form: form
+    default: "%Y-%m-%d %H:%M:%S"
   - name: timezone
     type: select
     required: false