Bhanu-Chander-ABB commited on
Commit
872fb01
·
1 Parent(s): 8e63348

modified process_attachment

Browse files
Files changed (1) hide show
  1. app.py +12 -6
app.py CHANGED
@@ -4,6 +4,7 @@ import requests
4
  import tempfile
5
  import mimetypes
6
  import base64
 
7
  import pandas as pd
8
  import datetime
9
  from langchain.tools import tool
@@ -270,14 +271,19 @@ def python_executor(code: str) -> str:
270
 
271
  # --- TOOL 15: Attachment Processing Tool ---
272
  @tool
273
- def process_attachment(file_bytes: bytes, filename: str) -> str:
274
  """
275
- Processes an input attachment (audio, image, or video) and returns extracted text or a summary suitable for LLM input.
276
- - For audio: transcribes to text using Whisper.
277
- - For image: encodes as base64 and returns a prompt for LLMs that support image input.
278
- - For video: extracts audio, transcribes, and returns the transcript.
279
- - For unsupported types: returns an error message.
280
  """
 
 
 
 
 
 
 
 
281
  # Detect file type
282
  mime_type, _ = mimetypes.guess_type(filename)
283
  if not mime_type:
 
4
  import tempfile
5
  import mimetypes
6
  import base64
7
+ import json
8
  import pandas as pd
9
  import datetime
10
  from langchain.tools import tool
 
271
 
272
  # --- TOOL 15: Attachment Processing Tool ---
273
  @tool
274
+ def process_attachment(input_str: str) -> str:
275
  """
276
+ Processes an input attachment (audio, image, or video) and returns extracted text or a summary suitable for LLM input.
277
+ This function accepts a JSON string with keys: 'file_bytes' (base64), and 'filename'. For unsupported file types the function returns an error message.
 
 
 
278
  """
279
+
280
+ try:
281
+ data = json.loads(input_str)
282
+ file_bytes = base64.b64decode(data["file_bytes"])
283
+ filename = data["filename"]
284
+ except Exception as e:
285
+ return f"error: {e}"
286
+
287
  # Detect file type
288
  mime_type, _ = mimetypes.guess_type(filename)
289
  if not mime_type: