Spaces:
Runtime error
Runtime error
import os | |
import chainlit as cl | |
async def need_file_upload(): | |
""" | |
When the user's question mentions handling files, you need to upload files, you can call this function. | |
Parameters: None | |
""" | |
if not os.path.exists('./tmp'): | |
os.mkdir('./tmp') | |
files = await cl.AskFileMessage( | |
content="Please upload a text file to begin!", | |
max_size_mb=50, | |
accept=[ | |
"text/plain", | |
"image/png", | |
"image/jpeg", | |
"application/pdf", | |
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", # for .xlsx files | |
"application/vnd.ms-excel", # for .xls files | |
"text/csv", # for .csv files | |
# More MIME types here as needed. | |
]).send() | |
file = files[0] | |
# 保存文件到paths目录下 | |
# 判断paths目录是否存在 | |
file_path = f"./tmp/{file.name}" | |
# 保存文件 | |
content = file.content | |
file_name = file.name | |
file_type = file.type | |
# 保存文件 | |
# content是bytes类型 | |
with open(file_path, "wb") as f: | |
f.write(content) | |
return { | |
'type': 'file', | |
'path': file_path, | |
'name': file_name, | |
'file_type': file_type | |
} | |
async def show_images(paths: str): | |
""" | |
If your return contains images in png or jpg format, you can call this function to display the images. | |
Parameters: paths: The paths of the images as a comma-separated string.(required) | |
""" | |
path_list = paths.split(',') | |
elments = [] | |
for i, path in enumerate(path_list): | |
tmp_image = cl.Image(name=f"image{i}", | |
path=path.strip(), | |
display="inline") | |
tmp_image.size = "large" | |
elments.append(tmp_image) | |
await cl.Message(content="", | |
elements=elments).send() # type: ignore | |
return {'description': '图片已经显示成功了,下面的回复中不再需要展示它了'} | |