ai: Hanlde file upload issue.
Browse files
jarvis.py
CHANGED
|
@@ -165,18 +165,25 @@ async def respond_async(multi, history, model_display, sess, custom_prompt):
|
|
| 165 |
return
|
| 166 |
inp = ""
|
| 167 |
for f in msg["files"]:
|
| 168 |
-
|
| 169 |
-
|
|
|
|
|
|
|
|
|
|
| 170 |
if msg["text"]:
|
| 171 |
inp += msg["text"]
|
| 172 |
history.append([inp, ""])
|
| 173 |
ai = await chat_with_model_async(history, inp, model_display, sess, custom_prompt)
|
| 174 |
history[-1][1] = ""
|
| 175 |
def to_str(d):
|
| 176 |
-
if isinstance(d, (str, int, float)):
|
| 177 |
-
|
| 178 |
-
if isinstance(d,
|
| 179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
return repr(d)
|
| 181 |
for c in ai:
|
| 182 |
history[-1][1] += to_str(c)
|
|
|
|
| 165 |
return
|
| 166 |
inp = ""
|
| 167 |
for f in msg["files"]:
|
| 168 |
+
if isinstance(f, dict):
|
| 169 |
+
fp = f.get("data", f.get("name", ""))
|
| 170 |
+
else:
|
| 171 |
+
fp = f
|
| 172 |
+
inp += f"{Path(fp).name}\n\n{extract_file_content(fp)}\n\n"
|
| 173 |
if msg["text"]:
|
| 174 |
inp += msg["text"]
|
| 175 |
history.append([inp, ""])
|
| 176 |
ai = await chat_with_model_async(history, inp, model_display, sess, custom_prompt)
|
| 177 |
history[-1][1] = ""
|
| 178 |
def to_str(d):
|
| 179 |
+
if isinstance(d, (str, int, float)):
|
| 180 |
+
return str(d)
|
| 181 |
+
if isinstance(d, bytes):
|
| 182 |
+
return d.decode("utf-8", errors="ignore")
|
| 183 |
+
if isinstance(d, (list, tuple)):
|
| 184 |
+
return "".join(map(to_str, d))
|
| 185 |
+
if isinstance(d, dict):
|
| 186 |
+
return json.dumps(d, ensure_ascii=False)
|
| 187 |
return repr(d)
|
| 188 |
for c in ai:
|
| 189 |
history[-1][1] += to_str(c)
|