async def list_docs( knowledge_base_id: Optional[str] = Query(default=None, description="Knowledge Base Name", example="kb1") ): if knowledge_base_id: local_doc_folder = get_folder_path(knowledge_base_id) if not os.path.exists(local_doc_folder): return {"code": 1, "msg": f"Knowledge base {knowledge_base_id} not found"} all_doc_names = [ doc for doc in os.listdir(local_doc_folder) if os.path.isfile(os.path.join(local_doc_folder, doc)) ] return ListDocsResponse(data=all_doc_names) else: if not os.path.exists(UPLOAD_ROOT_PATH): all_doc_ids = [] else: all_doc_ids = [ folder for folder in os.listdir(UPLOAD_ROOT_PATH) if os.path.isdir(os.path.join(UPLOAD_ROOT_PATH, folder)) ] return ListDocsResponse(data=all_doc_ids)
时间: 2024-04-27 17:24:12 浏览: 82
Base64jiami.rar_asp base64_asp 加密_base64_base64 asp
这是一个 Python 函数,用于列出文档列表。该函数包含一个可选的参数 knowledge_base_id,如果提供了该参数,则会列出该知识库中的所有文档。否则,将列出所有知识库中的文档名并返回。函数首先检查提供的知识库 ID 是否存在,如果存在,则获取该知识库中的本地文档文件夹路径。然后,它检查该文件夹是否存在。如果不存在,则返回一个包含错误消息的字典。如果该文件夹存在,则使用 os.listdir() 函数获取该文件夹中的所有文件名。然后,它使用列表推导式过滤掉所有非文件类型的对象,并将剩余的文件名添加到一个列表中。最后,函数返回一个 ListDocsResponse 对象,其中包含文档名的列表。如果没有提供知识库 ID,则获取所有知识库中的文档名并返回。
阅读全文