Commit 2fcca6a
Changed files (1)
src
llm
src/llm/contexts.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import base64
+import contextlib
import re
from pathlib import Path
from typing import TYPE_CHECKING
@@ -125,8 +126,18 @@ async def single_context(client: Client, message: Message) -> dict:
async def base64_media(client: Client, message: Message) -> dict:
data: BytesIO = await client.download_media(message, in_memory=True) # type: ignore
logger.debug(f"Downloaded message media: {data.name}")
+
+ ext = Path(data.name).suffix.removeprefix(".").replace("jpg", "jpeg")
+
+ # image, video
+ b64_encoding = base64.b64encode(data.getvalue()).decode("utf-8")
+
+ # text document
+ value = ""
+ with contextlib.suppress(Exception):
+ value = data.getvalue().decode("utf-8")
return {
- "ext": Path(data.name).suffix.removeprefix(".").replace("jpg", "jpeg"),
- "value": data.getvalue().decode("utf-8"),
- "base64": base64.b64encode(data.getvalue()).decode("utf-8"),
+ "ext": ext,
+ "base64": b64_encoding,
+ "value": value,
}