Skip to main content
Glama

baidu-ai-search

Official
by baidubce
update_lib.py7.33 kB
import subprocess def mv_new_md(input_filename, output_filename): """ 将新生成的Markdown文件移动到目标位置并删除原文件。 Args: input_filename (str): 目标文件名。 output_filename (str): 新生成的Markdown文件名。 Returns: None """ command = ['mv', output_filename, input_filename] subprocess.run(command, check=True) command = ['rm', '-rf', output_filename] subprocess.run(command, check=True) def process_line_for_assistant(line): """ 处理一行文本以供助手使用。 Args: line (str): 要处理的文本行。 Returns: str or None: 如果行中包含'module'字段且不包含"subpackages"或"submodules",则返回处理后的行。 否则返回None表示应该删除该行。 说明: 1. 仅提取存在'module'字段且不包含"subpackages"或"submodules"的行,并返回格式处理之后的行。 2. 处理后的行格式为"- [模块名](链接)",其中模块名为文本行中最后一个点后的内容, 链接为原文本行中的链接部分。 3. 如果模块名在指定的模块列表中('assistants', 'files', 'messages', 'runs', 'threads'), 则返回处理后的行,否则返回None。 """ # 仅提取存在module字段且不包含"subpackages"或"submodules"的行,并返回格式处理之后的行 if 'module' in line.lower() and 'subpackages' not in line.lower() and 'submodules' not in line.lower(): open_module = ('assistants', 'files', 'messages', 'runs', 'threads') parts = line.split('](') new_name = parts[0].split(' module')[0].split('.')[-1] if new_name in open_module: return f"- [{new_name}]({parts[-1]}" else: return None else: # 如果行中没有"module",返回None表示应该删除该行 return None def process_line_for_components(line): """ 对给定的行进行组件处理。 Args: line (str): 需要处理的行。 Returns: str or None: 处理后的行。如果行中没有包含"module"字段,或者包含"subpackages"或"submodules",则返回None,表示应该删除该行。 """ # 仅提取存在module字段且不包含"subpackages"或"submodules"的行,并返回格式处理之后的行 if 'module' in line.lower() and 'subpackages' not in line.lower() and 'submodules' not in line.lower(): parts = line.split('](') new_names = parts[0].split(' module')[0].split('.') if len(new_names) == 5: return f"- [{new_names[-2]}]({parts[-1]}" else: if new_names[-3] == 'llms': return f"- [{new_names[-2]}--(LLM)]({parts[-1]}" elif new_names[-3] == 'retriever': return f"- [{new_names[-2]}--(retriever)]({parts[-1]}" elif new_names[-3] == 'gbi': return f"- [{new_names[-2]}--(GBI)]({parts[-1]}" else: # 如果行中没有"module",返回None表示应该删除该行 return None def process_line_for_console(line): """ 对给定行进行格式处理,并返回处理后的行。 Args: line (str): 需要处理的行文本。 Returns: str: 处理后的行文本,如果行应被删除则返回None。 说明: 该函数仅处理包含"module"字段且不包含"subpackages"或"submodules"的行。 对于包含"module"的行,会提取模块名并返回格式化后的Markdown链接。 如果模块名是"data_class",则直接返回None。 如果行中包含"(appbuilder.core.console.knowledge_base.md)",则返回固定的Markdown链接。 如果行中不包含"module",则返回None表示该行应被删除。 """ # 仅提取存在module字段且不包含"subpackages"或"submodules"的行,并返回格式处理之后的行 if 'module' in line.lower() and 'subpackages' not in line.lower() and 'submodules' not in line.lower(): parts = line.split('](') new_names = parts[0].split(' module')[0].split('.') if new_names[-1] == 'data_class': return None else: return f"- [{new_names[-1]}]({parts[-1]}" elif '(appbuilder.core.console.knowledge_base.md)' in line: return "- [knowledge_base](appbuilder.core.console.knowledge_base.md)" else: # 如果行中没有"module",返回None表示应该删除该行 return None def process_file_for_assistant(input_filename, output_filename): """ 为助手处理文件。 Args: input_filename (str): 输入文件名。 output_filename (str): 输出文件名。 Returns: None """ with open(input_filename, 'r') as file: lines = file.readlines() new_lines = [] for line in lines: new_line = process_line_for_assistant(line.strip()) if new_line: new_lines.append(new_line) with open(output_filename, 'w') as file: for line in new_lines: file.write(line + '\n') mv_new_md(input_filename, output_filename) def process_file_for_components(input_filename, output_filename): """ 从文件中读取文本行,处理每行文本以提取组件信息,并将结果写入到新的文件中。 Args: input_filename (str): 输入文件的路径。 output_filename (str): 输出文件的路径。 Returns: None """ with open(input_filename, 'r') as file: lines = file.readlines() new_lines = [] for line in lines: new_line = process_line_for_components(line.strip()) if new_line: new_lines.append(new_line) with open(output_filename, 'w') as file: for line in new_lines: file.write(line + '\n') mv_new_md(input_filename, output_filename) def process_file_for_console(input_filename, output_filename): """ 将文件内容处理后输出到另一个文件,并移动原文件。 Args: input_filename (str): 输入文件名。 output_filename (str): 输出文件名。 Returns: None """ with open(input_filename, 'r') as file: lines = file.readlines() new_lines = [] for line in lines: new_line = process_line_for_console(line.strip()) if new_line: new_lines.append(new_line) with open(output_filename, 'w') as file: for line in new_lines: file.write(line + '\n') mv_new_md(input_filename, output_filename) if __name__ == "__main__": # 处理Assistant.md文件 process_file_for_assistant("../../API-Reference/Python/appbuilder.core.assistant.md", "../../API-Reference/Python/new_appbuilder.core.assistant.md") # 处理Components.md文件 process_file_for_components("../../API-Reference/Python/appbuilder.core.components.md", "../../API-Reference/Python/new_appbuilder.core.components.md") # 处理console.md文件 process_file_for_console("../../API-Reference/Python/appbuilder.core.console.md", "../../API-Reference/Python/new_appbuilder.core.console.md")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/baidubce/app-builder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server